安裝準備java
1) 3臺centOS7.0系統 ecsnode
2) 2.8.0 hadoop 安裝包python
準備工做ssh
首先 在ip_01主機上將/etc/hosts文件進行ip映射oop
127.0.0.1 localhost ip_01 NN #名稱節點 ip_02 DN01 #數據節點01 ip_03 DN02 #數據節點02
使用scp命令將ip_01上的 hosts文件 複製到其它節點spa
scp -r /etc/hosts root@DN01:/etc/ scp -r /etc/hosts root@DN02:/etc/
⚠️ 最好在覆蓋以前進行備份操做.net
mv /etc/hosts /etc/hosts_back
其次 配置ssh免密鏈接,執行如下命令,回車在~/.ssh/目錄下生成id_rsa,id_rsa.pub兩個文件code
ssh-keygen -t rsa -P ''
將id_rsa.pub文件分別拷貝到ip_02, ip_03的~/.ssh目錄下orm
scp id_rsa.pub root@ip02:~/.ssh/ scp id_rsa.pub root@ip03:~/.ssh/
在ip02和ip03的~/.ssh目錄下 將id_rsa.pub文件內容寫入authorized_keys文件中,沒有此文件就新建此文件寫入xml
cat id_rsa.pub >> authorized_keys
操做完成,則完成了ssh從ip_01到ip_02和ip_03的免密登陸操做。
集羣配置
配置環境變量:
#在/etc/profile 文件末尾新增hadoop命令目錄 #注意此路徑爲真實安裝絕對路徑 PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin export PATH
hadoop集羣配置需配置其中三個文件core-site.xml;hdfs-site.xml; yarn-site.xml,三個文件存在於hadoop/etc/hadoop/目錄中。
<!-- core-site.xml --> <configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://NN</value> </property> </configuration>
<!-- hdfs-site.xml --> <configuration> <property> <name>dfs.replication</name> <!-- 2臺數據節點 --> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
<!-- yarn-site.xml --> <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
在slaves文件中進行配置數據節點地址
DN01 DN02
SecondaryNameNode未配置ecs,默認在ip_01名稱節點上。
修改文件hadoop-env.sh
JAVA_HOME=${JAVA_HOME}
修改成:
#此路徑爲本機JDK安裝目錄的絕對目錄 JAVA_HOME=/usr/local/JDK
啓動集羣:
格式化集羣環境
hadoop nodename -formate
啓動集羣
#進入sbin目錄 cd /usr/local/hadoop/sbin #執行啓動命令 ./start-all.sh
檢測是否啓動成功
#jps命令 可查看已啓動的java程序 jps
附:若是在啓動過程當中報一下錯誤
java.net.UnknownHostException:xxxx xxxx
此錯誤意味着hostname映射未生效
快速解決辦法是執行hostname 命令
#例如本文中所列舉的 ip_01-->NN ip_02-->DN01 ip_03-->DN02需各自執行 hostname NN hostname DN01 hostname DN02