本篇介紹在centos7中你們hadoop2.10徹底分佈式,首先準備4臺機器:1臺nn(namenode);3臺dn(datanode)html
IP | hostname | 進程 |
192.168.30.141 | s141 | nn(namenode) |
192.168.30.142 | s142 | dn(datanode) |
192.168.30.143 | s143 | dn(datanode) |
192.168.30.144 | s144 | dn(datanode) |
因爲本人使用的是vmware虛擬機,因此在配置好一臺機器後,使用克隆,克隆出剩餘機器,並修改hostname和IP,這樣每臺機器配置就都統一了每臺機器配置 添加hdfs用戶及用戶組,配置jdk環境,安裝hadoop 見 :centos7搭建hadoop2.10僞分佈模式node
下面是安裝徹底分佈式的一些步驟和細節:vim
1.設置每臺機器的hostname 和 hostscentos
設置hostname,這裏用s+ip最後一組數字(如:192.168.30.141爲s141),修改一下文件ssh
vim /etc/hostname
修改hosts文件,hosts設置有後可使用hostname訪問機器,這樣比較方便,修改以下:分佈式
127.0.0.1 locahost 192.168.30.141 s141 192.168.30.142 s142 192.168.30.143 s143 192.168.30.144 s144
2.配置無密登陸,即ssh無密登陸oop
咱們將s141設置爲nn,就須要s141可以經過ssh無密登陸到其餘機器,這樣就須要在s141機器hdfs用戶下生成密鑰對,並將s141公鑰發送到其餘機器放到~/.ssh/authorized_keys文件中centos7
在s141機器上生成密鑰對:spa
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
執行命令後3d
說明成功了,查看 ~/.ssh下是否生成密鑰對:
將id_rsa.pub文件內容追加到s141-s144機器的/home/centos/.ssh/authorized_keys中,如今其餘機器暫時沒有authorized_keys文件,咱們就將id_rsa.pub改名爲authorized_keys便可,若是其餘機器已存在authorized_keys文件能夠將id_rsa.pub內容追加到該文件後,遠程複製可使用scp命令:
scp id_rsa.pub hdfs@s141:/home/hdfs/.ssh/authorized_keys scp id_rsa.pub hdfs@s142:/home/hdfs/.ssh/authorized_keys scp id_rsa.pub hdfs@s143:/home/hdfs/.ssh/authorized_keys scp id_rsa.pub hdfs@s144:/home/hdfs/.ssh/authorized_keys
s141機器可使用cat生成authorized_keys文件
cat id_rsa.pub >> authorized_keys
此時authorized_keys文件權限須要改成644(注意,常常會由於這個權限問題致使ssh無密登陸失敗)
chmod 644 authorized_keys
3.配置hadoop配置文件(${hadoop_home}/etc/hadoop/)
core-sit.xml:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://s141/</value> </property> </configuration>
hdfs-site.xml:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
mapred-site.xml:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml:
<?xml version="1.0"?> <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>s141</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
slaves(指定數據節點):
s142
s143
s144
hadoop-env.sh(配置jdk環境變量):
export JAVA_HOME=/opt/soft/jdk
4.將s141中hadoop配置文件分發大其餘機器上,使用scp
scp -r hadoop hdfs@s142:/opt/soft/hadoop/etc/ scp -r hadoop hdfs@s143:/opt/soft/hadoop/etc/ scp -r hadoop hdfs@s144:/opt/soft/hadoop/etc/
5.格式化hdfs
首先刪除/tmp/下相關hadoop文件,能夠直接清空,刪除${hadoop_home}/logs 下日誌文件
格式化文件系統
hadoop namenode -format
6.啓動hadoop
start-all.sh
7.驗證啓動是否成功
使用jps查看進程
nn:
dn:
頁面訪問:http://192.168.30.141:50070
說明啓動成功