虚拟机Ubuntu16.04下搭建Hadoop集群

2019-04-25  本文已影响0人  Yznx_请叫我小哥
the image from unsplash

前置条件

一个安装好Hadoop2.7.7并配置好伪分布式,意思是伪分布式没问题
使用NAT连接网络

开始搭建

一:复制虚拟电脑,然后命名为master和slave1、slave2


复制好的的

注意:在复制的时候要勾选为所有网卡重新生成Mac地址

image.png
二:进入虚拟电脑中,使用:
sudo vim /etc/hostname 

将三个分别命名为:“master、slave1、slave2”然后用:

sudo reboot

重启电脑

使用ifconfig查看三个的ip,然后使用:

sudo vim /etc/hosts

写入每一个ip和主机名,就像是这样:

10.0.2.4        master
10.0.2.5    slave1
10.0.2.6    slave2
127.0.0.1       localhost
196.168.91.133  ubuntu
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

在每一个电脑中都要这样写。最后测试一下能不能相互ping通,能够说明就OK。
三:建立Hadoop用户和用户组
如果你的之前的用户名就是Hadoop那么这一步可以忽略,如果不是的话就建一个吧:

sudo groupadd hadoop
sudo useradd -s /bin/bash -d /home/hadoop(你的用户名) -m hadoop -g hadoop

四:ssh无密码登录验证设置
如果你原来的电脑设置了ssh免密码登录的话那么可以忽略,因为完全拷贝的所以秘钥一样的,最后可以试一下能不能使用SSH登录,如果可以就OK,不可以的话去百度一下吧。
五:配置Hadoop
修改你Hadoop目录下的“/etc/hadoop/slaves”文件,就像是这样:

sudo vim /usr/local/lib/hadoop/etc/hadoop/slaves

内容如下:

# localhost可以不要,容易报错
localhost
master
slave1
slave2

修改core-site.xml文件:

sudo vim /usr/local/lib/hadoop/etc/hadoop/core-site.xml

内容如下:

<configuration>
        <property>
           <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/lib/hadoop/tmp</value>
             <description>注释</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/lib/hadoop/tmp</value>
        </property>
        <property>
                <name>fs.trash.interval</name>
                <value>10080</value>
        </property>

</configuration>

修改hdfs-site.xml:

sudo vim /usr/local/lib/hadoop/etc/hadoop/hdfs-site.xml

内容如下:

<configuration>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
      </property>
      <property> 
        <name>dfs.replication</name> 
        <value>3</value> 
      </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/lib/hadoop/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/usr/local/lib/hadoop/dfs/data</value>
        </property>
        <property>
             <name>dfs.permissions</name>
             <value>false</value>
        </property>
        <property>
             <name>dfs.support.append</name>
             <value>true</value>
      </property>
</configuration>

修改mapred-site.xml:

sudo vim /usr/local/lib/hadoop/etc/hadoop/mapred-site.xml

内容如下:

<configuration>

   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>

    </property>
    <property>
        <name>mapreduce.jobtracker.address</name>
        <value>master:9001</value>
    </property>

</configuration>

修改yarn-site.xml:

sudo vim /usr/local/lib/hadoop/etc/hadoop/yarn-site.xml

内容如下:

<configuration>
     <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
      </property>

        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
        </property>
     <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>


     <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
      </property>

         <property>
             <name>yarn.resourcemanager.webapp.address</name>
             <value>master:8099</value>
         </property>

</configuration>

然后在master上 格式化:

hadoop namenode -format

子节点配置不需要这样麻烦,只需要在你安装Hadoop的目录下这样:

sudo scp -r Hadoop hadoop@slave1:/usr/local/lib
sudo scp -r Hadoop hadoop@slave2:/usr/local/lib

如果复制不了,需要执行安装Hadoop的目录赋权:

sudo chmod 777 lib

六:启动Hadoop集群
进入master中,使用start-all.sh启动集群,然后记得提前测试能不能ssh登录。然后查看一下

image.png
如果在启动的时候出现:

mv: 无法获取"/usr/local/apps/hadoop-2.8.1/logs/hadoop-root-datanode-vm001.out.3" 的文件状态(stat): 没有那个文件或目录

这个错误,你只需要将: /usr/local/lib/hadoop/etc/hadoop/slaves文件中的localhost删除
“/usr/local/lib/hadoop/e”
然后你在slave1和slave2中查看:

启动好了
你会发现只有Nodemanager,没有Datamanager。不要着急,你需要去查看一下master上:/usr/local/lib/hadoop/dfs/name/current/VERSION/usr/local/lib/hadoop/dfs/data/current/VERSIONclusterID是否一致,不一致的话把name中的复制给data,同时也要修改两个slave上的data中的clusterID使其和master的保持一致,然后重启就OK了。
查看:
cat /usr/local/lib/hadoop/dfs/name/current/VERSION
cat /usr/local/lib/hadoop/dfs/data/current/VERSION
image.png

然后搭建成功的样子


image.png
上一篇 下一篇

猜你喜欢

热点阅读