CentOS7-Hadoop安裝
centos7-1 192.168.190.130 master
centos7-2 192.168.190.129 slave1
hadoop 下載地址:http://mirrors.hust.edu.cn/apache/hadoop/common/ 選則3.1.0版本
在安裝之前需要先實現節點之間的免密碼登陸
1)去掉 /etc/ssh/sshd_config中的兩行註釋,如沒有則添加,所有服務器都要設置的:
#RSAAuthentication yes
#PubkeyAuthentication yes
2)、生成秘鑰:# ssh-keygen -t rsa
備註:輸入命令後回車4次
3)、復制到公共密鑰中:
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
4)、將秘鑰復制到目標服務器:
ssh-copy-id 目標服務器IP
5)、測試:(沒有報錯,並沒有提示輸入目標服務器用戶密碼,用戶切換到目標服務器用戶名則成功)
6)# ssh 目標服務器IP
備註:配置好了master到slave1免密登錄,同時需要配置slave1到master的免密登錄,在slave1上操作,過程同上,同時記得在/etc/hosts中加上master、slave1的域名解析
1.下載hadoop,解壓tar.gz文件
#cd /usr #mkdir hadoop #cd hadoop #wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.0.tar.gz #tar -zxvf hadoop-3.1.0.tar.gz 解壓後,出現hadoop-3.1.0工作目錄,既可以使用。 #cd /usr/hadoop/hadoop-3.1.0 #mkdir tmp #./bin/hadoop -version //檢驗是否可以使用
2.設置環境變量,全局(/etc/profile)
#vim /etc/profile
設置HADOOP_HOME,並加到PATH路徑下
HADOOP_HOME=/usr/hadoop/hadoop-3.1.0
PATH=$PATH:$HADOOP_HOME/bin
#source /etc/profile
3.配置hadoop
#hadoop主要的六個文件,路徑hadoop-3.1.0/etc/hadoop/下 hadoop-env.sh // yarn-env.sh // core-site.xml // hdfs-site.xml // mapred-site.xml // yarn-site.xml // a.hadoop-env.sh配置 export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64 b.yarn-env.sh配置 export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64 c.core-site.xml配置 <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> <description>HDFS的URI,文件系統://namenode標識:端口號</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> <description>namenode上本地的hadoop臨時文件夾</description> </property> </configuration> d.配置hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> <description>副本個數,配置默認是3,應小於datanode機器數量</description> </property> </configuration> e.配置mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</nam <value>yarn</value> </property> </configuration> f.配置yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
4.將/usr/hadoop復制到其他服務器:
#scp -r /usr/hadoop root@目標ip:/usr/hadoop
5.格式化namenode:
#CD /usr/hadoop/hadoop-3.1.0
./bin/hdfs namenode -format
成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯;備註:只需格式化namenode,datanode不需要格式化(若格式化了,可將/usr/hadoop/tmp目錄下文件都刪除),所以先將安裝文件夾復制到其他服務器,再格式化
6.啟動hadoop
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-dfs.sh
7.啟動ResourceManager和NodeManager
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-yarn.sh
8.檢查啟動結果
#jps
總結:
a.免密碼登陸,可以把所有口令一起追加進入一個文件具體操作可看這個文章:
b.啟動時可以直接把所有都啟動,命令如下:
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-all.sh
c.#sbin/start-dfs.sh執行腳本報錯,如下:
ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.
解決方法:
在start-dfs.sh 、stop-dfs.sh加如下配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
添加後可能還是會報如下警告:
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.
解決辦法:替換上述的解決方法
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
d.#sbin/start-yarn.sh執行腳本報錯,如下:
Starting resourcemanager
ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.
解決辦法:start-yarn.sh、stop-yarn.sh添加如下配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
本文是查看了網絡博客與官方文檔,結合自己操作所記錄的所有過程,如果有不對或者錯誤,請留言指正,如有侵權,請聯系本人刪除。
參考博客:https://www.linuxidc.com/Linux/2018-02/150812.htm
CentOS7-Hadoop安裝