centos搭建hadoop伪分布式集群

用centos搭建hadoop伪分布式集群,一路坎坷,终于走过来了。记录一下:

版本:centos7和hadoop2.7.4

hadoop的安装就不用说了,下载安装包解压就行,很顺利。主要是配置文件。一共有5个配置文件需要修改:

1:etc/hadoop/hadoop-env.sh配置文件

将 JAVA_HOME增加到此文件中,一般是文件末尾:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

2:core-site.xml配置文件


  
      fs.defaultFS
      hdfs://localhost:9000
  
  
   hadoop.tmp.dir
   /home/hadoop/tmp
 

其中hadoop.tmp.dir就是hadoop运行过程中产生临时文件的存放位置。
3:hdfs-site.xml配置文件


  
      dfs.replication
      1
  

4:mapred-site.xml配置文件


  
      mapreduce.framework.name
      yarn
  

5:yarn-site.xml配置文件


   
       yarn.nodemanager.aux-services
       mapreduce_shuffle
   

然后按照一般的hadoop搭建伪分布式集群来搭建。遇到了几个问题。
第一个问题:jps显示中没有datanode:
原因为name和node的version不一致,解决方法参考 http://nekomiao.me/2016/08/10/hadoop-without-datanode/
正常的jps结果中应该包含如下几个项:

27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

第二个问题:jps中没有nodemanager,并且导致50070端口无法访问
第三个问题:执行hadoop的实例程序wordcount,发现一直卡在running,而且8088页面上显示Memory Total 那些都是0。
这两个问题的解决办法都是,修改yarn-site.xml配置文件:


   
       yarn.nodemanager.aux-services
       mapreduce_shuffle
   
   
       yarn.nodemanager.resource.memory-mb
       8192
   
   
       yarn.nodemanager.resource.cpu-vcores
       1
   

注意内存默认是8192,此值不能设置过小,比如设置成1024时,会经常报错,说使用的内存超过了1024M。
参考:http://www.voidcn.com/article/p-nykwlxxc-beo.html

至此,终于搭建完毕hadoop伪分布集群,并成功执行wordcount实例程序。

centos搭建hadoop伪分布式集群_第1张图片
Paste_Image.png

centos搭建hadoop伪分布式集群_第2张图片
Paste_Image.png

centos搭建hadoop伪分布式集群_第3张图片
Paste_Image.png

有时候搞不清某个文件到底是本地centos文件系统里面的,还是hdfs文件系统里面的,后面总结了一下,看路径:/user/hadoop这种一般是hdfs文件系统里面的。/home/hadoop一般是本地文件里面的。
stream jar是指/home/hadoop/hadoop-2.7.4/share/hadoop/tools/lib/hadoop-streaming-2.7.4.jar这个文件。
参考:
centos7搭建hadoop
大数据随笔
怎样进行大数据的入门级学习
一个杂货铺
解决Hadoop启动时,没有启动datanode
python的Numpy包学习
让python在hadoop上跑起来
Writing an Hadoop MapReduce Program in Python

你可能感兴趣的:(centos搭建hadoop伪分布式集群)