centos7搭建hadoop2.10完全分布式


本篇介紹在centos7中大家hadoop2.10完全分布式,首先准備4台機器:1台nn(namenode);3台dn(datanode)

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偽分布模式

下面是安裝完全分布式的一些步驟和細節:

1.設置每台機器的hostname 和 hosts

設置hostname,這里用s+ip最后一組數字(如:192.168.30.141為s141),修改一下文件

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無密登錄

我們將s141設置為nn,就需要s141能夠通過ssh無密登錄到其他機器,這樣就需要在s141機器hdfs用戶下生成密鑰對,並將s141公鑰發送到其他機器放到~/.ssh/authorized_keys文件中

在s141機器上生成密鑰對:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

執行命令后

  說明成功了,查看 ~/.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

 

 說明啟動成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM