Hadoop Streaming 实战: 传递环境变量
来源:互联网 发布:java urlencoder 解码 编辑:程序博客网 时间:2024/05/24 04:13
环境变量可以理解程序运行的系统环境,用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
用JAVA实现的Map-Reduce程序可以通过Hadoop提供的编程接口访问作业的配置信息,而streaming程序不能使用JAVA编程接口,因此,streaming框架通过设置环境变量的方式给mapper、reducer程序传递配置信息。常用的环境变量如下:
HADOOP_HOME
计算节点上配置的Hadoop路径
LD_LIBRARY_PATH
计算节点上加载库文件的路径列表
PWD
当前工作目录
dfs_block_size
当前设置的HDFS文件块大小
map_input_file
mapper正在处理的输入文件路径
mapred_job_id
作业ID
mapred_job_name
作业名
mapred_tip_id
当前任务的第几次重试
mapred_task_id
任务ID
mapred_task_is_map
当前任务是否为map
mapred_output_dir
计算输出路径
mapred_map_tasks
计算的map任务数
mapred_reduce_tasks
计算的reduce任务数
示例:
1).编写map程序mapper.sh;reduce程序reducer.sh; 测试数据test.txt
1).编写map程序mapper.sh;reduce程序reducer.sh; 测试数据test.txt
mapper.sh:
#以下为环境变量
TASK_ID=$mapred_task_id
PDW=$PWD
BLOCK_SIZE=$dfs_block_size
#环境变量附着到输入数据并输出
while read line
do
echo "$TASK_ID $PDW $BLOCK_SIZE $line"
done
reducer.sh:
#!/bin/sh
while read line
do
echo $line
done
test.txt:
1,2,1,1,1
1,2,2,1,1
1,3,1,1,1
1,3,2,1,1
1,3,3,1,1
1,2,3,1,1
1,3,1,1,1
1,3,2,1,1
1,3,3,1,1
2) 运行并观察输出
$hadoop streaming
-input /app/test/test.txt /
-output /app/test/test_result /
-mapper ./mapper.sh -reducer ./reducer.sh /
-file mapper.sh -file reducer.sh /
-jobconf mapred.map.tasks=10 -jobconf mapred.reduce.tasks=1 /
-jobconf mapred.job.name="envi_test"
$hadoop fs -cat /app/test/test_result/part-00000
/home/disk5/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000000_0/work 268435456 1,2,1,1,1
/home/disk3/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000001_0/work 268435456 1,2,2,1,1
/home/disk9/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000002_0/work 268435456 1,3,1,1,1
/home/disk9/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000003_0/work 268435456 1,3,2,1,1
/home/disk10/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000004_0/work 268435456 1,3,3,1,1
/home/disk9/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000005_0/work 268435456 1,2,3,1,1
/home/disk4/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000006_0/work 268435456 1,3,1,1,1
/home/disk2/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000007_0/work 268435456 1,3,2,1,1
/home/disk3/mapred/taskTracker/jobcache/job_201104221932_88161/attempt_201104221932_88161_m_000008_0/work 268435456 1,3,3,1,1
- Hadoop Streaming 实战: 传递环境变量
- Hadoop Streaming 实战: 传递环境变量
- Hadoop Streaming 实战: 传递环境变量
- Hadoop Streaming 实战: grep
- Hadoop Streaming 实战: grep
- Hadoop Streaming 实战: aggregate
- Hadoop Streaming 实战: aggregate
- Hadoop Streaming 实战: bash脚本
- Hadoop Streaming 实战: bash脚本
- Hadoop Streaming 实战: 二次排序
- Hadoop Streaming 实战: 文件分发与打包
- Hadoop Streaming 实战: 输出文件分割
- Hadoop Streaming 实战: 实用Partitioner类KeyFieldBasedPartitioner
- Hadoop Streaming 实战: 文件分发与打包
- Hadoop Streaming 实战: 输出文件分割
- Hadoop Streaming 实战: 多路输出
- Hadoop Streaming 实战: 文件分发与打包
- Hadoop Streaming 实战: 多路输出
- CSS 3实战(全彩印刷)
- 如何在VC调试器中显示Symbian字符串(译)
- sap 函数收集
- 边学边做ROR(%r正则表达式,=>符)
- 线程共享
- Hadoop Streaming 实战: 传递环境变量
- Visual C++ 开发数据库应用程序
- C#矩阵行列数
- 边学边做ROR(rails3.0.7命令行下载api文档方法)
- IIS+FastCGI+PHP5.3+MySQL5.1+Gzip详细教程_服务器配置
- Hibernate JDBC读取性能比较
- 彩信设计制作——SMIL语言
- jqGrid 表格demo
- 压力测试