5.2 伪分布运行模式

Hadoop也可以以伪分布模式的方式运行在单节点上, 这个时候每一个Hadoop守护进程都是一个单独的Java进程.

这种模式需要进行相应的分布式设置, 但是又由于只有一个节点, 所以我们称之为伪分布模式.

由于Hadoop2.x增加了Yarn, 所以有两个选择: 可以把MapReduce程序直接运行在HDFS上, 也可以选择运行在Yarn


5.2.1 在HDFS上运行MapReduce程序

配置集群

  1. etc/hadoop/hadoop-env.sh中配置JAVA_HOME变量

    • 获取jdk安装路径: echo $JAVA_HOME

    • etc/hadoop/hadoop-env.sh中添加一行代码:

      export JAVA_HOME=/opt/module/jdk1.8.0_172
      

    注意:

    • Hadoop下的etc目录, 不是根目录下的etc目录
  2. 配置core-site.xml (核心站点)

    <!-- 指定HDFS中NameNode的地址 -->
    <property>
      <name>fs.defaultFS</name>
      <!-- 地址要根据自己实际情况来写. 具体的ip地址也是可以的 -->
      <value>hdfs://hadoop201:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
    
  3. 配置hdfs-site.xml(hdfs站点)

    <!-- 指定HDFS副本的数量 -->
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
    

    说明:

    • 这里设置的副本的数量是指的将来在HDFS上存储的文件的副本.

    • 因为现在配置的是单节点伪分布模式, 所以把副本数量设置为 1


启动集群

  1. 格式化 NameNode.

    hdfs namenode -format
    

    注意:

    • 格式化的动作只需要执行一次即可. 以后再启动集群不需要重复执行这个动作.

    • 多次格式化会出现异常, 务必不要多次格式化.

  2. 启动 namenode

    hadoop-daemon.sh start namenode
    
  3. 启动 datanode

    hadoop-daemon.sh start datanode
    

查看集群

  1. 查看namenodedatanode是否启动成功

    jps
    

  2. 日志文件在logs目录下.如果启动失败可以在日志文件中查找失败的原因.

  3. 使用web端查看hdfs文件系统

    web端地址是: http://192.168.1.201:50070/

    注意:

    • 地址其实就是namenode所在的主机的地址

    • 50070web端口. 和前面配置的9000区别开来: 9000datanodenamenode通讯时的端口.


操作集群:在集群上运行wordcount程序

  1. 在本地创建一个文件words.txt, 文件内容如下:(内容随意)

    hello world hello world
    atguigu
    hello 
    I love atguigu
    hello world
    how are you
    
  2. hdfs系统的根目录下创建一个文件夹/input.

    hdfs dfs -mkdir /input
    
  3. words.txt上传到hdfs系统上的/input目录下

    hdfs dfs -put words.txt /input
    
  4. 查看是否上传成功

    • 方法1: hdfs dfs -ls /input

    • 方法2: 使用web端查看: http://hadoop201:50070

  5. 在集群上运行wordcount程序

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
    

  6. 查看输出结果

    • 方法1: 直接在hdfs系统上查看

      hdfs dfs -cat /output/part-r-00000
      

    • 方法2: 把输出结果下载到本地之后查看

      hdfs dfs -get /output ./
      


5.2.1 在Yarn上运行MapReduce程序

Hadoop2.x增加了组件Yarn, 我们也可以把我们的MapReduce程序在Yarn上执行.

而且, 以后也确实应该这么做.

关于Yarn具体作用我们在后面的课程中会详细讲解.

在前面配置的基础上, 配置Yarn就可以了.

集群配置

  1. etc/haddop/yarn-env.sh上配置JAVA_HOME (伪分布模式中不配置也可, 但是在全分布模式中就必须要配置了)

    export JAVA_HOME=/opt/module/jdk1.8.0_172
    
  2. 配置yarn-site.xml

    <!-- reducer获取数据的方式 -->
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <!-- 主机地址要根据实际情况来定 -->
      <value>hadoop201</value>
    </property>
    
  3. 配置/etc/hadoop/mapred-site.xml

    • 复制出来一个/etc/hadoop/mapred-site.xml
      cp mapred-site.xml.template mapred-site.xml
      
    • 配置/etc/hadoop/mapred-site.xml

      <!-- 指定MapReduce程序运行在yarn上 -->
      <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
      </property>
      
  4. 启动resourcemanager

    yarn-daemon.sh start resourcemanager
    

  5. 启动nodemanager

    yarn-daemon.sh start nodemanager
    

集群操作

  1. 查看Yarn: http://192.168.1.201:8088/cluster

  2. 运行MapReduce程序:wordcount

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output2
    
  3. 查看执行结果

Copyright © 尚硅谷大数据 2013-2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-11-20 18:14:11

results matching ""

    No results matching ""