Hadoop 资源
淘宝Hadoop的技术分享
http://rdc.taobao.com/blog/dw/archives/category/hadoop
http://rdc.taobao.com/blog/dw/archives/244
Hadoop基本流程与应用开发
http://www.infoq.com/cn/articles/hadoop-process-develop
Hadoop性能调优
http://wiki.apache.org/hadoop/PerformanceTuning
HBase性能调优
http://wiki.apache.org/hadoop/Hbase/PerformanceEvaluation
hadoop中使用lzo压缩格式
http://code.google.com/p/hadoop-gpl-compression/wiki/FAQ
http://blog.csdn.net/workhardupc100/archive/2010/03/04/5345013.aspx
http://www.cloudera.com/blog/2009/11/hadoop-at-twitter-part-1-splittable-lzo-compression/
给MR加jar
hadoop jar hadoop-examples.jar wordcount -files cachefile.txt -libjars mylib.jar input output
Hadoop DFS Used是如何计算的? (集群中所有dfs.data.dir目录相加)
bin/hadoop fs -du /
http://hadoop.hadoopor.com/redirect.php?tid=562&goto=lastpost
-----------------------------------------------------------------
Hadoop 集群参数配置
hadoop-0.20.2\docs\cluster_setup.html
MapReduce的同时 ,(DFS Used : 8.21 GB )大小会增加,因为被使用。默认存放Job中间文件的路径是dfs.data.dir(/tmp目录,由Hadoop自动清理,或者手动hadoop fs -rmr /tmp )
默认提交的Job,都会在后台执行,即使前台停止。
Kiss不要的Job
bin/hadoop job -kill job_201004141024_0002
配置每个Task对应的Map和Reduce数量
conf/mapred-site.xml
(The maximum number of Map/Reduce tasks, which are run simultaneously on a given TaskTracker, individually. )
mapred.tasktracker.map.tasks.maximum=2
mapred.tasktracker.reduce.tasks.maximum=2
默认为2,如果有3台hadoop机器,则同时最多6个Map在执行。
mapred.map.tasks (The default number of map tasks per job.)
配置MapReduce的大小
关于多少Map和Reduce的建议
Map的数目通常是由输入数据的大小决定的,一般就是所有输入文件的总块(block)数。
Reduce的数目建议是0.95或1.75乘以 (<no. of nodes> * mapred.tasktracker.reduce.tasks.maximum)。
用0.95,所有reduce可以在maps一完成时就立刻启动,开始传输map的输出结果。用1.75,速度快的节点可以在完成第一轮reduce任务后,可以开始第二轮,这样可以得到比较好的负载均衡的效果。
http://wiki.apache.org/hadoop/HowManyMapsAndReduces
-----------------------------------------------------------------
Hadoop + Hbase 性能
-----------------------------------------------------------------
Hadoop 性能测试
1千万条记录,3台机器,每台机器最多并行10个Map
/home/bmb/jdk1.6.0_16/bin/java -cp examples.zip examples.CreateLogFile test.log 10000000
1KW=350.74MB =5.46 Block
bin/hadoop fs -put test.log hadoop-performance-test
计算文件中,同一时间生成的行数
/home/iic/hadoop-0.20.2/bin/hadoop jar hadoop-examples.zip examples.HadoopMRTest hadoop-performance-test hadoop-performance-test-out 1
第一次启动,Hadoop自动分配 map6, reduce 1
1KW/39=25W/s
10/04/14 13:43:36
10/04/14 13:44:15
从Job的Complet Map中,可以看到,每台机器运行2个Map
查看结果
bin/hadoop fs -cat hadoop-performance-test-out/part-r-00000
1271222992947 349
验证:
grep 1271222992947 test.log |wc -l
删除目录,方便重新测试
bin/hadoop fs -rmr hadoop-performance-test-out
bin/hadoop fs -rmr hadoop-performance-test
1亿条记录==3.61GB=58 Block
/home/bmb/jdk1.6.0_16/bin/java -cp examples.zip examples.CreateLogFile test_10KW.log 100000000
bin/hadoop fs -put test_10KW.log hadoop-performance-test
/home/iic/hadoop-0.20.2/bin/hadoop jar hadoop-examples.zip examples.HadoopMRTest hadoop-performance-test hadoop-performance-test-out 6
指定reduce 6,Hadoop自动分配 map 58
10KW/197=50.76W/s
10/04/14 14:14:40
10/04/14 14:17:57
-----------------------------------------------------------------
此例子3台机器, replication=2 , 默认块大小64M,功能,把表mrtest的列content的值反转到列text里面
初始100W数据,执行Map Reduce,只有1个Map.
(重新清理Hadoop后,统计得:刚开始DFS Used : 100.03 KB ,创建完后DFS Used : 234.27 MB,Replication=2,
一次MR后,DFS Used : 345.88 MB ,同时HBase中表mrtest的内容被重新分布(原因是Hbase是Readonly,当执行Update操作,必然导致重新创建),DFS Used之所以增大,是因为Hadoop保存数据默认3个时间版本,所以一次MR后,多了一个版本的数据
重启Hadoop,DFS Used : 262.87 MB
第二次MR后,DFS Used : 537.04 MB ,重启Hadoop,DFS Used : 358.61 MB
第三次MR后,DFS Used : 431.89 MB ,重启Hadoop,DFS Used : 454.35 MB
)
/home/iic/hadoop-0.20.2/bin/hadoop jar examples.zip examples.TestTableMapReduce examples.TestTableMapReduce
时间执行 (100W / (8*60) ) = 2083个记录/每秒
10/04/13 14:08:33
10/04/13 14:16:25
cd /home/iic/hadoop-0.20.2/examples
./run_test.sh 生成900W的数据
/home/iic/bmb/jdk1.6.0_16/bin/java -cp .: com.test.hadoop.hbase.HBaseTest 1 10000000
同样环境,测试1000W数据
出现java.lang.ClassNotFoundException: org.apache.hadoop.hbase.mapreduce.TableOutputFormat
原因:新增的Hadoop机器:5.12类路径没有包含HBase,在conf/hadoop-env.sh中,加入类库引用
export HBASE_HOME=/home/iic/hbase-0.20.3
export HADOOP_CLASSPATH=$HBASE_HOME/hbase-0.20.3.jar:$HBASE_HOME/hbase-0.20.3-test.jar:$HBASE_HOME/conf:${HBASE_HOME}/lib/zookeeper-3.3.0.jar
1000W的数据,大小达到3个Block, 执行Map Reduce,这时Map数量为3,由于是对Hbase进行MapReduce,而HBase最多的Map值是通过以下计算(for the list of regions and makes a map-per-region or mapred.map.tasks maps
, whichever is smaller )。
时间执行 (1000W / (33*60) ) = 5050个记录/每秒
10/04/13 18:48:52
10/04/13 19:20:06
修改Map为6(实际Hadoop Job自动生成5)和Reduce的数量3
从5.11拷贝到2.79
cd /home/iic/hadoop-0.20.2
scp examples.zip iic@192.168.2.79:/home/iic/hadoop-0.20.2/
时间执行 (1000W / (21*60) ) = 7936个记录/每秒
10/04/13 19:43:55
10/04/13 20:04:17
修改map为9(Hadoop自动转成16,同时把/hbase/mrtest分成17个目录,17个Block),Reduce为9
(注:Hadoop会缓存mapred.map.tasks,除非出现新的参数)
mapred-site.xml
<property>
<name>mapred.map.tasks</name>
<value>9</value>
</property>
时间执行 (1000W / (18*60) ) = 9259个记录/每秒
10/04/14 09:27:36
10/04/14 09:45:55
按照上面的配置,再次执行一遍,Map变成17(Hadoop和Hbase会自动根据Block大小,增加Map数量)。
从日志看,Reduce会存在网络的Block复制,如果网速快,也会增加MR的速率
当Map为17的时候,每台机器的CPU从Map为3的20%增加到100%多。
但是执行到最后,2.79和5.11的Hbase,region server当掉。导致执行失败。
重启Hadoop和Hbase,再执行
Map自动变成18,Reduce 9
时间执行 (1000W / (18*60) ) = 9259个记录/每秒
10/04/14 10:27:39
10/04/14 10:45:48
每次执行后,Block数量一直在增加
虽然Map是18,但是由于只有3台机器,而且默认mapred.tasktracker.map.tasks.maximum=2,每个TaskTracker最多同时并行2个Map,所以18个Map不是全部并行执行。
最多同时6个Map。同理最多同时6个Task。
修改3台机器的参数mapred-site.xml,重启Hadoop
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>10</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>10</value>
</property>
时间执行 (1000W / (15*60) ) = 11111个记录/每秒
10/04/14 11:36:49
10/04/14 11:51:56
测试的时候,2.79的region server 挂了,用以下命令重启
bin/hbase-daemon.sh start regionserver
分享到:
相关推荐
1.5.2 相同程序在MapReduce中的扩展 1.6 用Hadoop统计单词——运行第一个程序 1.7 Hadoop历史 1.8 小结 1.9 资源 第2章 初识Hadoop 2.1 Hadoop 的构造模块显示全部信息第一部分 Hadoop——一种分布式编程框架...
71.5.2 相同程序在MapReduce中的扩展 91.6 用Hadoop统计单词——运行第一个程序 111.7 Hadoop历史 151.8 小结 161.9 资源 16第2章 初识Hadoop 172.1 Hadoop的构造模块 172.1.1 NameNode 172.1.2 ...
2.1.7 HDFS 缓存相关配置…·……………………………………… …… ……………………………… 40 2.2 HDFS 中心缓存管理…... ... .…· ·……………………………………………………………………….. 42 2.2.l HDFS...
71.5.2 相同程序在MapReduce中的扩展 91.6 用Hadoop统计单词——运行第一个程序 111.7 Hadoop历史 151.8 小结 161.9 资源 16第2章 初识Hadoop 172.1 Hadoop的构造模块 172.1.1 NameNode 172.1.2 DataNode 182.1.3 ...
编写MapReduce基础程序4.1 获得专利数据集4.1.1 专利引用数据4.1.2 专利描述数据4.2 构建MapReduce 程序的基础模板4.3 计数4.4 适应Hadoop API 的改变4.5 Hadoop 的Streaming4.5.1 通过Unix命令使用Streaming4.5.2 ...
2.1 Hadoop的核心模块 Hadoop Common:Hadoop的公用应用模块,是整个Hadoop项目的核心,为Hadoop各子项目提供各 种工具,如配置文件和日志操作等,其他Hadoop子项目都是在此基础上发展起来的。 Hadoop Distributed ...
Hadoop企业优化常用的调优参数,资源相关参数:(1)在用户自己的MR应用程序中配置就可以生效(mapred-default.xml)和(2)在YARN启动之前就配置在服务器的配置文件中才能生效(yarn-default.xml);容错相关参数...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...
该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...