Hadoop介绍及运行wordcount实例

     Hadoop 是Apache 下的一个项目,由HDFS、MapReduce、HBase、Hive 和ZooKeeper等成员组成。其中,HDFS 和MapReduce 是两个最基础最重要的成员。
      HDFS 是Google GFS 的开源版本,一个高度容错的分布式文件系统,它能够提供高吞吐量的数据访问,适合存储海量(PB 级)的大文件(通常超过64M),其原理采用Master/Slave 结构。NameNode 维护集群内的元数据,对外提供创建、打开、删除和重命名文件或目录的功能。DataNode 存储数据,并提负责处理数据的读写请求。DataNode定期向NameNode 上报心跳,NameNode 通过响应心跳来控制DataNode。
      InfoWord 将MapReduce 评为2009 年十大新兴技术的冠军。MapReduce 是大规模数据(TB 级)计算的利器,Map 和Reduce 是它的主要思想,来源于函数式编程语言,它的原理如下:Map 负责将数据打散,Reduce负责对数据进行聚集,用户只需要实现map 和reduce 两个接口,即可完成TB 级数据的计算,常见的应用包括:日志分析和数据挖掘等数据分析应用。另外,还可用于科学数据计算,如圆周率PI 的计算等。
      Hadoop MapReduce 的实现也采用了Master/Slave 结构。Master 叫做JobTracker,而Slave叫做TaskTracker。用户提交的计算叫做Job,每一个Job 会被划分成若干个Tasks。JobTracker负责Job 和Tasks 的调度,而TaskTracker负责执行Tasks。

      通过上面hadoop的简单介绍以及上篇hadoop部署配置的介绍,下面运行一个hadoop的简单实例wordcount:

一、运行hadoop :

       进入hadoop/bin,首先格式化文件系统:$ hadoop namenode –format
       启动Hadoop:$ start-all.sh
       用jps 命令查看进程:$ jps

、查看集群状态:

      $ hadoop dfsadmin -report

      Hadoop 的web 方式查看:http://192.168.0.4:50070

三、运行wordcount.java 程序


(1)先在本地磁盘建立两个输入文件file01 和file02:
$ echo “Hello World Bye World” > file01
$ echo “Hello Hadoop Goodbye Hadoop” > file02
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal /home/hexianghui/soft/file0* input
(4)执行wordcount:
$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2

可能出现的问题及相应的解决方法:


1、如果防火墙未关,可能出现如下错误:
File  /home/hexianghui/tmp/mapred/system/jobtracker.info could only be
replicated to 0 nodes, instead of 1
。用jps 查看进程都正常,用web 查看live nodes
为0. 说明datanode 没有正常启动,但datanode 进程实际是启动了。
解决方法:关闭防火墙:$ sudo ufw disable
另一种可能:把safemode 置于off 状态:$ hadoop dfsadmin –safemode leave

猜你喜欢

转载自huanglz19871030.iteye.com/blog/1512714