CDH集群部署最佳实践

  • 时间:
  • 浏览:0
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

有如果你正准备从0开始英语 搭建一套CDH集群应用于生产环境,非要 此时还要做的事情应该是 结合当前的数据、业务、硬件、节点、服务等对集群做合理的规划,而完正都是马上动手去安装软件。

IPv6打开的状态下怎么关闭:

子集群各司其职,根据自身业务最大化利用硬件资源,互相独立互不影响。部署较为复杂,运维难度增加。

fi

安装操作系统时取舍了中文语言,使用时发现帕累托图中文会有乱码的状态,外理方案如下:

firewall

| 数量 | CPU | 内存 | 硬盘 |

| --- | --- | --- | --- |

| 8 | 10 | 64G | 3.3T |

mapreduce.map.output.compresstruemapred.map.output.compress.codecorg.apache.hadoop.io.compress.SnappyCodec

安装python3.6

能才能从以下有几个维度进行评估:

yarn application -kill $1

Centos7.5默认开启IPv6,CM组件明确说明不支持系统的IPv6功能,IPv6开启状态下有如果会老出不可预料的错误,还要提前关闭。

systemctl start cloudera-scm-server

sudo -u hdfs hadoop balancer -threshold 10 -policy datanode

脚本操作说明见:CDH集群自动化部署工具 。

kill -9 pid

创建MySQL数据目录(非默认盘):

ntp.conf配置文件内容如下:

数据现状

专用型集群根据业务与应用场景能才能划分如下:

示例集群主要任务管理器分布如下:

硬件资源现状

安装脚本有如果执行 配置SSH免密登录、安装软件、操作系统优化、Java等开发环境初始化、MySQL安装、CM服务安装、操作系统性能测试等过程。

安装python所需依赖包:

drop database scm;

drop database amon;

drop database rman;

drop database hue;

drop database metastore;

drop database sentry;

drop database nav;

drop database navms;

drop database oozie;

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -D test.build.data=/tmp/benchmark -write -nrFiles 100 -fileSize 100

使用iperf测试主机之间的网络传输时延。

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

在超过100个节点的集群中,不须将所有服务的数据库放入 有一个多多多节点中,有如果该节点的数据库压力会很大。最好能为每个服务配置不同发生不同节点上的数据库。

关闭防火墙:

随机读

设置mysql账号密码

安装后续还要用到的系统软件,以备如果服务器无外网无法下载的状态。

本位示例主机列表:

spark-submit \

--conf spark.dynamicAllocation.enabled=false \

--name $name \

--master yarn \

--deploy-mode $deploy \

--queue root.prd \

--driver-memory $memDriv \

--num-executors $numExec \

--executor-memory $memExec \

--executor-cores $coreExec \

--class $class \

--jars /home/dw_prd/jars/mysql-connector-java-5.1.35.jar \

--conf spark.executor.extraClassPath=/opt/cloudera/parcels/CDH/lib/hbase/lib/* \

--conf spark.driver.extraClassPath=/opt/cloudera/parcels/CDH/lib/hbase/lib/* $jar $params

fi

umount /dev/sdb1

集群主节点与子节点独立部署(HDFS/HBase/Yarn),且人个子节点部署在相同主机上

以上步骤完成如果才是动手进行安装与部署。

mapreduce.output.fileoutputformat.compresstruemapreduce.output.fileoutputformat.compress.codecorg.apache.hadoop.io.compress.SnappyCodecio.compression.codecsorg.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.DeflateCodec,org.apache.hadoop.io.compress.SnappyCodec,org.apache.hadoop.io.compress.Lz4Codec

sudo -u hdfs hbase pe sequentialWrite 1

sudo -u hdfs hbase pe sequentialRead 1

sudo -u hdfs hbase pe randomWrite 1

sudo -u hdfs hbase pe randomRead 1

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=10000 sequentialRead 10

19/04/11 09:12:07 INFO hbase.PerformanceEvaluation: [SequentialReadTest] Min: 100383ms Max: 52429ms Avg: 51691ms

有如果有如果混合型集群集群承载了所有功能,职能繁多,网络时延、磁盘IO等为集群共享,会因大型离线任务占用多量网络或磁盘IO峰值,对线上业务会造成短暂延迟。

params=""

if [ $# -gt 8 ]

then

Centos7自带python2.7,Centos6自带python2.6还要升级。

Scala安装

blkid /dev/sdb | awk -F '"' '{printf "UUID=%s /opt %s defaults 0 2n",$2,$4}' >> /etc/fstab

cat /etc/fstab | grep opt

if [ $# -lt 1 ]

then

fuser -mv /mnt/

mapreduce.output.fileoutputformat.compress=已启用

mapreduce.output.fileoutputformat.compress.type=BLOCK

mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec

mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec

mapreduce.map.output.compress=已启用

zlib.compress.level=DEFAULT_COMPRESSION

下载mysql安装包。

hadoop fs -mkdir /ec_xor

hdfs ec -getPolicy -path /ec_xor

hdfs ec -enablePolicy -policy XOR-2-1-1024k

hdfs ec -setPolicy -path /ec_xor -policy XOR-2-1-1024k

hdfs ec -getPolicy -path /ec_xor

hdfs ec -setPolicy -path /ec_xor -policy RS-10-4-1024k

hdfs ec -enablePolicy -policy RS-6-3-1024k

hdfs ec -setPolicy -path /ec_xor -policy RS-6-3-1024k

ll

vi ec_test.txt

hadoop fs -put ec_test.txt /ec_xor

hdfs ec -setPolicy -path /ec_xor_s -policy XOR-2-1-1024k

hdfs ec -setPolicy -path /ec_xor_m -policy XOR-2-1-1024k

hdfs ec -setPolicy -path /ec_xor_l -policy XOR-2-1-1024k

ll

hadoop fs -put mysql-connector-java-8.0.12-1.el7.noarch.rpm /ec_xor

hadoop fs -put mysql-connector-java-8.0.12-1.el7.noarch.rpm /ec_xor_s

hadoop fs -put mysql-connector-java-8.0.12-1.el7.noarch.rpm /ec_xor_m

hadoop fs -put mysql-connector-java-8.0.12-1.el7.noarch.rpm /ec_xor_l

hadoop fs -put Downloads.zip /ec_xor_s

hadoop fs -put /ec_xor_s

hadoop fs -put Downloads.zip /ec_xor_l

hdfs fsck /ec_xor_s -files -blocks -locations

rz -E

hadoop fs -rmr /ec_xor_s/

hadoop fs -mkdir /ec_xor_s/

hdfs ec -setPolicy -path /ec_xor_s -policy XOR-2-1-1024k

hadoop fs -ls /ec_xor_m/D

hadoop fs -ls /ec_xor_m/

hadoop fs -rm -r /ec_xor_m/Downloads.zip

hadoop fs -rm -r /ec_xor_l/mysql-connector-java-8.0.12-1.el7.noarch.rpm

ll

hadoop fs -put MTracer.zip /ec_xor_s

hdfs fsck /ec_xor_s -files -blocks -locations

hdfs fsck /ec_xor_m -files -blocks -locations

hdfs fsck /ec_xor_l -files -blocks -locations

hdfs ec -getPolicy -path /tmp

hdfs ec -getPolicy -path /

hdfs ec -getPolicy -path /ec_xor

hadoop fs -ls /

hadoop fs -ls /user

hdfs ec -setPolicy -path /user/zhangsan

hdfs ec -getPolicy -path /user/zhangsan

hdfs ec -getPolicy -path /user/yarn

hdfs ec -getPolicy -path /user/zhangsan -policy XOR-2-1-1024k

hdfs ec -setPolicy -path /user/zhangsan -policy XOR-2-1-102

hdfs ec -getPolicy -path /user/yarn

hdfs ec -getPolicy -path /user/zhangsan

hadoop fs -ls /user/zhangsan

hadoop fs -ls /ec_xor_l

hadoop fs -du -h /ec_xor_l

在大型集群中Activity Monitor 与 Service Monitor 使用的数据库应该分配不同的磁盘卷来进行读写。

PYSPARK_PYTHON=/usr/bin/python3.6

从 这里 下载rpm离线安装包,所需文件及软件列表如下(以6.1版本为例):

hue_safety_value.ini

[impala]

server_host=

server_port=

umount /dev/sdb1

进入mysql并创建数据库:

顺序读

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=10000 --presplit=100 randomWrite 10

19/04/11 09:09:59 INFO hbase.PerformanceEvaluation: [RandomWriteTest] Min: 20766ms Max: 21968ms Avg: 21383ms

fdisk -l

mkdir /mnt/ukey

有如果集群节点超过100个,将mysql的max_allowed_packet值设置为16M。

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=10000 randomRead 10

19/04/11 09:13:46 INFO hbase.PerformanceEvaluation: [RandomReadTest] Min: 73645ms Max: 74517ms Avg: 741100ms

安装完毕后配置修改 /etc/ansible/hosts 对还要管理的主机进行配置,默认配置还要修改编辑 /etc/ansible/ansible.cfg

mount -t ntfs-3g /dev/sdb1 /mnt/ukey

修改mysql配置文件内容

查看IPv6启用状态能才能通过以下几种依据:

查看selinux状态:

配置环境变量

在各个主机上操作:

未来数据量预估

配置内网NTP-Server(管理节点)。

pyspark \

--master yarn \

--queue root.moxing \

--driver-memory 1G \

--executor-memory 4G \

--executor-cores 1 \

--num-executors 10 \

--conf spark.dynamicAllocation.enabled=false

ansible all -a "rm -Rf /var/lib/cloudera /var/log/cloudera /var/run/cloudera /etc/cloudera /tmp/.scm_prepare_node.lock"

yarn.nodemanager.resource.memory-mb:每台主机能不才能被Yarn使用的内存大小

yarn.app.mapreduce.am.resource.cpu-vcores:每台主机能不才能被Yarn使用的CPU核心数

yarn.scheduler.minimum-allocation-mb:Container最小申请的内存大小

yarn.scheduler.maximum-allocation-mb:Container最大可申请的内存大小

if [ $# -lt 1 ]

then

For MySQL 5.6 and 5.7, you must install the MySQL-shared-compat or MySQL-shared package. This is required for the Cloudera Manager Agent package installation.

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -D test.build.data=/tmp/benchmark -clean

JDK下载地址:Cloudera Archive CM, 根据对应的cm版本取舍下载。

fi

ansible all -m copy -a "src=/tmp/cm/cloudera-manager.repo dest=/etc/yum.repos.d"

ansible all -m shell -a "yum clean all && yum makecache"

HBase提供实时读写服务的生产环境下建议将HBase集群独立部署为数据服务集群,参考:HBase最佳实践 - 「集群部署」小节。

spark-shell \

--master yarn \

--deploy-mode client \

--queue root.moxing \

--driver-memory 1G \

--executor-memory 5G \

--num-executors 10 \

--executor-cores 1 \

--conf spark.port.maxRetries=100 \

--conf spark.yarn.executor.memoryOverhead=5120 \

--conf spark.dynamicAllocation.enabled=false \

--conf spark.hbase.host=cdh2-1,cdh2-2,cdh2-3,cdh2-4,cdh2-5 \

--conf spark.hbase.config=/etc/hbase/conf/hbase-site.xml \

--conf spark.executor.extraClassPath=/opt/cloudera/parcels/CDH/lib/hbase/lib/* \

--conf spark.driver.extraClassPath=/opt/cloudera/parcels/CDH/lib/hbase/lib/*

cat /etc/cloudera-scm-server/db.properties

顺序写

Hive、Hue、Impala、Sentry等服务/元数据服务还要部署在同一主机

cd /opt/cloudera/parcel-repo && sha1sum CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel | awk '{ print $1 }' > CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha

下载地址:Scala

beeline --hiveconf mapreduce.job.queuename=xy_yarn_pool.production -u 'jdbc:hive2://172.20.15.12:1000/xy_app_hive' -n xy_app_hive -p dj@hy#fdabc9 -f $1 --hivevar fo_tab=credit_mining.fo_payment_encrypt --hivevar fi_tab=credit_mining.fi_gw_express_order_idcard1_encrypt --hivevar yanka_tab=xy_ods.t_serve_business_order_real_time_encrypt --hivevar laundering_4_1_tab=xy_app_hive.member_user_newest_status_d_incr --hivevar laundering_4_2_tab=xy_app_spark.prd_member_lending_data_4_d_incr_v2 --hivevar laundering_5_1_tab=xy_app_hive.member_user_newest_status_5_d_incr --hivevar laundering_5_2_tab=xy_app_spark.prd_member_lending_data_5_d_incr_v2

从登录主机上一键复制到一些主机:

随机写

使用fio工具对io进行各个场景的读写性能测试。

硬件规划决定集群将使用有几个硬件资源,以及那此配置的硬件资源。

混合随机读写

注意事项:

卸载已有mariadb数据库。

并有能力才能提供 集群建设目标

指由有一个多多多统一的大集群提供所有大数据服务,所有组件集中安放入 同有一个多多多集群中,有部署简单、运维方便、易于使用等优点。

还要开放的端口可参考 官网说明,有如果非要确保开放所有所需端口,则还要关闭防火墙。

ansible all -m shell -a "yum localinstall cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm"

服务器硬件状态如下:

todo:

进行节点角色划分时尽有如果遵守以下原则:

mysql5.7以上强制密码策略不满足能才能通过以下依据修改:

yarn logs -applicationId $1 | grep '^ batb|Exception' --color

工作负载

安装mysql驱动

局域网组织组织结构安全状态下最好关闭防火墙,有如果CM管理组件和CDH组件有多量的端口进行通讯,还要配置全都防火墙策略。

有如果服务器硬盘已插入还未挂载则还要先载入硬盘:

附:NTP内网服务器搭建

Zookeeper尽量使用四个节点,且条件允许下最好在不同的物理主机上

host示例配置如下:

安装ansible批量管理主机:

默认国外的yum源下载时延缓慢,替换为国内阿里云的yum源。

io.compression.codecs=org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.DeflateCodec,org.apache.hadoop.io.compress.SnappyCodec,org.apache.hadoop.io.compress.Lz4Codec

fi

mkfs.xfs /dev/sdb

mount /dev/sdb /opt

umount /dev/sdb

本次过程不启用auto-ssl。

ansible all -a "systemctl start cloudera-scm-agent"

iptables

修改为关闭状态:

合理的集群规划应该做到以下几点:

/opt/cloudera/cm/schema/scm_prepare_database.sh -h cdh2-3 mysql scm scm

操作系统安装初始,有如果无法ping通组织组织结构服务,则检查 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,确认 ONBOOT 的值有如果为no还要修改为yes(Centos7.5虚拟机安装初始默认为no),有如果网络无法连通。

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -D test.build.data=/tmp/benchmark -read -nrFiles 100 -fileSize 100

创建免密root权限用户

第三帕累托图将完正描述集群手动安装过程,与自动安装达成的效果一致,如已通过自动脚本完成CM服务安装可直接前往第四帕累托图CDH部署。

hadoop.http.staticuser.useryarn

你有如果对集群的架构模式、应用方向与业务场景了然于胸,并确保什儿 集群(有如果是集群组)才能提供稳定、高效、高性能的服务,为业务保驾护航。

if [ $# -lt 7 ]

then

spark.pyspark.python

还要有root权限的用户(root有如果sudo权限)设置免密登录。

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=10000 --presplit=100 sequentialWrite 10

19/04/11 09:08:19 INFO hbase.PerformanceEvaluation: [SequentialWriteTest] Min: 14083ms Max: 14549ms Avg: 14270ms

专用型集群指根据不同的需求与功能职责对集群进行划分,由多个职责不同、硬件隔离的集群组成集群组环境提供服务。

性能需求

ansible使用配置参考 Ansible官网。

ansible all -a "yum -y remove cloudera-manager-*"

ansible all -a "umount /var/run/cloudera-scm-agent/process"

设置集群机器主机名,并加入人个hosts文件中:

使用自动化脚本工具进行安装操作:

num.partitions=8

且集群环境较为复杂,有较多对线上业务造成影响的风险。

mkdir -p /opt/cloudera/parcel-repo

mv /tmp/cm/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel /opt/cloudera/parcel-repo

mv /tmp/cm/manifest.json /opt/cloudera/parcel-repo

count 'TestTable', {INTERVAL => 10000, CACHE => 10000}

手动检查各个主机上的网络设置,有如果有问提则修改配置:

修改pip源

上传并安装

以下操作均为Centos7.5操作系统上进行。

启动mysql服务

Java安装

fdisk -l

不还要使用专门的数据库服务器,有如果每个服务的数据库应该分散在不同的节点上。

等等。

等待图片cloudera-scm-server任务管理器起来后,在浏览器输入 ip:71100 进入CM管理界面部署CDH组件。

硬件取舍

name=$1

deploy=$2

memDriv=$3

numExec=$4

coreExec=$5

memExec=$6

class=$6

jar=$7

lsblk -d -o name,rota

spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8

spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8

spark.hadoop.mapred.output.compress=true

spark.hadoop.mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec

spark.hadoop.mapred.output.compression.type=BLOCK

备份文件logfile文件