`
genius_bai
  • 浏览: 81683 次
  • 性别: 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

 

 

 

 

 

 

分享到:
评论

相关推荐

    MongoDB分片集群搭建教程:副本集创建与数据分片

    内容概要:本文提供了详细的MongoDB分片集群的搭建指导,涵盖了从环境准备、配置文件编写、副本集的建立、主节点的选择、配置服务器和数据分片服务器的配置到最后的路由节点的搭建与操作整个流程,以及对数据库的哈希与范围两种分片策略的应用介绍和具体命令执行。 适合人群:熟悉NoSQL数据库概念并对MongoDB有一定了解的技术人员,尤其是在大型数据管理和分布式数据库架构设计中有需求的开发者。 使用场景及目标:帮助技术人员掌握构建高效能、高可用性的MongoDB分片集群的方法,适用于处理大规模、实时性强的数据存储与读取场景。 其他说明:文中通过实例演示了每个步骤的具体操作方法,便于跟随文档实操,同时也介绍了可能遇到的问题及其解决方案,如在没有正确配置的情况下试图写入数据时出现错误等情况的处理。

    CPPC++_嵌入式硬件的物联网解决方案blinker库与Arduino ESP8266 ESP32一起工作.zip

    CPPC++_嵌入式硬件的物联网解决方案blinker库与Arduino ESP8266 ESP32一起工作

    CPPC++_逆向调用QQ Mojo IPC与WeChat XPlugin.zip

    CPPC++_逆向调用QQ Mojo IPC与WeChat XPlugin

    CPPC++_现代活动指标.zip

    CPPC++_现代活动指标

    CPPC++_Xournal是一款手写笔记软件,支持PDF注释,使用C语言编写,支持GTK3,支持Linux,如Ubu.zip

    CPPC++_Xournal是一款手写笔记软件,支持PDF注释,使用C语言编写,支持GTK3,支持Linux,如Ubu

    基于SSM学生实习管理系统前台小程序与后台管理系统开发实践

    资源概述: 本资源提供了一套完整的学生实习管理系统解决方案,涵盖了前台小程序页面与后台管理系统两大模块。前台小程序页面设计简洁直观,用户可根据不同身份(学生或企业)进行登录。学生用户能够方便地浏览并投递感兴趣的实习岗位,而企业用户则能轻松发布实习信息,吸引优秀人才。后台管理系统功能全面,包括个人中心、首页、学生管理、教师管理、企业管理、招聘管理、评分管理以及实习管理等多个方面,为管理员提供了强大的数据管理和操作工具。 技术栈亮点: SSM框架:系统后台采用Spring、Spring MVC和MyBatis Plus(简称SSM)作为核心开发框架,确保了系统的稳定性、可扩展性和可维护性。Spring作为控制反转(IoC)和面向切面编程(AOP)的容器,为系统提供了强大的业务逻辑处理能力;Spring MVC则负责处理Web请求和响应,实现了前后端的分离;MyBatis Plus作为持久层框架,简化了数据库操作,提高了开发效率。 MySQL数据库:系统采用MySQL作为数据库存储解决方案,支持大数据量的存储和高效查询。 如有侵权请联系我删除,谢谢

    微服务闪聚支付项目.zip

    微服务闪聚支付项目

    Rust 与 Java 互调实战示例

    博客链接 https://blog.csdn.net/weixin_47560078/article/details/143714557 文章从原理介绍出发,实现了 Rust 与 Java 的互调。利用 JNI 技术,可以充分发挥 Rust 的性能优势,同时保持 Java 的跨平台特性。这种技术组合适用于对性能要求较高的应用场景,如图像处理、数据分析和系统级编程等。

    CPPC++_这是我翻译的艾根中文文档.zip

    cppc++

    Matlab实现斑马优化算法ZOA-TCN-Multihead-Attention多输入单输出回归预测算法研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    Matlab实现雪融优化算法SAO-TCN-Multihead-Attention多输入单输出回归预测算法研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    分布式事务lcn.zip

    分布式事务lcn

    基于Simulink的正弦波PWM技术和三次谐波注入PWM技术研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    【风电功率预测】基于BiTCN的风电功率多变量输入预测研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    CPPC++_这是由一块迷你带OV2640双DRV8833驱动TypeC接口PSRAM的ESP32PicoD4开发板驱.zip

    cppc++

    JAVA安卓手机与电脑的socket通信源码数据库 其他源码类型 WinForm

    安卓手机与电脑的socket通信源码

    Anaconda:JupyterNotebook使用教程.docx

    Anaconda:JupyterNotebook使用教程.docx

    Amazon S3:S3静态网站托管教程.docx

    Amazon S3:S3静态网站托管教程.docx

    Python商品销售数据分析可视化项目源码(期末大作业).zip

    Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。 Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析

    CPPC++_wechathookWeChatApi微信Api微信hook微信接口python微信接口java微信Ap.zip

    CPPC++_wechathookWeChatApi微信Api微信hook微信接口python微信接口java微信Ap

Global site tag (gtag.js) - Google Analytics