1. 程式人生 > >day2-搭建hdfs分散式叢集

day2-搭建hdfs分散式叢集

1、搭建hdfs分散式叢集

4.1 hdfs叢集組成結構:

 

 

4.2 安裝hdfs叢集的具體步驟:

一、首先需要準備N臺linux伺服器

學習階段,用虛擬機器即可!

先準備4臺虛擬機器:1個namenode節點  + 3 個datanode 節點

 

二、修改各臺機器的主機名和ip地址

主機名:hdp-01  對應的ip地址:192.168.33.61

主機名:hdp-02  對應的ip地址:192.168.33.62

主機名:hdp-03  對應的ip地址:192.168.33.63

主機名:hdp-04  對應的ip地址:192.168.33.64

 

三、從windows中用CRT軟體進行遠端連線

在windows中將各臺linux機器的主機名配置到的windows的本地域名對映檔案中:

c:/windows/system32/drivers/etc/hosts

192.168.33.61 hdp-01

192.168.33.62 hdp-02

192.168.33.63 hdp-03

192.168.33.64 hdp-04

 

 

用crt連線上後,修改一下crt的顯示配置(字號,編碼集改為UTF-8):

 

 

四、配置linux

伺服器的基礎軟體環境

 

l  防火牆

關閉防火牆:service iptables stop 

關閉防火牆自啟: chkconfig iptables off

 

l  安裝jdk:(hadoop體系中的各軟體都是java開發的)

1)         利用alt+p 開啟sftp視窗,然後將jdk壓縮包拖入sftp視窗

2)         然後在linux中將jdk壓縮包解壓到/root/apps 下

3)         配置環境變數:JAVA_HOME   PATH

vi /etc/profile   在檔案的最後,加入:

export JAVA_HOME=/root/apps/jdk1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin

4)         修改完成後,記得 source /etc/profile使配置生效

5)         檢驗:在任意目錄下輸入命令: java -version 看是否成功執行

6)         將安裝好的jdk目錄用scp命令拷貝到其他機器

7)         將/etc/profile配置檔案也用scp命令拷貝到其他機器並分別執行source命令

 

l  叢集內主機的域名對映配置

在hdp-01上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.33.61   hdp-01

192.168.33.62   hdp-02

192.168.33.63   hdp-03

192.168.33.64   hdp-04

然後,將hosts檔案拷貝到叢集中的所有其他機器上

scp /etc/hosts hdp-02:/etc/

scp /etc/hosts hdp-03:/etc/

scp /etc/hosts hdp-04:/etc/

 

補充

提示:

如果在執行scp命令的時候,提示沒有scp命令,則可以配置一個本地yum源來安裝

1、先在虛擬機器中配置cdrom為一個centos的安裝映象iso檔案

2、在linux系統中將光碟機掛在到檔案系統中(某個目錄)

3、mkdir /mnt/cdrom

4、mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom

5、檢驗掛載是否成功: ls /mnt/cdrom

6、3、配置yum的倉庫地址配置檔案

7、yum的倉庫地址配置檔案目錄: /etc/yum.repos.d

8、先將自帶的倉庫地址配置檔案批量更名:

 

 

9、然後,拷貝一個出來進行修改

 

 

10、修改完配置檔案後,再安裝scp命令:

11、yum install openssh-clients -y

 

 

五、安裝hdfs叢集

1、上傳hadoop安裝包到hdp-01

 

2、修改配置檔案

要點提示

核心配置引數:

1)         指定hadoop的預設檔案系統為:hdfs

2)         指定hdfs的namenode節點為哪臺機器

3)         指定namenode軟體儲存元資料的本地目錄

4)         指定datanode軟體存放檔案塊的本地目錄

 

hadoop的配置檔案在:/root/apps/hadoop安裝目錄/etc/hadoop/

 

1) 修改hadoop-env.sh

export JAVA_HOME=/root/apps/jdk1.8.0_60

 

2) 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-01:9000</value>

</property>

</configuration>

 

3) 修改hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/root/dfs/name</value>

</property>

 

<property>

<name>dfs.datanode.data.dir</name>

<value>/root/dfs/data</value>

</property>

 

</configuration>

 

4) 拷貝整個hadoop安裝目錄到其他機器

scp -r /root/apps/hadoop-2.8.0  hdp-02:/root/apps/

scp -r /root/apps/hadoop-2.8.0  hdp-03:/root/apps/

scp -r /root/apps/hadoop-2.8.0  hdp-04:/root/apps/

 

 

 

5) 啟動HDFS

 

所謂的啟動HDFS,就是在對的機器上啟動對的軟體

要點

提示:

要執行hadoop的命令,需要在linux環境中配置HADOOP_HOME和PATH環境變數

vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60

export HADOOP_HOME=/root/apps/hadoop-2.8.0

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

 

首先,初始化namenode的元資料目錄

要在hdp-01上執行hadoop的一個命令來初始化namenode的元資料儲存目錄

hadoop namenode -format

l  建立一個全新的元資料儲存目錄

l  生成記錄元資料的檔案fsimage

l  生成叢集的相關標識:如:叢集id——clusterID

 

然後,啟動namenode程序(在hdp-01上)

hadoop-daemon.sh start namenode

啟動完後,首先用jps檢視一下namenode的程序是否存在

 

然後,在windows中用瀏覽器訪問namenode提供的web埠:50070

http://hdp-01:50070

 

然後,啟動眾datanode們(在任意地方)

hadoop-daemon.sh start datanode

 

 

6) 用自動批量啟動指令碼來啟動HDFS

1)         先配置hdp-01到叢集中所有機器(包含自己)的免密登陸

2)         配完免密後,可以執行一次  ssh 0.0.0.0

3)         修改hadoop安裝目錄中/etc/hadoop/slaves(把需要啟動datanode程序的節點列入)

hdp-01

hdp-02

hdp-03

hdp-04

 

4)         在hdp-01上用指令碼:start-dfs.sh 來自動啟動整個叢集

5)         如果要停止,則用指令碼:stop-dfs.sh