• ubuntu14.04搭建Hadoop2.9.0伪分布式环境


    本文主要参考 给力星的博文——Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    一些准备工作的基本步骤和步骤具体说明本文不再列出,文章中提到的“见参考”均指以上这篇博文,如有其他参考,会另外给出链接

    一、创建Hadoop用户

    见参考

    二、更新apt

    见参考

    三、安装配置SSH

    见参考

    四、搭建Java环境

    本人采用的是通过ppa源安装的方式,具体操作见:http://www.cnblogs.com/a2211009/p/4265225.html

    采用这种方式时可能会出现错误error processing package oracle-java8-installer

    解决方法见本人另一篇博文:http://www.cnblogs.com/VeryGoodVeryGood/p/8318105.html

    通过ppa安装jdk时,会自动配置5个环境变量,包括JAVA_HOME,关于这5个环境变量的说明,详见博文:Ubuntu安装Oracle Java8以及环境变量的正确设置方法

    再在~/.bashrc中添加如下环境变量

    export JRE_HOME=$J2REDIR
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    让以上环境变量生效

    $ source ~/.bashrc

    五、安装 Hadoop

    见参考

    ~/.bashrc中添加如下环境变量

    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    让以上环境变量生效

    $ source ~/.bashrc

    六、配置Hadoop伪分布式

    我下载的是2.9.0版本,配置文件在目录/usr/local/hadoop/etc/hadoop/

    hadoop-env.sh

    #export JAVA_HOME=${JAVA_HOME}
    #将上面的行注释掉,用下面的行替代:
    export JAVA_HOME=/usr/lib/jvm/java-8-oracle
    #这样做是避免,Hadoop配置文件中读不到$JAVA_HOME而报错

    core-site.xml,详细说明见:http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-common/core-default.xml

    <configuration>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/usr/local/hadoop/tmp</value>
                    <description>Hadoop重要临时文件存放目录</description>
            </property>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://localhost:9000</value>
                    <description>一种方案和权限决定文件系统实现的URI</description>
            </property>
    </configuration>

    hdfs-site.xml,详细说明见:http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
                    <description>复制的块的数量</description>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
                    <description>DFS管理节点的本地存储路径</description>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
                    <description>DFS数据节点的本地存储路径</description>
            </property>
    </configuration>

    mapred-site.xml,详细说明见:http://hadoop.apache.org/docs/r2.9.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

    先重命名

    $ mv mapred-site.xml.template mapred-site.xml

    再配置

    <configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                    <description>执行MapReduce作业时运行的框架</description>
            </property>
    </configuration>

    yarn-site.xml,详细说明见:http://hadoop.apache.org/docs/r2.9.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

    <configuration>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
                    <description>NodeManager的辅助服务</description>
            </property>
    </configuration>

    七、启动和关闭Hadoop

    0. 格式化NameNode(更改配置后才执行这一步)

    hdfs namenode -format

    下面步骤中运行的脚本均在目录/usr/local/hadoop/sbin/中,因为在环境变量PATH里增加了该路径,所以在运行时不必指定脚本路径

    1. 开启NameNodeDataNode守护进程

    $ start-dfs.sh

    2. 启动YARN

    $ start-yarn.sh

    3. 判断是否成功启动

    $ jps

    若成功启动会看见6个进程,分别是:Jps、DataNode、NameNode、SecondaryNameNode、NodeManager、ResourceManager

    若未配置YARN,则会看见4个进程,分别是:Jps、DataNode、NameNode、SecondaryNameNode

    成功启动后,可以访问Web界面http://localhost:50070/查看NameNode和DataNode的信息以及在线查看HDFS中的文件

    4. 关闭Hadoop

    $ stop-dfs.sh
    $ stop-yarn.sh

    12步替代

    $ start-all.sh

    4步替代

    $ stop-all.sh

    八、伪分布式实例

    1. 在HDFS中创建用户目录

    $ hdfs dfs -mkdir -p /user/hadoop

    2. 创建input目录

    $ hdfs dfs -mkdir input

    3. 将本地文件复制到input里

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

    4. 查看文件列表

    $ hdfs dfs -ls input

    5. 操作

    $ hdfs dfs -rm -r output #Hadoop运行程序时,输出目录不能存在,否则会提示错误
    $ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

    6. 查看运行结果

    $ hdfs dfs -cat output/*

    7. 将运行结果取回本地

    $ rm -r ./output #先删除本地output目录
    $ hdfs dfs -get output ./output
    $ cat ./output/*

    8. 删除output目录

    $ hdfs dfs -rm -r output
    $ rm -r ./output

    以上

  • 相关阅读:
    C#中自动增量字段值的获取方法
    Mio改造第一步
    酒后
    阳朔自驾行-行程篇
    如何在C#中获取新插入的identity列值
    格格生了
    扯皮
    nPdl的翻译
    asp.net和asp的互相调用
    NetBPM前进了一步,解决了上一个问题
  • 原文地址:https://www.cnblogs.com/VeryGoodVeryGood/p/8507795.html
Copyright © 2020-2023  润新知