美文网首页程序员
ubuntu(docker镜像) yarn配置

ubuntu(docker镜像) yarn配置

作者: BIDIU猿 | 来源:发表于2016-02-17 10:33 被阅读734次

    节点ip
    master : 172.17.0.2 fedora
    slave : 172.17.0.3 ubuntu(docker)

    完全分布式是相对于standalone节点部署而言的部署方式。
    其实这个部署过程中我犯了个错误,就是本机和容器里面都用了root用户= =
    因此操作时本机需要su获取超级用户权限。
    fedora和centos的亲缘关系,我们可以把能搜集到的centos资料直接拿来用,开搞。
    首先docker pull ubuntu获取ubuntu官方镜像。分别创建两个实例,master、slave,并配置好jdk、hadoop环境变量。

    snapshot1.png

    1.配置hosts文件

    修改集群中所有机器的/etc/hosts文件,添加如下配置:

    172.17.0.2 master
    172.17.0.3 slave
    

    master、slave1、slave2等等,指的是机器的机器名(使用命令hostname可以查看本机的机器名),如果不是机器名的话会报错,并且集群中所有结点的机器名都应该不一样。

    所谓修改hostname,不过是把上述配置放在hosts配置文件的头几行就行了= =
    (我尝试的是头几行可用,其他也有说是末尾加的都可以吧。)

    判断是否配置成功,可以从master命令行直接ping slave试试,ping通即可。

    snapshot1.png

    题外话:
    由于对docker感兴趣的原因,我一开始使用了docker折腾hadoop,部署master和slave。然而容器在创建之后不能通过修改hosts文件改变hostname,hostname命令也不惯用。这样就要重新创建容器,在创建容器时(使用docker run命令),使用-h参数来表明hostname。
    如我创建slave节点容器时,sudo docker run -h slave -it --name slave ubuntu /bin/bash
    docker start命令没有-h/-hostname参数,因此不能修改正在运行的容器的hostname。

    2.SSH无密码登录

    安装openssh-server

    sudo apt-get install openssh-server```
    
    安装完成后,启动服务
    

    ubnutu

    sudo /etc/init.d/ssh start

    fedora

    sudo systemctl start sshd.service

    
    查看服务是否正确启动:ps -e | grep ssh
    
    设置免密码登录,**去掉**```/etc/ssh/sshd_config```其中2行的注释,每台服务器都要设置:
    

    RSAAuthentication yes

    PubkeyAuthentication yes```

    生成私钥和公钥:

    ssh-keygen -t rsa ```
    一直回车= = 效果如图
    ![snapshot1.png](https://img.haomeiwen.com/i53103/adaf9ee3816a5770.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    尝试两台机器互相ssh登陆,能登陆不报错就pass。
    #3.修改hadoop配置文件
    ######修改hadoop-2.6.0/etc/hadoop/hadoop-env.sh
    

    export JAVA_HOME=/usr/java/jdk1.8.0_25```

    hadoop2.6.0/etc/core-site.xml
    <configuration>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>$HADOOP_HOME/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://master:9000</value>
        </property>
    </configuration>
    
    hadoop-2.6.0/etc/hadoop/hdfs-site.xml
    
    <configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>$HADOOP_HOME/dfs/name</value>
        <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
    </property>
    
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>$HADOOP_HOME/dfs/data</value>
        <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>why is 2?????????</description>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    </configuration>
    
    cp mapred-site.xml.template mapred-site.xml后修改
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
    slaves文件(节点hostname)
    master
    slave
    
    hadoop-2.6.0/etc/hadoop/yarn-site.xml
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-service</name>
            <value>mapreduce.shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-service</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
    </configuration>
    

    启动

    • 启动HDFS

    使用以下命令分别启动NameNode和DataNode:
    bin/hadoop namenode -format
    sbin/hadoop-daemon.sh start namenode
    sbin/hadoop-daemon.sh start datanode(如果有多个datanode,需使用hadoop-daemons.sh)或者一次启动:sbin/ start-dfs.sh

    • 启动YARN

    你可以使用以下命令分别启动ResourceManager和NodeManager:
    sbin/yarn-daemon.sh start resourcemanager
    sbin/yarn-daemon.sh start nodemanager(如果有多个datanode,需使用yarn-daemons.sh)或者一次启动过:sbin/start-yarn.sh

    可能logs文件夹会提示有用户权限问题,chown一下就可以了。
    chown -R <user> logs)

    结果:

    访问http://master:8088 , http://slave:8088:

    结果
    参考

    Ubuntu14.04安装配置Hadoop2.6.0(完全分布式)与 wordcount实例运行
    CentOS7安装Hadoop2.7完整流程
    http://www.cnblogs.com/kinglau/p/3794433.html
    centos安装配置hadoop超详细过程
    Hadoop YARN安装部署初探
    docker hostname

    相关文章

      网友评论

        本文标题:ubuntu(docker镜像) yarn配置

        本文链接:https://www.haomeiwen.com/subject/shpukttx.html