CDH各组件的配置及优化

Oozie-Hue 的配置

Oozie 安装好之后,启动web界面会看到如下图:

cdh 高级配置 Java cdh中修改配置文件在哪_hive

下载Ext Js 依赖:http://archive.cloudera.com/gplextras/misc/

wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
unzip ext-2.2.zip
cp -r ext-2.2 /var/lib/oozie/
cd /var/lib/oozie/
chown -R oozie:oozie ext-2.2/

重新刷新页面,即可。

在Hue中编辑 Workflow
  • Hue 配置
  • 将time_zone 的值修改为:Asia/Shanghai
  • 确定webhdfs_url配置中的服务为 NameNode 的活动结点
  • Oozie配置:
    在oozie-site.xml中配置如下:
<property> 
    <name>oozie.processing.timezone</name>
    <value>GMT+0800</value>
</property>

cdh 高级配置 Java cdh中修改配置文件在哪_sed_02

重新部署客户端,进入Hue Web UI 编辑即可,如图:

cdh 高级配置 Java cdh中修改配置文件在哪_sed_03

Hue集成各个查询引擎

修改配置文件 hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)

[beeswax]
download_row_limit=10000000

[notebook]
[[interpreters]]
[[[presto]]]
   name = Presto
   interface=sqlalchemy
   options='{"url": "presto://ip:8085/hive/default"}'
[[[impala]]]
name=Impala
server_host=
server_port=21050
[[[hive]]]
  name=Hive
  hive_server_host=
  hive_server_port=10000
  hive_conf_dir=/etc/hive/conf

cdh 高级配置 Java cdh中修改配置文件在哪_sed_04

邮件服务配置

cdh 高级配置 Java cdh中修改配置文件在哪_cdh 高级配置 Java_05

Kafka 的配置

1、将 advertised.host.name 参数在每个节点上修改为该节点的IP

cdh 高级配置 Java cdh中修改配置文件在哪_hive_06

2、参数调节

Kafka

num.partitions

6

默认partition的数量

Kafka

default.replication.factor

3

副本数

Kafka

min.insync.replicas

2

当 producer 设定 acks 为 all(-1)时,每次至少写入两个副本才算写入成功。

Kafka

auto.create.topics.enable

true

是否会自动创建topic

Kafka

delete.topic.enable

true

是否允许删除topic

ZooKeeper
#最大客户端连接数
maxClientCnxns	80
#可存储在 znode 中的数据的最大字节大小。
jute.maxbuffer	32
Yarn 的配置
Nodemanager:
#每个节点最大使用的vcore数,可以适当放大(一般以2倍去放大,提高CPU的使用率)
yarn.nodemanager.resource.cpu-vcores:64
#调整每台物理机器可以被调度的内存资源
yarn.nodemanager.resource.memory-mb
#物理内存和虚拟内存的比例,任务每使用1MB物理内存,最多可使用虚拟内存量,默认为 2.1
yarn.nodemanager.vmem-pmem-ratio=50
#是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true
yarn.nodemanager.pmem-check-enabled
#是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true
yarn.nodemanager.vmem-check-enabled

ResourceManager:(yarn-site.xml 中设置 container)
#最小可申请内存量, 默认1024,如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数
yarn.scheduler.minimum-allocation-mb:1024
#单个 container 最大可申请内存量, 默认是 8069(不能超过物理机的最大内存)
yarn.scheduler.maximum-allocation-mb: 8069
#最小可申请CPU数, 默认是 1
yarn.scheduler.minimum-allocation-vcores: 1
#单个container最大可申请CPU数(也是tm最大可设置的slot,和物理机核数保持一致即可)
yarn.scheduler.maximum-allocation-vcores: 

ApplicationMaster:
#分配给 Map Container的内存大小,运行时按需指定
mapreduce.map.memory.mb=2048
#分配给 Reduce Container的内存大小,运行时按需指定
mapreduce.reduce.memory.mb=4096
#单个任务可申请的最小虚拟CPU个数, 默认是1
yarn.scheduler.minimum-allocation-vcores
#单个任务可申请的最多虚拟CPU个数(不能超过物理机的最大CPU个数)
yarn.scheduler.maximum-allocation-vcores

flink提交的任务时,yarn分配的container集中于相同节点上,没有均衡分配

#将该参数的值设置为 fauls即可
yarn.scheduler.fair.assignmultiple
Hive 的配置

HiveServer 2 和 Hive Metastore 的配置

javax.jdo.option.ConnectionURL的配置

#javax.jdo.option.ConnectionURL
jdbc:mysql://pre-master:3306/hive?useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false
Impala 的配置
1、impala 集群参数调优:
default_pool_max_requests 已将其设置为 500(单池最大运行查询数,若超过500,Impala 则拒绝查询)
mem_limit  已将其设置为 30G (Impala Daemon 内存限制,若超过此范围 Impala 将抛出内存不足异常)
#指定取消空闲查询的时间(以秒为单位),一个查询在被取消之前可能处于空闲状态的时间(即没有完成任何处理工作,也没有从客户端收到更新)。如果为0,则空闲查询永远不会过期。
idle_query_timeout
#一个会话在被Impala关闭(并且所有正在运行的查询都被取消)之前可能处于空闲状态的时间。如果为0,则空闲会话永远不会过期。
idle_session_timeout

#服务客户端请求的可用线程数 default=64
fe_service_threads
#(Advanced) Number of threads available to start fragments on remote Impala daemons.  default=12
coordinator_rpc_threads 
#Number of remote HDFS I/O threads	 default=8
num_remote_hdfs_io_threads 
#时区的设置   应为 true    默认 false
use_local_tz_for_unix_timestamp_conversions
2、Impala 自动检测Hive元数据

1、在hive中的配置 hive-site.xml

cdh 高级配置 Java cdh中修改配置文件在哪_物理内存_07

cdh 高级配置 Java cdh中修改配置文件在哪_cdh 高级配置 Java_08

<property>
	<name>hive.metastore.dml.events</name>
	<value>true</value>
	<final>true</final>
<description>Configure HMS for Event Based Automatic Metadata Sync</description>
</property>
<property>
	<name>hive.metastore.notifications.add.thrift.objects</name>
	<value>true</value>
	<final>true</final>
	<description>Configure HMS for Event Based Automatic Metadata Sync</description>
</property>
<property>
	<name>hive.metastore.alter.notifications.basic</name>
	<value>false</value>
	<final>true</final><description>Configure HMS for Event Based Automatic Metadata Sync</description>
</property>


<property>
	<name>hive.metastore.dml.events</name>
	<value>true</value>
	<final>true</final>
	<description>Configure HMS for Event Based Automatic Metadata Sync</description>
</property>

2、impala 配置Catalog Server 命令行参数高级配置代码段(安全阀)

cdh 高级配置 Java cdh中修改配置文件在哪_cloudera_09

--hms_event_polling_interval_s =2
KUDU的配置
1、参数调节
Configuring Tablet Servers

Flag

Valid Options

Default

Description

–block_cache_capacity_mb

integer

512

分配给Kudu Tablet服务器块缓存的最大内存量。(虽然较高的值有助于提高读写性能,但是不要将 block_cache_capacity_mb 提高到内存压力阈值以上,因为这将导致即使写吞吐量很低,Kudu也会频繁刷新,建议将block_cache_capacity_mb保持在内存压力阈值的50%以下)

–memory_limit_hard_bytes

integer

4294967296

在开始拒绝所有输入的写之前,Tablet Server 可以消耗的最大内存量。(根据机器内存去调整,如果主机有更多的内存可供Kudu使用,那么建议设置大一点。根据系统总内存自动调整大小的值为0,值-1禁用所有内存限制,单位:bytes)

–maintenance_manager_num_threads

int32

1

维护管理器线程池的大小。对于旋转磁盘,线程数不应超过设备数。(通常,建议的维护管理器线程与数据目录的比例为1:3)

–default_num_replicas

int32

3

每个tablet的默认副本数

–rpc_service_queue_length=80

int32

50

传入RPC请求的默认队列长度

2、其他优化

其他优化见 kudu 优化篇