资料下载网
首页 计算机 考试教辅
hadoop与hbase参数调优详解 pdf电子书免费下载,百度云
首页 > 计算机 > 计算机网络/服务器 > hadoop与hbase参数调优详解 pdf电子书免费下载,百度云

《hadoop与hbase参数调优详解》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1TDyNP2X8cuOHQkuefBMLKQ
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ad_123529_do_hadoopYhbaseCSDYXJ.zip

 


hadoop与hbase参数调优详解

作者:empty

出版社:empty

《hadoop与hbase参数调优详解》介绍

第一章Hadoop参数调优

Hadoop参数调优主要是core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml四个文件:core-site.xml为Hadoop的核心属性文件,参数为Hadoop的核心功能,独立于HDFS与MapReduce,其他三个文件皆为hadoop参数文件,hadoop-env.sh主要是完成各进程的内存划分以及部分环境设置,hdfs-site.xml主要是对HDFS的端口、目录、以及HDFS跟namenode的通信设置(小的集群一般不用考虑)等的设置,mapred-site.xml主要对map与red和JobTracker的设置。Hadoop有190多个参数但一般用到的不足一半,这里常用的一些参数设置作出调整:

一、hadoop-env.sh修改TaskTracker与+DataNode的内存分配

根据官方建议设置TaskTracker与+DataNode的内存大小由原来的1G设置为2G

[hadoop@MASmaster01 hadoop-config]$ vi hadoop-env.sh

# The maximum amount of heap to use, in MB. Default is 1000.

export HADOOP_HEAPSIZE=2048

二、core-site.xml

1、放大hadoop读写hdfs的缓存大小

hadoop读hdfs的文件和写hdfs的文件,还有map的输出都用到了这个缓冲区容量,对于现在的硬件很保守,可以设置为128k(131072)也不是越大越好设置过大会造成map跟red的溢出

[hadoop@MASmaster01 hadoop-config]$ vi core-site.xml

property>

name>io.file.buffer.size /name>

value>131027 /value>

/property>

2、开启hadoop的垃圾回收功能

默认情况下垃圾回收是关闭的,为了避免误删数据丢失,开启垃圾回收机制

这里保留一天

property>

name>fs.trash.interval /name>

value>1440 /value>

/property>

三、mapred-site.xml

1、map和red的进程数设置

对hadoop的参数修改主要是对map和red的进程数由原来默认的2分别设置为6 增加了运算速度

property>

name>mapred.tasktracker.map.tasks.maximum /name>

value>6 /value>

/property>

property>

name>mapred.tasktracker.reduce.tasks.maximum /name>

value>6 /value>

/property>

内存使用(map+reduce)Xmapred.child.java.opts+TaskTracker.mapred.child.java.opts

2、Tasks进程内存分配

mapred.child.java.opts

默认值200m

启动task管理的子进程时的内存设置(默认为-Xmx200m偏小)这跟4中的map与red的个数这是也有关系这里设置为512m

property>

name>mapred.child.java.opts /name>

value>-Xmx512m /value>

/property>

3、MapTask

当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存 buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个buffer默认是100MB大小,但是这个大小是可以根据job提交时的参数设定来调整的,该参数即为:io.sort.mb。当map的产生数据非常大时,并且把io.sort.mb调大,那么map在整个计算过程中spill的次数就势必会降低,map task对磁盘的操作就会变少,如果map tasks的瓶颈在磁盘上,这样调整就会大大提高map的计算性能

property>

name>io.sort.mb /name>

value>300 /value>

/property>

io.sort.factor。该参数默认为10。它表示当merge spill文件时,最多能有多少并行的stream向merge文件中写入。比如如果map产生的数据非常的大,产生的spill文件大于10,而 io.sort.factor使用的是默认的10,那么当map计算完成做merge时,就没有办法一次将所有的spill文件merge成一个,而是会分多次,每次最多10个stream。这也就是说,当map的中间结果非常大,调大io.sort.factor,有利于减少merge次数,进而减少 map对磁盘的读写频率,有可能达到优化作业的目的。

property>

name>io.sort.factor /name>

value>25 /value>

/property>

4、ReduceTask

reduce的运行是分成三个阶段的。分别为copy->sort->reduce。由于job的每一个map都会根据 reduce(n)数将数据分成map 输出结果分成n个partition,所以map的中间结果中是有可能包含每一个reduce需要处理的部分数据的。所以,为了优化reduce的执行时间,hadoop中是等job的第一个map结束后,所有的reduce就开始尝试从完成的map中下载该reduce对应的partition部分数据。这个过程就是通常所说的shuffle,也就是copy过程。Reduce task在做shuffle时,实际上就是从不同的已经完成的map上去下载属于自己这个reduce的部分数据,由于map通常有许多个,所以对一个reduce来说,下载也可以是并行的从多个map下载,这个并行度是可以调整的,调整参数为:mapred.reduce.parallel.copies(default 5)。默认情况下,每个只会有5个并行的下载线程在从map下数据,如果一个时间段内job完成的map有100个或者更多,那么reduce也最多只能同时下载5个map的数据,所以这个参数比较适合map很多并且完成的比较快的job的情况下调大

property>

name>mapred.reduce.parallel.copies /name>

value>20 /value>

/property>

四、Hdfs-site.xml设置

1、datanode

datanode上用于处理RPC的线程数。默认为3根据集群大小可适当增加线程

property>

name>dfs.datanode.handler.count /name>

value>20 /value>

/property>

2、namenod

namenode用于处理RPC的线程数。默认为3根据集群大小可适当增加线程

name>dfs.namenode.handler.count /name>

value>20 /value>

/property>

3、block.size

因为元数据空间是有限的这里为了减少namenode元数据存储空间现将数据块大小设置为128M

property>

name>dfs.block.size /name>

value>134217728 /value>

/property>

第二章Hbase优化

Hbase参数调整主要对hbase-env.sh、hbase-site.xml两个文件配置,前一个文件主要是环境设置,hbase-site.xml包含regionservers和zookeeper的参数设置,这里也只对部分参数调整

一、hbase-env.sh

hbase对于内存有特别的嗜好,在硬件允许的情况下配足够多的内存给它,这里将其设置为4G

[hadoop@MASmaster01 hbase-config]$ vi hbase-env.sh

# The maximum amount of heap to use, in MB. Default is 1000.

export HBASE_HEAPSIZE=4096

二、hbase-site.xml

为了便于管理zookeeper需要将其文件长时间保存默认是/tmp内现指定为/home/hadoop/hbase

property>

name>hbase.tmp.dir /name>

value>/home/hadoop/hbase /value>

/property>

1、读/写控制

hfile.block.cache.size该值根据实际读写使用情况调整目前为0.2主要是根据数据库的用途设置

2、增大RPC数量

增大RPC数量通过修改 hbase.regionserver.handler.count属性,可以适当的放大。默认值为10有点小

property>

name>hbase.regionserver.handler.count /name>

value>30 /value>

/property>

第三章待测

一、在JVM中加入CRC32 Intrinsic加速CRC校验(最大速度15G/S)

二、平均算法调度

结果

由于虚拟机不定时迁移性能有些不稳定,目前马鞍山环境测试速度比公司实体机稍快点点

[hadoop@MASmaster01hbase-config]$hbase org.apache.hadoop.hbase.PerformanceEvaluation sequentialWrite 1

12/10/31 18:30:04 INFO hbase.PerformanceEvaluation: Finished class org.apache.hadoop.hbase.PerformanceEvaluation$SequentialWriteTest in 115386ms at offset 0 for 1048576 rows(61环境)

12/10/31 11:33:09 INFO hbase.PerformanceEvaluation: Finished class org.apache.hadoop.hbase.PerformanceEvaluation$SequentialWriteTest in 76328ms at offset 0 for 1048576 rows(马鞍山环境)


《hadoop与hbase参数调优详解》目录

empty

empty

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5