美文网首页我爱编程
hadoop分布式部署

hadoop分布式部署

作者: 紫苓 | 来源:发表于2018-05-13 00:22 被阅读74次
    1、模拟搭建3个节点的分布式运行环境
    2、每个服务器搭建需要配置项

    为每个服务器配置好相应的主机名、静态IP地址、修改网卡名等、
    主机名修改:
    /etc/hostname

    luozheng.bigdata1
    

    /etc/sysconfig/network

    NETWORKING=yes
    HOSTNAME=luozheng.bigdata1
    

    配置hosts,使3个服务器之间能够互联:/etc/hosts

    192.168.211.129 luozheng.bigdata
    192.168.211.131 luozheng.bigdata1
    192.168.211.133 luozheng.bigdata2
    

    修改网卡名:/etc/udev/rules.d/70-persistent-ipoib.rules

    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="32", ATTR{address}=="00:50:56:31:2B:D6", NAME="eth0"
    

    配置静态IP地址:/etc/sysconfig/network-scripts/ifcfg-eth0
    centos7在安装完后,原来网卡名不是叫eth0,而是叫ens33,这个怎么重命名百度下就可以。

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    ##BOOTPROTO="dhcp"
    BOOTPROTO="static" ###这个改成static
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="eth0"
    UUID="75c3b0c8-4560-48f4-a161-7eca30e74e2a"
    DEVICE="eth0"
    ONBOOT="yes" ####
    IPADDR="192.168.211.131"
    GATEWAY="192.168.211.2"
    NETMASK="255.255.255.0"
    HWADDR="00:50:56:31:2B:D6"
    

    配置完这些后,重启下机器就可以了。

    3、服务在节点上分配:
    luozheng.bigdata luozheng.bigdata1 luozheng.bigdata2
    DataNode DataNode DataNode
    NameNode / /
    / / SecondaryNameNode
    / ResourceManager /
    NodeManager NodeManager NodeManager
    JobHistoryServer / /
    4、hadoop配置文件修改

    在配置之前,切记切记,hadoop相关软件、路径在每台服务器上是一致的!!!!!
    在配置之前,切记切记,hadoop相关软件、路径在每台服务器上是一致的!!!!!
    在配置之前,切记切记,hadoop相关软件、路径在每台服务器上是一致的!!!!!

    节点luozheng.bigdata HDFS配置:
    hadoop-env.sh,主要配置java环境变量和hadoop路径

    # The java implementation to use. By default, this environment
    # variable is REQUIRED on ALL platforms except OS X!
    export JAVA_HOME=/home/luozheng/tools/jdk1.8.0_171
    
    # Location of Hadoop.  By default, Hadoop will attempt to determine
    # this location based upon its execution path.
    export HADOOP_HOME=/home/luozheng/tools/hadoop-3.0.1
    
    # Location of Hadoop's configuration information.  i.e., where this
    # file is living. If this is not defined, Hadoop will attempt to
    # locate it based upon its execution path.
    #
    # NOTE: It is recommend that this variable not be set here but in
    # /etc/profile.d or equivalent.  Some options (such as
    # --config) may react strangely otherwise.
    #
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    

    core-site.xml配置:namenode相关配置

    <configuration>
    
        <!-- namenode 服务器地址配置   -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://luozheng.bigdata:9000</value>
        </property>
    
        <!-- 临时文件存储地址 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/luozheng/hadoop/tmp</value>
        </property>
        
        <!-- 配置垃圾回收站中文件保存时间-->
        <property>
            <name>fs.trash.interval</name>
            <value>10080</value>
        </property>
        
        <!-- 配置读写文件缓冲区大小 -->
        <property>
            <name>io.file.buffer.size</name>
            <value>4096</value>
        </property>
        
    </configuration>
    

    hdfs-site.xml:配置secondaryNameNode进程运行所在服务器

    <configuration>
    
        
        <!-- secondary namenode 进程运行服务器 -->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>luozheng.bigdata2:9868</value>
        </property>
    
    
    </configuration>
    

    works:配置datanode节点服务器

    luozheng.bigdata
    luozheng.bigdata1
    luozheng.bigdata2
    

    配置yarn的resourcemanager

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>luozheng.bigdata1</value>
        </property>
        
        <!--
        <property>
            <name>yarn.nodemanager.hostname</name>
            <value>luozheng.bigdata</value>
        </property>
        -->
        
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</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>
    
    </configuration>
    

    配置mapreducer的historyserver:

    <configuration>
    
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>luozheng.bigdata:10020</value>
        </property>
        
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <!--
        <property>
            <name>mapreduce.jobhistory.cleaner.enable</name>
            <value>true</value>
        </property>
        
        <property>
            <name>mapreduce.jobhistory.cleaner.interval-ms</name>
            <value>604800000</value>
        </property>
        
        <property>
            <name>mapreduce.jobhistory.max-age-ms</name>
            <value>4233600000</value>
        </property>
        -->
    </configuration>
    
    5、ssh免密登录配置

    因为namenode配置在服务器luozheng.bigdata,所以先来建立luozheng.bigdata到其他两台服务器之间的免密登录。
    1)在luozheng.bigdata上通过如下命令来生成秘钥:

    ssh-keygen -t rsa
    

    执行完之后在~/.ssh目录下面应该可以看到以id开头的两个文件,一个公钥,一个私钥:

    -rw-------. 1 root root 1675 4月  21 14:56 id_rsa
    -rw-r--r--. 1 root root  408 4月  21 14:56 id_rsa.pub
    

    我们把公钥id_rsa.pub拷贝一份,修改权限:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
    

    2)通过ssh-copy-id指令把秘钥拷贝到其他两台机器上:

    ssh-copy-id luozheng.bigdata1
    ssh-copy-id luozheng.bigdata2
    

    在配置完这些之后,通过ssh指令登录到其他两台服务器就不要输入密码了。


    image.png

    用同样的方式来建立resourcemanager到另外两台服务器之间的连接。


    image.png

    补充:这里加一个配置,使得终端能够显示出完整的用户名和hostname,主要是修改/etc/bashrc文件:


    image.png

    主要是加上下面这段:

      if [ "$PS1" ];then
          PS1="[\u@\H \W]\\$ "
      fi
    
    6、hadoop文件分发到其他服务器

    对于luozheng.bigdata这台服务器,hadoop相关配置已经完毕,在分发到其他服务器之前,先删除hadoop-3.0.1/share/doc这个文件夹,减少分发时间

    scp -r hadoop-3.0.1 luozheng@luozheng.bigdata1:~/tools/
    scp -r hadoop-3.0.1 luozheng@luozheng.bigdata2:~/tools/
    
    7、hadoop hdfs启动
    image.png image.png image.png

    http:// luozheng.bigdata:9870/中也能看到相关信息:

    image.png
    image.png

    相关文章

      网友评论

        本文标题:hadoop分布式部署

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