您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

#《Hadoop权威指南》——Hadoop简介

5b51 2022/1/14 8:25:24 python 字数 8157 阅读 820 来源 www.jb51.cc/python

<pstyle=\"text-align:left;\"> <pstyle=\"font-size:13.3333339691162px;\"><spanstyle=\"font-family:\'MicrosoftYaHei\';\">

概述

<p style="text-align:left;">

<p style="font-size:13.3333339691162px;"><span style="font-family:'Microsoft YaHei';">是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

Hadoop定制:


Spark:开源的类Hadoop MapReduce的通用并行框架。

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())

4.在Hadoop上运行python代码

4.1 数据准备
下载以下三个文件
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简介所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶