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 |
l 五、安裝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
|
首先,初始化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