1.主机域名配置
#第一台服务器上执行
echo "172.31.xxx.xx ptx-bigdata1" >> /etc/hosts echo "172.31.xxx.xx ptx-bigdata6" >> /etc/hosts echo "172.31.xxx.xx ptx-bigdata7" >> /etc/hosts |
---|
#因为所有主机的 hosts 文件都一致,为了减少重复工作使用,scp 命令拷贝到所有主机
scp /etc/hosts root@主机ip:/etc/
前提:root账号配置了ssh免密登录.
#设置hostname
#分别进入集群中的每个主机,设置 hostname,需要注意的是 hostname 最好不好设置为大写,因为后续如果要开启 kerberos 的时候会报错!
hostnamectl set-hostname ptx-bigdata1
hostnamectl set-hostname ptx-bigdata2
hostnamectl set-hostname ptx-bigdata3
hostnamectl set-hostname ptx-bigdata4
hostnamectl set-hostname ptx-bigdata5
#在每台主机上输入 hostname 看输出的结果是否与主机相对应
Hostname
#重启服务器
2.SSH免密登录(ptxbd账号)
#执行ssh-keygen -t rsa,三次Enter键 [ptxbd@ptx-bigdata1 ~]$ ssh-keygen -t rsa [ptxbd@ptx-bigdata1 .ssh]$ ll -rw-------. 1 ptxbd ptxbd 1679 Feb 26 04:18 id_rsa -rw-r--r--. 1 ptxbd ptxbd 400 Feb 26 04:18 id_rsa.pub -rw-r--r--. 1 ptxbd ptxbd 358 Feb 26 03:24 known_hosts #拷贝公钥id_rsa.pub到其他节点 ssh-copy-id ptx-bigdata1 ssh-copy-id ptx-bigdata2 ssh-copy-id ptx-bigdata3 ssh-copy-id ptx-bigdata4 ssh-copy-id ptx-bigdata5 ssh-copy-id ptx-bigdata6 ssh-copy-id ptx-bigdata7 #验证 ssh ptx-bigdata2 ssh ptx-bigdata2 ssh ptx-bigdata3 ssh ptx-bigdata4 ssh ptx-bigdata5 ssh ptx-bigdata6 ssh ptx-bigdata7 |
---|
3.关闭防火墙和清空规则
#查看防火墙状态,注:active是绿的running表示防火墙开启 |
---|
4.关闭所有节点SELINUX
vi /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=disabled [ptxbd@ptx-bigdata1 ~]$ sudo vi /etc/selinux/config |
---|
5.安装JDK
JDK 最好安装 1.8 的,因为 CDH6.0 以后 JDK 版本最低为 1.8 rpm -qa|grep java rpm –e --nodeps xxxxxxxxx 2)新增的节点上创建/opt/software/cdh6.2.0目录 [ptxbd@ptx-bigdata7 ~]$ sudo mkdir -p /opt/software/cdh6.2.0 [ptxbd@ptx-bigdata7 opt]$ sudo chown -R ptxbd:ptxbd software 3)ptx-bigdata1分发jdk文件到新增节点 [ptxbd@ptx-bigdata1 cdh6.2.0]$ scp jdk-8u211-linux-x64.tar.gz ptxbd@ptx-bigdata6:/opt/software/cdh6.2.0/ 4)解压安装包 #每个节点都创建/usr/java目录 |
---|
*****提示:切记必须修正JDK所属用户及用户组 chown -R root:root /usr/java/jdk1.8.0_211
6.设置NTP
参考:企业大数据CDH管理平台搭建方案
7.CM Agent安装(官方rpm包)
Agent:
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
1)分发rpm文件到新增节点ptx-bigdata6,ptx-bigdata7
scp cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm ptxbd@ptx-bigdata6:/opt/software/cdh6.2.0/
scp cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm ptxbd@ptx-bigdata6:/opt/software/cdh6.2.0/
2)安装Agent
sudo rpm -ivh cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm --nodeps --force
3)配置Agent
sudo vi /etc/cloudera-scm-agent/config.ini
[General]
# Hostname of the CM
server_host=ptx-bigdata1
4)启动Agent
sudo service cloudera-scm-agent start
sudo service cloudera-scm-agent restart(重启)
5)查看Agent转态
sudo service cloudera-scm-agent status
8.配置Parcel
#配置本地源
1)新增的Agent节点
创建目录/opt/cloudera/parcels,执行:
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
2)重启Server/Agent
sudo service cloudera-scm-server restart
sudo service cloudera-scm-agent restart(重启)
*****重启cloudera-scm-server,出现了问题,定位了2个多小时,详见下面问题2
Specify Hosts
Install Parcels
检查主机正确性
***问题(3个问题)
问题1:减少集群使用交换内存
swappiness 设置值的区间在 0~100 之间,swap 即交换空间,作用类似于 Windows 中的虚拟内存,也就是当物理内存不足时,将硬盘上的 swap 分区当做内存来使用。但是,由于磁盘的读写速率与内存相比差太多,一旦发生大量交换,系统延迟就会增加,甚至会造成服务长期不可用,这对于大数据集群而言是致命的。vm.swappiness 参数用于控制内核对交换空间的使用积极性,默认是 60。值越高,就代表内核越多地使用交换空间。对于内存较大的 CDH 集群,我们一般将这个值设为 0 或 1。0 表示只有当可用物理内存小于最小阈值 vm.min_free_kbytes 时才使用交换空间,1 则表示最低限度地使用交换空间。
1、新增主机运行以下三条命令
sysctl -w vm.swappiness=0
echo 'vm.swappiness=0' >> /etc/sysctl.conf
sysctl -p
问题2:大页面
1、新增主机输入以下命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
2、新增主机的/etc/rc.local 中也需要加入这两条命令
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
问题3:暂时忽略
选择主机模板
创建主机模板(slave
选择主机模板
问题1:
重启cloudera-scm-server.service服务启动报错,UI界面无法访问。
原因分析:
从报错信息查看,是跟日志相关。由于前期由于磁盘不够用,手动删除了/var/log/下的所有日志文件,日志写入找不到目录,查看详细报错信息也无日志查找,只能看console中的日志。网上搜了一下同类问题,感觉到是我日志的问题。
解决方案:
在/var/log/目录下创建cloudera-scm-server目录,修改属主、属组为cloudera-scm
sudo mkdir /var/log/cloudera-scm-server
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server
再次启动Server,和Agent,生成了日志
访问UI,界面正常
问题2:升级完成后,执行shell脚本导入数据报错,相关驱动找不到
20/05/15 02:00:09 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
原因分析:新增节点没有加入需要连接mysql数据库的驱动包
解决方案:上传相关驱动包(MySQL驱动,ClickHouse驱动,NetSuite驱动)到新增节点ptx-bigdata6、ptx-bigdata7两台服务器
1)mysql驱动
sudo cp /opt/software/cdh6.2.0/mysql-connector-java-5.1.47-bin.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hadoop/lib/
sudo cp /opt/software/cdh6.2.0/mysql-connector-java-5.1.47-bin.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/sqoop/lib/
2)Clickhouse驱动
sudo cp /opt/software/cdh6.2.0/clickhouse-jdbc-0.2.4.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hadoop/lib/
sudo cp /opt/software/cdh6.2.0/clickhouse-jdbc-0.2.4.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/sqoop/lib/
3)NetSuite驱动
sudo cp /opt/software/cdh6.2.0/NQjc.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hadoop/lib/
sudo cp /opt/software/cdh6.2.0/NQjc.jar /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/sqoop/lib/