`
genius_bai
  • 浏览: 80925 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop 资源+配置+性能

阅读更多

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.951.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

 

 

 

 

 

 

分享到:
评论

相关推荐

    Hadoop实战中文版

    1.5.2 相同程序在MapReduce中的扩展 1.6 用Hadoop统计单词——运行第一个程序 1.7 Hadoop历史 1.8 小结 1.9 资源 第2章 初识Hadoop 2.1 Hadoop 的构造模块显示全部信息第一部分 Hadoop——一种分布式编程框架...

    Hadoop实战中文版.PDF

    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 ...

    hadoop大数据实战手册

    2.1.7 HDFS 缓存相关配置…·……………………………………… …… ……………………………… 40 2.2 HDFS 中心缓存管理…... ... .…· ·……………………………………………………………………….. 42 2.2.l HDFS...

    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 DataNode 182.1.3 ...

    Hadoop实战(陆嘉恒)译

    编写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 ...

    大数据与Hadoop.doc

    2.1 Hadoop的核心模块 Hadoop Common:Hadoop的公用应用模块,是整个Hadoop项目的核心,为Hadoop各子项目提供各 种工具,如配置文件和日志操作等,其他Hadoop子项目都是在此基础上发展起来的。 Hadoop Distributed ...

    Hadoop企业优化常用的调优参数.docx

    Hadoop企业优化常用的调优参数,资源相关参数:(1)在用户自己的MR应用程序中配置就可以生效(mapred-default.xml)和(2)在YARN启动之前就配置在服务器的配置文件中才能生效(yarn-default.xml);容错相关参数...

    基于spark+drools+kafka+redis的大数据实时风控系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于spark+flume+kafka+hbase的实时日志处理分析系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于机器学习+Spark2.0+MongoDB实现的协同过滤推荐系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Spark+Flask+Mongodb的在线电影推荐系统设计与实现.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Django2.2+MySQL+spark的在线电影推荐系统设计与实现.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Spark+Scala+MongoDB的大数据实战,商品推荐系统设计与实现.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    spark课程设计作业:银行用户流式判断+垃圾邮件判断+电影推荐系统(三个spark实战项目).zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Spark Streaming+ALS的餐饮智能推荐系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于python+spark的电影智能推荐系统的设计与实现.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Spark+PageRank算法构建仿微博用户好友的分布式推荐系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统.zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于hbase + spark 实现常用推荐算法(主要用于精准广告投放和推荐系统).zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

    基于Spark+Hive实现用户画像分析系统(含价值度、忠诚度、流失预警、活跃度等分析模型).zip

    该资源真实可靠,代码都经测试过,能跑通。 快速:Apache Spark以内存计算为核心。 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算完整的生态圈。只要掌握Spark,就能够为大多数的企业的大数据...

Global site tag (gtag.js) - Google Analytics