美文网首页Hadoop
Hadoop2.7.3 环境配置

Hadoop2.7.3 环境配置

作者: 2010jing | 来源:发表于2017-05-06 23:02 被阅读189次

    在上一篇简单使用OpenStack创建实例 已经有三个VM,此文将在这个基础上搭建hadoop环境。做个记录,方便以后查询。

    1. OpenStack 下的 Ubuntu
    2. hadoop-2.7.3
    3. jdk

    将材料上传到VM

    可以用filezilla, xftp来上传。

    安装JDK

    解压

    $ tar -zxvf jdk-8u121-linux-x64.tar.gz   
    

    配置

    $ vim /etc/profile
    

    在最后添加

    export JAVA_HOME=/home/ubuntu/developer/jdk1.8.0_121
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    

    请根据你jdk解压的路径修改。
    保存退出,然后更新一下。

    $ source /etc/profile
    

    注意可以可能需要切换到超级用户才能执行上面操作。

    #切换超级用户
    $ sudo su
    

    测试

    $ java -version
    
    java.png

    配置SSH 无密码链接

    如果没有安装SSH,执行下面命令安装

    # Install ssh
    $ apt install ssh
    # Check 22 port
    $ netstat –nat
    

    回到用户目录
    即 /home/ubuntu (ubuntu 是当前用户的主目录)

    $ cd ~
    

    执行 ssh-keygen 命令, 一直回车。

    $ ssh-keygen -t rsa
    
    ssh-keygen.png

    在当前用户目录下有个隐藏目录 .ssh 目录 ,进入该目录

    $ cd .ssh
    

    里面有 id_rsa.pub 文件, 将其赋值到 authorized_keys 文件

    $ cp id_rsa.pub authorized_keys
    

    然后再测试 SSH登录

    ssh-login-without-pass.png

    当你尝试连接本机的时候就可以直接链接不需要登录。
    如果你想直接链接其他VM, 只需要将其他机器上的 id_rsa.pub 添加到authorized_keys, 这样就可以直接ssh 链接过去而不需要输入密码。 这个在后面启动hadoop 时候就很有用,启动服务就不用输入密码。

    配置IP

    $ sudo vim /etc/hosts
    # 通过此命令配置IP映射
    

    第一个VM的 mster

    10.0.1.6 slave1
    10.0.1.10 slave2
    10.0.1.12 master
    

    第二个VM的 slave1

    10.0.1.6 slave1
    10.0.1.10 slave2
    10.0.1.12 master
    

    第三个VM的 slave2

    10.0.1.6 slave1
    10.0.1.10 slave2
    10.0.1.12 master
    

    配置Hadoop

    首先解压 hadoop 文件

    $ tar -xvf hadoop-2.7.3.tar.gz
    

    解压完成之后进入 配置文件所在目录即 hadoop-2.7.3 目录下 etc/hadoop 内

    cd /data/install/apache/hadoop-2.7.3/etc/hadoop/
    

    接下来要配置以下几个文件:
    core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves、hadoop-env.sh、yarn-env.sh

    hadoop-env.sh和yarn-env.sh 配置 jdk 环境
    # The java implementation to use.
    #export JAVA_HOME=${JAVA_HOME}
    export JAVA_HOME=/home/ubuntu/developer/jdk1.8.0_121
    
    core-site.xml
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/ubuntu/developer/hadoop-2.7.3/tmp</value>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131702</value>
        </property>
    </configuration>
    
    hdfs-site.xml
    
    <configuration>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/ubuntu/developer/hadoop-2.7.3/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/ubuntu/developer/hadoop-2.7.3/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>
        <property>
            <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
            <value>false</value>
        </property>
        <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property> 
    </configuration>
    
    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>
    </configuration>
    
    mapred-site.xml

    默认没有这个文件 但是提供了个模板 mapred-site.xml.template
    通过这个模板复制一个

    $ cp etc/hadoop/mapred-site.xml.template etc/hadoop/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>
    </configuration>
    
    
    slaves
    slave1
    slave2
    
    将配置好的hadoop 文件夹复制给其他节点(slave1 和slave2)
    scp -r /home/ubuntu/developer/hadoop-2.7.3 ubuntu@slave1:/home/ubuntu/developer/hadoop-2.7.3 
    scp -r /home/ubuntu/developer/hadoop-2.7.3 ubuntu@slave2:/home/ubuntu/developer/hadoop-2.7.3 
    
    运行启动Hadoop

    1- 初始化hadoop(清空hdfs数据):

    rm -rf /home/ubuntu/developer/hadoop-2.7.3/hdfs/*
    rm -rf /home/ubuntu/developer/hadoop-2.7.3/tmp/*
    /home/ubuntu/developer/hadoop-2.7.3/bin/hdfs namenode -format
    

    2- 启动hdfs,yarn

    /home/ubuntu/developer/hadoop-2.7.3/sbin/start-dfs.sh
    /home/ubuntu/developer/hadoop-2.7.3/sbin/start-yarn.sh
    
    

    3- 停止hdfs,yarn

    /home/ubuntu/developer/hadoop-2.7.3/sbin/stop-dfs.sh
    /home/ubuntu/developer/hadoop-2.7.3/sbin/stop-yarn.sh
    

    4- 检查是否成功
    在 master 终端敲 jps 命令


    master-jps.png

    在 slave 终端敲 jps 命令

    slave-jps.png

    或者在master 节点看 report

    $ bin/hdfs dfsadmin -report
    
    hdfs-report.png

    到此, hadoop 可以正常启动。

    一些常用命令
    #列出HDFS下的文件
    hdfs dfs -ls 
    #列出HDFS下某个文档中的文件
    hdfs dfs -ls in 
    #上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
    hdfs dfs -put test1.txt test2.txt 
    #从HDFS获取文件并且重新命名为getin,
    同put一样可操作文件也可操作目录
    hdfs dfs -get in getin 
    #删除指定文件从HDFS上
    hdfs dfs -rmr out 
    #查看HDFS上in目录的内容
    hdfs dfs -cat in/* 
    #查看HDFS的基本统计信息
    hdfs dfsadmin -report 
    #退出安全模式
    hdfs dfsadmin -safemode leave 
    #进入安全模式
    hdfs dfsadmin -safemode enter 
    

    运行WordCount官方例子

    1. 在 /home/ubuntu 下建立一个文件夹input, 并放几个txt文件在内
    2. 切换到 hadoop-2.7.3目录内
    3. 给hadoop创建一个 wc_input文件夹
    $  bin/hdfs dfs -mkdir /wc_input
    
    1. 将 /home/ubuntu/input 内的文件传到hadoop /wc_input 内
    $ bin/hdfs dfs –put /home/ubuntu/input*   /wc_input
    
    1. 运行命令
    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /wc_input /wc_oput
    
    1. 查看结果
    $ bin/hdfs dfs -ls /wc_output
    $ bin/hdfs dfs -ls /wc_output/part-r-00000
    
    1. 在浏览器上查看
      http://your-floating-ip:50070/dfshealth.html
      但是在此之前可能需要开通端口,为了简便我在OpenStack上将所有端口开通。
    tcp-ports.png web-view.png web-view-1.png web-view-2.png

    http://your-floating-ip:8088/cluster/scheduler

    web-view-3.png

    相关文章

      网友评论

        本文标题:Hadoop2.7.3 环境配置

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