CDH各组件的配置及优化
Oozie-Hue 的配置
Oozie 安装好之后,启动web界面会看到如下图:
下载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>
重新部署客户端,进入Hue Web UI 编辑即可,如图:
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
邮件服务配置
Kafka 的配置
1、将 advertised.host.name 参数在每个节点上修改为该节点的IP
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
<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 命令行参数高级配置代码段(安全阀)
--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 优化篇