zoukankan      html  css  js  c++  java
  • hadoop完全分步式搭建

    实验环境介绍

    4台机器,规划如下:

    计算机名 IP地址 角色
    master 192.168.138.200 NameNode,SecondaryNameNode,ResourceManager
    slave 192.168.138.201 DataNode,NodeManager
    ha1 192.168.138.202 DataNode,NodeManager
    ha2 192.168.138.203 DataNode,NodeManager

    第一步:配置/etc/hosts文件

    cat /etc/hosts
    192.168.138.200	master	
    192.168.138.201	slave	
    192.168.138.202	ha1	
    192.168.138.203	ha2
    

    由于4台主机hosts文件相同,这里使用saltstack等工具将文件分发到其他3台机器上。

    salt '*' cp.get_file salt://files/hosts /etc/hosts
    

    第二步:安装java-1.8.0-openjdk和java-1.8.0-openjdk-devel

    yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
    

    其它机器使用saltstack批量安装:

    cat /srv/salt/base/top.sls 
    base: 
      'L@ha1,ha2,slave': 
        - add_pkgs
    
    [root@master base]# cat add_pkgs.sls 
    add_java_1.8: 
      pkg.installed: 
        - pkgs: ['java-1.8.0-openjdk','java-1.8.0-openjdk-devel']
    
    salt '*' state.highstate saltenv=base test=False
    

    检查一下是否安装成功

    java -version
    openjdk version "1.8.0_161"
    OpenJDK Runtime Environment (build 1.8.0_161-b14)
    OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
    

    以上信息表示安装成功。

    第三步:下载hadoop二进制包

    下载地址:https://hadoop.apache.org/releases.html
    选择一个适合的版本下载,本文选择的是2.7.5的二进制版本,二进制包无需编译可直接运行。
    解压包到/usr/local/hadoop

    tar xvf hadoop-2.7.5.tar.gz -C /usr/local/
    mv /usr/local/hadoop-2.7.5 /usr/local/hadoop
    

    第四步:配置master到其它主机包括自己的SSH免密免yes登录

    ssh-keygen -b 2048 -t rsa -N '' 
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ha1
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@ha2
    

    编辑/etc/ssh/ssh-config修改或新增如下2行

    Host *
        GSSAPIAuthentication no
        StrictHostKeyChecking no
    

    测试一下:

    [root@master ~]# ssh master
    Last login: Mon Jan 29 10:55:36 2018 from master
    [root@master ~]# logout
    Connection to master closed.
    [root@master ~]# ssh slave
    Last login: Mon Jan 29 10:55:43 2018 from master
    [root@slave ~]# logout
    Connection to slave closed.
    [root@master ~]# ssh ha1
    Last login: Mon Jan 29 10:56:24 2018 from slave
    [root@ha1 ~]# logout
    Connection to ha1 closed.
    [root@master ~]# ssh ha2
    Last login: Sun Jan 28 18:28:59 2018 from master
    [root@ha2 ~]# logout
    Connection to ha2 closed.
    [root@master ~]# 
    

    这里需要注意的一点是:有时候配置好登录仍然会提示输入密码的问题,主要原因在于用户家目录不能带有w权限,把w权限去掉就可以了。

    第五步:配置/usr/local/hadoop/etc/hadoop/hadoop-env.sh

    这是hadoop环境变量脚本,其中需要配置的是:

    export JAVA_HOME=""             #这行信息需要配置JAVA1.8的库环境路径
    export HADOOP_CONF_DIR=""       #这行配置hadoop配置文件路径
    

    JAVA_HOME查找方法:

    [root@master base]# which java
    /usr/bin/java
    [root@master base]# ll /usr/bin/java
    lrwxrwxrwx. 1 root root 22 Jan 22 20:21 /usr/bin/java -> /etc/alternatives/java
    [root@master base]# readlink /etc/alternatives/java
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java
    

    这样就得出JAVA_HOME的路径为:
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre
    HADOOP_CONF_DIR配置文件路径直接填写:/usr/local/hadoop/etc/hadoop即可。
    所以//usr/local/hadoop/etc/hadoop/hadoop-env.sh需要修改的两行如下:

    export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre" 
    export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"
    

    第六步:配置/usr/local/hadoop/etc/hadoop/core-site.xml

    cat //usr/local/hadoop/etc/hadoop/core-site.xml
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/var/hadoop</value>
            <description>A base for other temporary directories.</description>
        </property>
    </configuration>
    

    在所有机器上创建/var/hadoop文件夹

    salt '*' cmd.run "mkdir -p /var/hadoop"
    

    第七步:配置/usr/local/hadoop/etc/hadoop/hdfs-site.xml

    cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    <configuration>
        <property>
            <name>dfs.namenode.http-address</name>
            <value>master:50070</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:50090</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
    </configuration>
    

    第八步:把/usr/local/hadoop/etc/hadoop文件夹同步到所有机器

    salt '*' cp.get_dir salt://files/hadoop/ /usr/local/hadoop/etc/
    

    第九步:在namenode上执行格式化操作

    /usr/local/hadoop/bin/hdfs namenode -format
    

    在没有报错的情况启动集群

    /usr/local/hadoop/sbin/start-dfs.sh
    

    第十步:验证

    在所有机器上执行 jps

    salt '*' cmd.run "jps"
    [root@master ~]# jps
    93353 SecondaryNameNode
    123000 Jps
    95210 ResourceManager
    94332 NameNode
    [root@master ~]# salt '*' cmd.run "jps"
    ha1:
        10292 Jps
        9484 NodeManager
        9279 DataNode
    slave:
        22323 DataNode
        23369 Jps
        22522 NodeManager
    ha2:
        8594 Jps
        7715 NodeManager
        7512 DataNode
    

    能看到节点信息说明搭建成功。

  • 相关阅读:
    python+selenium框架
    django--form组件
    python +selenium上传文件
    python--UI---登录---验证码
    python+selenium button定位方法
    css-定位技术
    css-盒子模型
    css-元素分类
    序列化
    FileUploadController
  • 原文地址:https://www.cnblogs.com/mfyang/p/8376483.html
Copyright © 2011-2022 走看看