CDH集群部署最佳实践

  • 时间:
  • 浏览:1
  • 来源:UU快3直播官网

操作系统安装初始,可能无法ping通内部内部结构服务,则检查 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,确认 ONBOOT 的值可能为no只能修改为yes(Centos7.5虚拟机安装初始默认为no),但是网络无法连通。

if [ $# -lt 1 ]

then

if [ $# -lt 1 ]

then

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

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

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

还才能 从以下十几块 维度进行评估:

服务器硬件请况如下:

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

硬件规划决定集群将使用十几块 硬件资源,以及那些配置的硬件资源。

firewall

设置mysql账号密码

本位示例主机列表:

安装mysql驱动

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.

Java安装

备份文件logfile文件

spark.pyspark.python

从登录主机上克隆到这俩 主机:

iptables

安装操作系统时选着了中文语言,使用时发现累积中文会有乱码的请况,处理方案如下:

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

params=""

if [ $# -gt 8 ]

then

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

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

fdisk -l

mkdir /mnt/ukey

本次过程不启用auto-ssl。

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

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

安装ansible批量管理主机:

只能开放的端口可参考 官网说明,可还才能 确保开放所有所需端口,则只能关闭防火墙。

可能服务器硬盘已插入还未挂载则只能先载入硬盘:

host示例配置如下:

卸载已有mariadb数据库。

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=60 000 --presplit=60 sequentialWrite 10

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

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

fdisk -l

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

可能你正准备从0现在结束了搭建一套CDH集群应用于生产环境,只能 此时只能做的事情应该是 结合当前的数据、业务、硬件、节点、服务等对集群做合理的规划,而都在马上动手去安装软件。

mkfs.xfs /dev/sdb

mount /dev/sdb /opt

umount /dev/sdb

附:NTP内网服务器搭建

安装python3.6

启动mysql服务

随机读

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

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

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

修改mysql配置文件内容

umount /dev/sdb1

使用iperf测试主机之间的网络传输传输强度。

顺序读

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

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

只能有root权限的用户(root可能sudo权限)设置免密登录。

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

hue_safety_value.ini

[impala]

server_host=

server_port=

todo:

硬件资源现状

PYSPARK_PYTHON=/usr/bin/python3.6

name=$1

deploy=$2

memDriv=$3

numExec=$4

coreExec=$5

memExec=$6

class=$6

jar=$7

hbase org.apache.hadoop.hbase.PerformanceEvaluation --nomapred --rows=60 000 --presplit=60 randomWrite 10

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

fuser -mv /mnt/

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

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

手动检查各个主机上的网络设置,可能有难题图片则修改配置:

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

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

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

fi

进入mysql并创建数据库:

未来数据量预估

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

安装后续只能用到的系统软件,以备但是服务器无外网无法下载的请况。

Centos7.5默认开启IPv6,CM组件明确说明不支持系统的IPv6功能,IPv6开启请况下可能会再次出现不可预料的错误,只能提前关闭。

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"

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

上传并安装

hadoop.http.staticuser.useryarn

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

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

systemctl start cloudera-scm-server

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

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=60 0 \

--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/*

umount /dev/sdb1

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

ansible使用配置参考 Ansible官网。

数据现状

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

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

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

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

num.partitions=8

注意事项:

关闭防火墙:

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

fi

beeline --hiveconf mapreduce.job.queuename=xy_yarn_pool.production -u 'jdbc:hive2://172.20.15.12:60 00/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

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

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

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

| 8 | 10 | 64G | 3.3T |

修改pip源

查看selinux请况:

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

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

lsblk -d -o name,rota

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

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最大可申请的内存大小

kill -9 pid

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

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

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

Centos7自带python2.7,Centos6自带python2.6只能升级。

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

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;

可能集群节点超过60 0个,将mysql的max_allowed_packet值设置为16M。

等等。

在超过60 个节点的集群中,并非将所有服务的数据库装进 一个多节点中,但是该节点的数据库压力会很大。最好能为每个服务配置不同趋于稳定不同节点上的数据库。

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

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

配置环境变量

pyspark \

--master yarn \

--queue root.moxing \

--driver-memory 1G \

--executor-memory 4G \

--executor-cores 1 \

--num-executors 10 \

--conf spark.dynamicAllocation.enabled=false

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

if [ $# -lt 7 ]

then

修改为关闭请况:

IPv6打开的请况下怎么才能 才能 关闭:

创建免密root权限用户

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

查看IPv6启用请况还才能 通过以下几种方法:

硬件选着

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

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"

工作负载

不只能使用专门的数据库服务器,但是每个服务的数据库应该分散在不同的节点上。

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

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

cat /etc/fstab | grep opt

yarn application -kill $1

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

混合随机读写

fi

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

下载mysql安装包。

性能需求

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

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

顺序写

进行节点角色划分时尽可能遵守以下原则:

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

count 'TestTable', {INTERVAL => 60 000, CACHE => 60 000}

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

安装python所需依赖包:

下载地址:Scala

在各个主机上操作:

局域网内部内部结构安全请况下最好关闭防火墙,可能CM管理组件和CDH组件有极少量的端口进行通讯,只能配置所以防火墙策略。

Scala安装

随机写

默认国外的yum源下载传输强度缓慢,替换为国内阿里云的yum源。

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

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

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

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

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