二、完全分布式的安裝步驟
1.集群規划
| 主機名 | IP | HDFS | yarn |
| hadoop01 | 192.168.220.141 | namenode datanode |
nodeManager |
| hadoop02 | 192.168.220.142 | secondarynamenode datanode |
nodeManager |
| hadoop03 | 192.168.220.143 | datanode | resourceManager nodeManager |
2.修改hostname 及 hosts
$ vim /etc/hostname $ vim /etc/hosts
所有的主機hosts文件均配置
配置完成后重啟
$ reboot
3.設置 SSH key
$ ssh-keygen -t rsa
一直按回車即可
4.將公鑰信息保存至授權認證中
將公鑰信息保存至授權認證中 authorized_keys,以后可以進行免登錄處理
$ cd .ssh $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.登錄測試
$ ssh root@hadoop02
使用hadoop01分別登錄hadoop02和hadoop03測試,是否能免密登錄。然后通過hadoop02登錄hadoop01和hadoop03,是否也能免密登錄,以此類推。
6.文件配置
一共需要配置主要的6個文件:
hadoop-x.x.x/etc/hadoop/hadoop-env.sh
hadoop-x.x.x/etc/hadoop/yarn-env.sh
hadoop-x.x.x/etc/hadoop/core-site.xml
hadoop-x.x.x/etc/hadoop/yarn-site.xml 相關的job處理
hadoop-x.x.x/etc/hadoop/hdfs-site.xml 可以確定文件的備份個數及數據文件夾的路徑
hadoop-x.x.x/etc/hadoop/mapred-site.xml
1)配置 core-site.xml
添加tmp目錄
[root@hadoopm ~]# mkdir hadoop_tmp
<configuration> <!-- 指定namenode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:9000</value> </property> <!-- 用來指定使用hadoop時產生文件的存放目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop</value> </property> </configuration
fs.defaultFS:HDFS的URI,文件系統://namenode標識:端口號
hadoop.tmp.dir:namenode上本地的hadoop臨時文件夾
注:hadoop.tmp.dir 如果路徑配置為 hadoop-x.x.x/tmp ,一但重新啟動,所以的信息hadoop環境全部失效
2)配置 hdfs-site.xml
[root@hadoopm tmp]# mkdir dfs dfs/name dfs/data
如果hadoop出現問題,這些文件需要徹底清除掉,並重新配置
<configuration> <!-- 指定hdfs保存數據的副本數量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <!-- 指定hdfs中namenode的存儲位置 --> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/name</value> </property> <!--指定hdfs中datanode的存儲位置--> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data</value> </property> <property> <name>dfs.secondary.http.address</name> <value>hadoop02:50070</value> </property> </configuration>
3)配置yarn-site.xml
<configuration> <!-- nomenodeManager獲取數據的方式是shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定Yarn的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.address</name> <value>hadoop03:50090</value> </property> </configuration>
4)配置mapred-site.xml
<configuration> <!-- 告訴hadoop以后MR(Map/Reduce)運行在YARN上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
5)配置slaves
hadoop01
hadoop02
hadoop03
遠程發送或者每一個節點都配置一次
創建目錄
/home/hadoop/data
/home/hadoop/name
7.集群配置
1)在/usr/local/hadoop-2.7.7/etc/hadoop 目錄下創建一個masters文件,配置主機名稱,即內容為hadoopm
$ cd /usr/local/hadoop-2.7.7/etc/hadoop/ $ echo hadoopm > masters
$ echo hadoopm > slaves
8.格式化文件系統
$ hdfs namenode -format
出現如下信息表示格式化成功
9.啟動hadoop
1)啟動hdfs,在任意節點上啟動均可
$ start-dfs.sh
2)啟動yarn,在yarn的主節點上啟動
$ start-yarn.sh
10.查看進程
$ jps
11.測試HDSF是否能正常使用
三、安裝過程中可能遇到的問題
$ cd /usr/local/hadoop-2.7.7/ $ cd /sbin $ hadoop-daemon.sh start namenode $ hadoop-daemon.sh start datanode $ yarn-daemon.sh start nodemanager $ yarn-daemon.sh start resourcemanager
重新格式化datanode啟動不了
如果想要重新格式化,則需要先刪除data目錄。
$ rm -rf /home/hadoop/data $ hadoop namenode -format
