初探hadoop框架
来源:互联网 发布:app store付费软件 编辑:程序博客网 时间:2024/06/06 09:52
首先做好前期的准备:
安装hadoop集群,我是采用的伪分布式(练习使用),四台虚拟机,
一台为主(master),三台为从(slave)。
因为是练习,所以就在主节点master上练习作业,没有在客户端访问集群,
语言选择的是python
任务:将一个txt文件中的单词进行计数,然后输出到集群上。
四个文件:
一个源文件xxx.txt
一个map文件:map.py
一个reduce稳健:red.py
一个run.sh(采用shell脚本编写)
map.py
#!/usr/bin/env pythonimport sysfor line in sys.stdin: ss = line.strip().split(" ") for s in ss: print '\t'.join([s.strip(),'1'])
red.py
#!/usr/bin/env pythonimport syssum=0count_pool=[]current_word=Nonefor line in sys.stdin: word,val = line.strip().split('\t') if current_word == None: current_word = word if current_word != word: for count in count_pool: sum += count print "%s\t%s" % (current_word,sum) current_word = word count_pool = [] sum = 0 count_pool.append(int(val))for count in count_pool: sum += countprint "%s\t%s" % (current_word, str(sum))
run.sh
$HADOOP_CMD="/usr/local/src/hadoop-1.2.1/bin/hadoop"//hadoop命令路径$STREAM_JAR_PATH="/usr/local/src/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar"//streamming路径INPUT_FILE_PATH_1="1.data"OUTPUT_PATH="/output"$HADOOP_CMD fs -rmr -skipTrash $OUTPUT_PATH#Step 1.$HADOOP_CMD jar $STREAM_JAR_PATH \ -input $INPUT_FILE_PATH_1 \ //指定作业的输入文件hdfs路径 -output $OUTPUT_PATH \ //指定作业输出文件hdfs路径 -mapper "python map.py" \ //自己的mapper程序 -reducer "python red.py" \ //自己的reducer程序 -file ./map.py \ -file ./red.py /* file 打包文件到提交作业中 (1)map和reduce的执行文件 (2)map和reduce要用于输入的文件,如配置 类似配置 -cacheFile 向计算节点分发hdfs文件 -cacheArchive 分发hdfs压缩文件 */
常见的一些配置
-jobconf
提交作业的一些配置属性
常见配置
- mapred.map.tasks:map task数目
- mapred.reduce.tasks:reduce task数目
- stream.num.map.output.key.fields:指定map task输出记录中key所占域数目
- num.key.fields.for.partition指定对key分出来的前几部分做partiition而不是整个key
- mapred.job.name 作业名
mapred.job.priority 作业优先级
mapred.job.map.capacity 最多同时运行map任务数
mapred.job.reduce.capacity 最多同时运行reduce任务数
mapred.task.timeout 任务没有响应(输入输出)的最大时间
mapred.compress.map.output map的输出是否压缩
mapred.map.output.compression.codec map的输出压缩方式
mapred.output.compress reduce的输出是否压缩
mapred.output.compression.codec reduce的输出压缩方式
stream.map.output.field.separator map输出分隔符
阅读全文
0 0
- 初探hadoop框架
- Hadoop初探
- hadoop 初探
- Hadoop初探
- Hadoop初探
- hadoop 初探
- hadoop初探
- Hadoop安装及初探
- hbase&hadoop初探
- Hadoop初探(一)
- Hadoop初探(二)
- Hadoop集群搭建,初探
- Hadoop安装初探
- HADOOP初探(一)
- Hadoop初探(一)
- hadoop生态系统初探
- 初探Hadoop 2.x
- Hadoop Yarn初探
- Linux rar unrar的安装
- css经典布局一
- 音视频基础知识之PCM数据
- HashMap的实现原理
- Leetcode:258.Add Digits 加数字,直到为个位数
- 初探hadoop框架
- final,finally,finalize 三者区别
- CF_17C Balance
- Java方法参数及其传递
- Windows环境下使用CMake编译OpenCV3.0和OpenCV_contrib
- 自测01—打印沙漏
- AOSP 安卓源码-ubuntu开发环境搭建
- KazaQ's Socks HDU
- 调整数组使奇数全部都位于偶数前面