• Hadoop 集群搭建


    Hadoop 集群搭建

    目标


    在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序

    搭建思路


    (1)准备基础设施

    准备3台服务器,分别命名为 master、slave1、slave2

    互相配置为 SSH 免密码登录,并都安装好 JAVA 环境

    (2)安装配置 hadoop

    在 master 上下载解压 hadoop,修改相应配置文件,包括:

    core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

    配置文件比较多,但也比较好理解

    core-site.xml 是核心配置,需要为 hadoop 指定基本配置信息

    hdfs 和 mapreduce 是核心构成,自然要配置相应的 hdfs-site.xml 和 mapred-site.xml

    mapreduce 用到了 yarn 框架,所以也要设置对应的配置文件 yarn-site.xml

    还需要在 slaves 中添加从节点的IP

    配置完成后,把 master 上的 hadoop 目录复制到 slave1 slave2

    (3)启动 hadoop

    在 master 中进行 hdfs 初始化,执行启动命令,打开相应网页查看状态信息


    搭建过程

    • 准备基础设施


    (1)为3台服务器设置名称

    修改每台服务器的 /etc/hosts,添加

    192.168.31.164 master
    192.168.31.242 slave1
    192.168.31.140 slave2

    (改为自己服务器的IP)

    (2)SSH无密码登陆

    在每台服务器上都执行以下命令

    $ ssh-keygen
    (执行后会有多个输入提示,不用输入任何内容,全部直接回车即可)
    $ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@master
    $ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave1
    $ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave2


    注:JAVA环境的安装配置没做介绍,请自己准备好

    • 安装配置 hadoop


    (1)安装

    在 master 中执行

    $ cd /home
    $ wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
    $ tar -xzf hadoop-2.7.3.tar.gz
    $ mv hadoop-2.7.3 hadoop
    $ cd hadoop
    $ mkdir tmp hdfs
    $ mkdir hdfs/data hdfs/name

    (2)配置

    在 master 中执行

    修改 /home/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>file:/home/hadoop/tmp</value>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131702</value>
        </property>

    修改 /home/hadoop/etc/hadoop/hdfs-site.xml

    在 <configuration> 块儿中添加:

        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/hadoop/hdfs/data</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>

    修改 /home/hadoop/etc/hadoop/mapred-site.xml

    这个文件默认不存在,需要从 mapred-site.xml.template 复制过来

    $ cp mapred-site.xml.template mapred-site.xml

    在 <configuration> 块儿中添加:

        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>master:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>master:19888</value>
        </property>

    修改 /home/hadoop/etc/hadoop/yarn-site.xml

    在 <configuration> 块儿中添加:

        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8031</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
        </property>

    修改 /home/hadoop/etc/hadoop/slaves

    删除已有内容,添加:

    slave1
    slave2

    修改 /home/hadoop/etc/hadoop/hadoop-env.sh

    找到 export JAVA_HOME=${JAVA_HOME},改为自己JAVA_HOME的绝对路径


    (3)复制 hadoop 到 slave1,slave2

    在 master 上执行

    $ scp -r /home/hadoop slave1:/home
    $ scp -r /home/hadoop slave2:/home

    注意:如果各台服务器中JAVA_HOME位置不同,记得对 hadoop-env.sh 进行相应修改

    (4)设置 hadoop 环境变量

    在每台服务器上都执行:

    $ vim ~/.bashrc

    添加:

    export PATH=$PATH:/home/hadoop/bin:/home/hadoop/sbin

    保存退出

    $ source ~/.bashrc

    • 启动 hadoop


    在master启动hadoop,从节点会自动启动

    初始化

    $ hdfs namenode -format

    启动

    $ hadoop-daemon.sh start namenode
    $ hadoop-daemon.sh start datanode
    $ start-dfs.sh
    $ start-yarn.sh
    $ mr-jobhistory-daemon.sh start historyserver

    检查

    查看状态,在3台服务器上分别执行

    $ jps

    浏览器中访问:

    http://master ip:50070/



    http://master ip:8088/



    可以正常访问的话,可以说明集群启动成功了,但不一定可以正常运行,还需要下面的实际验证

    测试验证


    (1)hdfs 操作

    创建目录

    $ hdfs dfs -mkdir -p /user/hadoop/input

    上传文件,把现有的一些配置文件上传到刚刚创建的目录中

    $ hdfs dfs -put /home/hadoop/etc/hadoop/kms*.xml /user/hadoop/input

    如果没有返回错误信息,说明操作成功

    访问 http://master ip:50070/,在文件浏览页面查看



    (2)mapreduce 操作

    hadoop 安装包中提供了一个示例程序,我们可以使用它对刚刚上传的文件进行测试

    $ hadoop jar /home/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /user/hadoop/input /user/hadoop/output 'dfs[a-z.]+'



    注:在执行过程中,如果长时间处于 running 状态不动,虽然没有报错,但实际上是出错了,后台在不断重试,需要到 logs 目录下查看日志文件中的错误信息

    环境搭建完成,内容较长,感谢阅读,希望对想要搭建hadoop环境的朋友有点帮助

  • 相关阅读:
    Flex皮肤制作流程
    AIR app自动更新的实现方式
    Adobe AIR迷你教程 使用自定义窗口以及对窗口的移动,缩放,关闭操作
    AIR数据处理的方法
    Flex中的注释方法
    Flex皮肤设计简单实例教程
    八个常用的AS3开源类库
    as3 如何判断同时按下两个键
    struts2中动态方法调用
    Struts2.3笔记
  • 原文地址:https://www.cnblogs.com/jun1019/p/6260540.html
Copyright © 2020-2023  润新知