zoukankan      html  css  js  c++  java
  • Hadoop最简单入门实战

    一、部署Hadoop本地模式

    1. 搭建linux环境
      我用的centos7
    2. 在/opt目录下创建目录
    mkdir module
    
    1. 安装jdk
    2. 下载hadoop https://hadoop.apache.org/releases.html 并解压到/opt/module目录
    3. 配置hadoop环境变量

    vi /etc/profile

    JAVA_HOME=/usr/local/jdk1.8.0_151
    HADOOP_HOME=/opt/module/hadoop-2.10.0
    CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin
    export JAVA_HOME CLASSPATH PATH
    
    

    配置完毕,刷新

    source /etc/profile

    这就安装完毕了,简单吧。。。

    二、运行Demo

    1. 建立一个测试用的输入文件

    echo 'hadoop mapreduce hivehbase spark stormsqoop hadoop hivespark' > data/wc.input

    1. 运行命令
      官方提供的计算单词数量的程序

    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount ../data/wc.input output

    1. 运行完成后,会创建一个output目录,里面中有 _SUCCESS 文件说明 JOB 运行成功,part-r-00000 是输出结果文件。结果示例如下:

    三、伪分布式部署

    进入hadoop目录

    cd /opt/module/hadoop-2.10.0/etc/hadoop

    1. 配置hadoop-env.sh
    export JAVA_HOME=/usr/local/jdk1.8.0_151
    
    1. 配置core-site.xml
    <configuration>
       <!-- 指定HDFS中namenode的路径  -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://eshop01:9000</value>
        </property>
       <!-- 指定HDFS运行时产生的文件的存储目录  -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/module/hadoop-2.10.0/data/tmp</value>
        </property>
    
    </configuration>
    
    
    1. 配置hdfs-site.xml
    <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    
    1. 启动集群
    • 格式化NameNode(第一次启动格式化)

    bin/hdfs namenode -format

    • 启动namenode

    sbin/hadoop-daemon.sh start namenode

    • 启动datanode

    sbin/hadoop-daemon.sh start datanode

    四、HDFS操作

    1. hdfs创建目录

    bin/hdfs dfs -mkdir -p /usr/mmc

    1. 上传本地文件到hdfs

    bin/hdfs dfs -put /opt/module/data/wc.input /usr/mmc

    1. 删除文件

    bin/hdfs dfs -rm -r /usr/mmc

    网页上查看效果:

    五、启动YARN

    1. 配置yarn-env.sh

    export JAVA_HOME=/usr/local/jdk1.8.0_151

    1. 配置yarn-site.xml
    <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>hadoop101</value>
    </property>
    
    </configuration>
    
    
    

    hadoop101那里要配置为你虚拟机的hostname

    1. 配置mapred-env.sh

    export JAVA_HOME=/usr/local/jdk1.8.0_151

    1. 配置mapred-site.xml(由mapred-site.xml.template重命名得到)

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

    <configuration>
            <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
            </property>
    </configuration>
    
    
    1. 启动yarn
     sbin/yarn-daemon.sh start resourcemanager
     sbin/yarn-daemon.sh start nodemanager
    
    1. 运行mapreduce程序
    • 先传一个文件到hdfs上
    hdfs dfs -mkdir -p /usr/mmc/input
    hdfs dfs -put ../data/wc.input /usr/mmc/input
    
    • 运行程序

    注意:运行之前用jps查看下,这些都启动没有NameNode、NodeManager 、DataNode、ResourceManager

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
    
    • 查看运行进度

    http://192.168.1.21:8088/cluster

    此时可以看到执行的进度了,但是那个History链接还是点不动,需要启动历史服务器

    1. 配置历史服务器
    • 打开mapred-site.xml
    <configuration>
            <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
            </property>
            <property>
            <name>mapreduce.jobhistory.address</name>
            <value>eshop01:10020</value>
            </property>
            <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>eshop01:19888</value>
            </property>
    </configuration>
    
    
    • 启动

    sbin/mr-jobhistory-daemon.sh start historyserver

    六、日志聚集

    注意:开启日志聚集需要重启Nodemanager,resourcemanager,historymanager

    1. 配置yarn-site.xml,增加如下配置
    <!--开启日志聚集功能  -->
    <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
    </property>
    <!-- 日志保留时间  -->
    <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
    </property>
    
    
    1. 启动Nodemanager,resourcemanager,historymanager

    2. 运行实例程序

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
    
    1. 查看log
      http://192.168.1.21:19888/jobhistory 点击指定job进去,点log
  • 相关阅读:
    unity HideInInspector与SerializeField
    Unity3D之游戏架构脚本该如何来写(转)
    写在创业公司工作后
    工作选择
    指针引用
    sqrt函数实现
    超平面
    【读书笔记】读《程序员面试宝典》
    【小白学游戏常用算法】一、随机迷宫算法
    【Cocos2d-x游戏开发】浅谈游戏中的坐标系
  • 原文地址:https://www.cnblogs.com/javammc/p/12953388.html
Copyright © 2011-2022 走看看