<p >
<p ><span >
<h3 >
<span ><span >Hadoop简介(记)
<p ><span >是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop distributed filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
<p ><span > 对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个nameNode和若干个Datanode组成的。其中nameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问 *** 作;集群中的Datanode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
<p ><span > 从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件 *** 作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。
<p ><span ><a href="http://www.aboutyun.com/thread-6843-1-1.html" rel="nofollow">虚拟机配置伪分布式 hadoop环境配置
<p >----------------------------------------------------------一些概念----------------------------------------------------------------
。
。
map函数是一个数据准备阶段:映射+筛选
reduce函数是一个数据处理过程:求出结果
(1)数据分片。最佳分片大小应与块相同
(2)map过程。即数据本地优化。输出写入本地硬盘,而不是HDFS,因为只是中间结果。如果传送失败只需再次运行
(3)合并及求解过程。map输出结果传送带reduce任务节点进行合并,结果写入HDFS。
def mapper():
with open("F:/hadoop/data/1901","r") as fd:
rawList = fd.readlines()
mapList = []
for line in rawList:
val = line.strip()# 预处理
(year,temp,q) = (val[15:19],val[87:92],val[92:93]) # 分离
if (temp != "+9999" and re.match("[01459]",q)):
mapList.append((year,temp))
print "%s\t%s" % (year,temp)
return mapList
def reducer(inputList):
(last_key,max_val) = (None,-sys.maxint)
for line in inputList:
(key,val) = line
if last_key and last_key != key:
print "%s\t%s" % (last_key,max_val)
(last_key,max_val) = (key,int(val))
else:
(last_key,max(max_val,int(val)))
if last_key:
print "%s\t%s" % (last_key,max_val)
reducer(mapper())
<span >文件会读取mapper.py的结果作为reducer.py 的输入,并统计每个单词出现的总的次数,把最终的结果输出到HDFS下载以下三个文件的
Plain Text UTF-8
Plain Text UTF-8
Plain Text UTF-8
把上面三个文件放到hadoop-0.20.2/test/datas/目录下
4.2 运行
把本地的数据文件拷贝到分布式文件系统HDFS中。
bin/hadoop dfs -copyFromLocal /test/datas hdfs_in
查看
bin/hadoop dfs -ls
结果
1
drwxr-xr-x - rte supergroup 0 2014-07-05 15:40 /user/rte/hdfs_in
查看具体的文件
bin/hadoop dfs -ls /user/rte/hdfs_in
执行MapReduce job
bin/hadoop jar contrib/streaming/hadoop-*streaming*.jar \
-file test/code/mapper.py -mapper test/code/mapper.py \
-file test/code/reducer.py -reducer test/code/reducer.py \
-input /user/rte/hdfs_in/* -output /user/rte/hdfs_out
实例输出
查看输出结果是否在目标目录/user/rte/hdfs_out
bin/hadoop dfs -ls /user/rte/hdfs_out
查看结果
bin/hadoop dfs -cat /user/rte/hdfs_out2/part-00000
以上是内存溢出为你收集整理的#《Hadoop权威指南》——Hadoop简介全部内容,希望文章能够帮你解决#《Hadoop权威指南》——Hadoop简介所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)