第一个WordCount

记录踩得坑以及部署环境流程。

搭建的是伪分布Hadoop

  1. 首先环境需要安装zookeeper。这个好装,不多说
  2. 其次比较复杂的是安装openssh。我的Linux系统是centos 7 mini版本。安装openssh之前的准备工作有很多。
    需要安装的tar包有:
    • libpcap-1.8.1.tar.gz
    • zlib-1.2.8.tar.gz
    • perl-5.22.4.tar.gz
    • openssl-1.0.2j.tar.gz
    • openssh-7.2p2.tar.gz
      顺序是先perl,再zlib。之后就随意了。因为zlib中会依赖perl5
      安装openssh主要目的是设置免密登录。方便hadoop搭建
  3. 安装hadoop。
    需要配置Java环境变量,以及Hadoop的环境变量。Java_HOME有时候加载不到的问题可以百度,把hadoop-evn.cmd配置文件大约第25行改掉就可以了。
    主要注意的是core-site.xml,hdfs-site.xml,yarn-site.xml这三个配置文件的配置
    core-site.xml
<configuration>
     <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.1.103:9000/</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
    <value>/home/u/hadoop-2.7.6/tmp</value>
      </property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
   <name>dfs.namenode.http-address</name>
   <value>192.168.1.103:50070</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.1.103:50090</value>
  </property>
  <!-- 指定HDFS副本数量 -->
  <property>
   <name>dfs.replication</name>
   <value>3</value>
  </property>
  <!--指定NameNode的存储路径-->
  <property>
   <name>dfs.namenode.name.dir</name>
   <value>/home/u/hadoop-2.7.6/namenode</value>
  </property>
  <!--指定DataNode的存储路径-->
  <property>
   <name>dfs.datanode.data.dir</name>
   <value>/home/u/hadoop-2.7.6/datanode</value>
  </property>
</configuration>

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
   <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.1.103</value>
   </property>
   <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
   </property>
<property>
     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

然后到hadoop-2.7.6/sbin/目录下面执行start-all.sh就可以一次性启动所有角色了。2.x启动成功后是这样的:
jps

运行第一个WordCount程序

我看的书是Hadoop实战。里面的程序有点老,导致自己写的WordCount有很多方法ClassNotFound。但是hadoop是自带第一个wordcount程序的。可以看到它的源码。现在先使用它自带的wordcount来测试下这个环境是否可行

  1. 生成输入文件
    echo "I love Java I love Hadoop I love BigData Good Good Study, Day Day Up" > wc.txt
  2. 在Hdfs上创建文件夹,把wc.txt上传到Hdfs
    hdfs dfs -mkdir -p /input/wordcount
    hdfs dfs -put wc.txt /input/wordcount
  3. 然后就可以执行了。输出文件目录是不存在的
    hadoop jar /home/u/hadoop-2.7.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input/wordcount /output/wordcount

结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39161031/article/details/80214512