Hadoop Streaming详解与实战指南
5星 · 超过95%的资源 需积分: 10 160 浏览量
更新于2024-09-29
收藏 49KB PDF 举报
"Hadoop Streaming是Hadoop生态中的一个工具,允许使用任何可执行程序(如脚本或命令行工具)作为MapReduce作业的Mapper和Reducer。这个工具通过标准输入和输出来传递数据,使得非Java程序可以参与Hadoop的数据处理流程。"
在Hadoop Streaming中,数据处理的基本原理是Mapper和Reducer程序通过标准输入(stdin)接收数据,然后通过标准输出(stdout)发送结果。当提交作业时,用户需要指定Mapper和Reducer程序的位置,通常是可执行文件的路径。例如,可以使用Shell脚本或Python脚本来编写Mapper和Reducer。
包装文件与作业提交部分提到,用户需要将Mapper和Reducer程序以及它们可能依赖的所有文件打包成一个存档文件(如tar或zip),然后在提交作业时一起提供。这样,Hadoop集群上的节点就能访问到这些必要的文件。
关于Streaming选项和用法:
1. Mapper-Only Jobs:有些作业可能只需要Mapper阶段,没有Reducer阶段,这可以通过不指定Reducer来实现。
2. Specifying Other Plugins for Jobs:用户可以指定其他插件,比如Combiner,以提高性能。
3. Large files and archives in Hadoop Streaming:大型文件或存档可以通过Hadoop Streaming处理,只需确保所有需要的文件都包含在提交的作业包中。
4. Specifying Additional Configuration Variables for Jobs:可以通过设置额外的配置变量来调整作业的行为,如设置HDFS参数或MapReduce特定的配置。
5. Other Supported Options:还有其他一些选项,例如定义输入和输出格式,控制日志级别等。
更多的使用示例包括:
1. 自定义分割行成键值对的方式,可以根据需求定制数据解析逻辑。
2. 使用有用的Partitioner类(如KeyFieldBasedPartitioner)进行二级排序。
3. 集成Hadoop Aggregate包,实现简单的聚合操作,类似于内置的reduce操作。
4. 字段选择功能,可以提取输入数据中的特定字段,类似于Unix的`cut`命令。
常见问题解答部分提供了对一些常见问题的回答,如如何运行一组相互独立的任务、如何按文件进行处理、如何确定Reducer的数量、是否可以在Shell脚本中使用别名以及是否能使用Unix管道等。
Hadoop Streaming为非Java开发者提供了一个灵活的数据处理框架,能够利用已有的脚本或命令行工具进行大数据分析,极大地扩展了Hadoop的适用范围。通过理解和掌握Hadoop Streaming的工作原理和使用技巧,可以更高效地处理各种复杂的数据处理任务。
2012-02-29 上传
2021-09-28 上传
2012-05-10 上传
2014-05-29 上传
110 浏览量
2016-06-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
doudou0411
- 粉丝: 0
- 资源: 10
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析