`
genius_bai
  • 浏览: 81694 次
  • 性别: 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+hbase+zookeeper集群配置流程及文件

    Hadoop2.8.4版本引入了YARN(Yet Another Resource Negotiator),优化了资源管理,增强了系统的稳定性和可扩展性。配置Hadoop集群主要包括以下几个步骤: 1. 安装Java环境:Hadoop依赖Java运行,确保所有节点上都...

    hadoop2.8.1+hadoop+winutils编译包

    Hadoop 2.8.1是Hadoop发展的一个重要里程碑,相比早期版本,它包含了许多性能优化和功能增强。例如,YARN(Yet Another Resource Negotiator)在2.8.1中作为资源管理系统,负责集群中的任务调度和资源分配,显著提高...

    hadoop2.7.1+zk3.5+hbase2.1+phoenix 安装部署环境打包

    Hadoop-2.7.1是这个版本的Hadoop,包含了核心模块、HDFS、MapReduce以及YARN(Yet Another Resource Negotiator),YARN是Hadoop的资源管理器,负责集群资源的调度和分配。 ZooKeeper是另一个Apache项目,它是一个...

    hadoop2.7.3+hive1.2.1+spark2.0.1性能测试

    ### Hadoop 2.7.3 + Hive 1.2.1 + Spark 2.0.1 性能测试知识点 #### 一、环境搭建与配置 **1.1 主机环境配置** - **修改主机名称:** - 通过编辑`/etc/sysconfig/network`文件来更改主机名,确保其符合实际需求...

    大数据Hadoop+HBase+Spark+Hive集群搭建教程(七月在线)1

    - 配置`spark-env.sh`,指定Hadoop相关路径和YARN资源管理器。 - **Spark启动**: - 初始化Spark集群,包括启动Spark Master和Worker节点。 4. **Hive**:Hive是一个基于Hadoop的数据仓库工具,可以将结构化的...

    Hadoop实战+源代码

    8. **性能优化**:针对Hadoop的性能优化是另一个重要话题,包括调整Hadoop配置参数、数据本地化、减少网络传输等方法,以提高处理效率。 9. **案例研究**:实战部分可能包含不同行业的Hadoop应用案例,如互联网日志...

    hadoop2.7.3+mahout0.9问题集

    这可能涉及到Hadoop的资源配置,如YARN的内存限制、槽位数量等。调整这些参数可以优化性能和稳定性。 6. **算法实现**:Mahout提供了多种机器学习算法,如协同过滤、聚类和分类等。在选择和应用算法时,理解每种...

    hadoop HA+federation

    【Hadoop HA + Federation】是Hadoop 2.0架构中的关键特性,旨在解决Hadoop 1.0中单点故障和性能瓶颈的问题。在Hadoop 1.0中,NameNode作为HDFS的核心组件,负责存储所有元数据,这导致了单一命名空间的局限性和资源...

    hadoop集群+CDH集群8个核心配置文件

    这些配置文件的正确设置对于优化Hadoop和CDH集群的性能、可靠性和安全性至关重要。每个集群都有其特定的需求,因此需要根据实际情况调整这些参数。同时,理解这些配置文件的内涵可以帮助管理员更好地管理和维护...

    Hadoop3.0 + JDK1.8.1+Hadoop-win运行包2.6.0--3.0.0

    1. **YARN增强**:YARN(Yet Another Resource Negotiator)作为Hadoop的资源管理系统,在3.0中进行了优化,提高了调度效率和资源利用率,支持更复杂的作业类型和跨集群调度。 2. **存储优化**:HDFS(Hadoop ...

    hadoop3.0+工具

    - **YARN(Yet Another Resource Negotiator)**:作为Hadoop的资源管理系统,负责调度计算任务和管理集群资源,为MapReduce等计算框架提供服务。 2. **Hadoop 3.0新特性**: - **多NameNode支持(HA)**:提高了...

    Hadoop实战+教程.pdf

    4. **性能调优**:Hadoop的性能受到多种因素的影响,包括硬件配置、网络带宽、数据块大小、MapReduce作业参数等。通过合理的参数调整和优化策略,可以显著提升Hadoop集群的处理速度和效率。 ### Hadoop生态系统扩展...

    基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统+本科毕业设计+源码+数据库.zip

    根据压缩包内的文件名称"ok_x",我们可以推测项目可能包括了前端Vue项目的资源文件、后端SpringBoot的源码、数据库脚本以及其他配置文件。前端部分可能包含了Vue组件、路由、样式文件等,后端部分可能包含SpringBoot...

    hadoop2.7.1+hbase2.1.4+zookeeper3.6.2.rar

    Hadoop 2.7.1是其一个稳定版本,它引入了YARN(Yet Another Resource Negotiator),这是一个资源管理器,将原本Hadoop中的JobTracker功能拆分为Resource Manager和Application Master,提升了集群的资源利用率和可...

    hadoop2.7+spark3.2.1+pyspark3.2.1+python3.9

    YARN将原本Hadoop MapReduce的职责一分为二:资源管理和任务调度交给YARN,具体计算逻辑则由独立的计算框架(如Spark)负责,这样提高了系统的灵活性和利用率。 接下来,Spark 3.2.1是Spark的稳定版本,它提供了...

    hadoop 2.4.1+mahout0.9环境搭建

    8. **分布式环境考虑**:由于Hadoop和Mahout都是设计用于分布式环境的,因此在搭建环境中需要考虑集群配置、数据分布、网络通信等因素,以确保系统稳定性和性能。 9. **性能优化**:在实际运行中,我们还需要关注...

    HADOOP+HBASE+HIVE整合工程和文档

    6. **监控与优化**:整合工程中需要监控Hadoop、HBase和Hive的性能,通过Ambari等工具进行资源调度、故障排查和性能调优。 在实际应用中,还会遇到如数据安全、容错机制、备份恢复、性能优化等挑战。对于开发者来说...

    Hadoop集群+Zookeeper+HBase环境搭建

    - **yarn-site.xml**: 配置YARN的相关参数,如资源管理器地址等。 上述配置文件的修改是根据集群的具体需求进行的,需要根据实际情况调整参数值。例如,在core-site.xml中设置文件系统的默认名称为`hdfs://master:...

    安装笔记:hadoop+hbase+sqoop2+phoenix+kerberos

    【标题】:“安装笔记:hadoop+hbase+sqoop2+phoenix+kerberos” 【描述】:在本文中,我们将探讨如何在两台云主机(实际环境可能需要三台或更多)上安装...每个组件的选择和配置都需要根据实际需求和性能优化来考虑。

    hadoop2.7+hbase1.0+hive1.2+zookeeper3.4.6

    在探讨Hadoop2.7.1、HBase1.0、Hive1.2以及ZooKeeper3.4.6的安装和配置时,我们首先需要了解这些组件的基本功能以及它们在整个大数据处理框架中所扮演的角色。以下对这些知识点进行详细说明: ### Hadoop2.7.1 ...

Global site tag (gtag.js) - Google Analytics