[Parcels]( Parcels | 5.14.x | Cloudera Documentation )
[更新Cloudera版本]( Cloudera Enterprise Upgrade Guide | (5.x and 6.x) | Cloudera Documentation )
一、概述
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。
二、安装部署
2.0 安装centos7
使用root用户
00.配置网卡【 /etc/sysconfig/network-scripts/ifcfg-ens18】
## 将原有配置中【BOOTPROTO=dhcp】改为【BOOTPROTO=static】,【ONBOOT=no】改为【ONBOOT=yes】;此外,再添加以下配置
# server
IPADDR=172.20.3.81
NETMASK=255.255.255.0
GATEWAY=172.20.3.254
DNS1=8.8.8.8
#METRIC=104
# hadoop-1
IPADDR=172.20.3.82
NETMASK=255.255.255.0
GATEWAY=172.20.3.254
DNS1=8.8.8.8
#METRIC=104
# hadoop-2
IPADDR=172.20.3.83
NETMASK=255.255.255.0
GATEWAY=172.20.3.254
DNS1=8.8.8.8
#METRIC=104
检测网络
service network restart
service network status
ping -c 3 baidu.com
01.安装openssh-server, openssh-client,以便远程连接【所有主机】
yum install -y openssh-server openssh-client
02.使用Finalshell连接
2.1 基础环境配置
a.修改主机名配置hosts【所有主机】
#更改主机名,其他主机为 hadoop-1, hadoop-2,...
hostnamectl set-hostname cm-server
#临时关闭SELinux
setenforce 0
#查看状态
getenforce
#永久关闭(当前不生效,下次开机生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#添加各个节点hosts解析
cat >>/etc/hosts<<EOF
172.20.3.81 cm-server
172.20.3.82 hadoop-1
172.20.3.83 hadoop-2
EOF
#在生成密钥之前重启
reboot
#开机后检查主机名是否修改,并关闭防火墙【每次开机后都要记得关闭】
systemctl stop firewalld
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。
sed -i 's/要被取代的字串/新的字串/g' file
b.配置cm-server免密钥登录其他节点 【公钥加密,私钥解密】
ssh-keygen -t rsa #在cm-server生成密钥对
for num in `seq 1 2`;do ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop-$num;done
-i 指定公钥文件
c.配置各节点服务器需求 【所有主机】
#临时调整
sysctl -w vm.swappiness=10
#永久调整(当前不生效,下次开机生效)
echo "vm.swappiness=10" >>/etc/sysctl.conf
#临时禁用透明大页
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
内核参数【vm.swappiness】控制换出运行时内存的【相对权重】,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。
Centos7禁用THP(Transparent HugePages):
THP的目的是通过将页表项映射更大的内存,来减少 Page Fault,从而提升 TLB (快表)的命中率
当程序的访存【局部性】较好时,THP 将带来性能提升,反之 THP 的优势不仅丧失,还有可能化身为恶魔,引起系统的不稳定。遗憾的是【数据库】的负载访问特征通常是【离散的】。
#查看THP的启用状态 cat /sys/kernel/mm/transparent_hugepage/defrag 输出: [always] madvise never 表示THP启用了 always [madvise] never 表示THP禁用了 always madvise [never] 表示只在MADV_HUGEPAGE标志的VMA中使用THP(用户进程拥有用户空间的地址)
2.2 Java环境配置
使用oracle的jdk,此处使用jdk-8u271-linux-x64.tar.gz
【所有主机】
cat >/etc/profile.d/java.sh<<EOF
export JAVA_HOME=/usr/java/jdk1.8.0_271
export CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
source /etc/profile.d/java.sh
关于path和classpath的含义:
path变量的含义就是系统在任何路径下都可以识别java,javac命令
classpath 变量的含义是告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件
rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库
2.3 安装配置数据库
在cm-server上安装mariadb,用于后期数据存储,默认没有密码
yum install mariadb*
service mariadb start
# 默认不使用密码
mysql -uroot
# 设置密码
mysqladmin -uroot password mysqladmin
2.4 安装CM
a.下载解压Cloudera Manager软件包 【官网不可用,见压缩包文件】
mkdir /software && cd /software
wget -c https://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.14.1_x86_64.tar.gz
wget -c http://archive.cloudera.com/cdh5/parcels/5.14.2/CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel
wget -c http://archive.cloudera.com/cdh5/parcels/5.14.2/CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1 -O CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha
wget -c http://archive.cloudera.com/cdh5/parcels/5.14.2/manifest.json
wget -c https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.zip
tar -zxvf cloudera-manager-centos7-cm5.14.1_x86_64.tar.gz -C /opt/ #解压cm包
unzip mysql-connector-java-5.1.46.zip #解压java-mysql连接jar包
cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /opt/cm-5.14.1/share/cmf/lib/ #将jar包复制到指定目录下
2.5 配置CM数据库
a.创建用户及初始化数据库
【在所有节点均创建这个用户】
useradd --system --home=/opt/cm-5.14.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
指向cm-server
vim /opt/cm-5.14.1/etc/cloudera-scm-agent/config.ini 将其中的 server_host=cm-server
/opt/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql cmdb -h"cm-server" -uroot -pmysqladmin --scm-host cm-server scm scm scm
/opt/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh
[options] –scm-host 指定Cloudera Manager Server安装在的 hostname 可以不指定,在数据库和cms安装在同一个主机的情况下
SCM_HOST=, SCM_DATABASE=, SCM_USER=, SCM_PASSWORD=,
查看新增目录
b.将cm-server修改完成的文件分发到其他各节点
for i in `seq 1 2`;do scp -r /opt/cm-5.14.1 hadoop-$i:/opt/;done
c.创建本地源 【只在server节点】【parcel.sha1 名字要改为 parcel.sha】
mv CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel* manifest.json /opt/cloudera/parcel-repo/
<img src="https://cdn.jsdelivr.net/gh/HongdaChen/image-home@master/20210612/snipaste_20220414_125322.74m7d1pllvo0.webp" style="zoom:150%;" />
2.6 安装CDH
a.启动服务
在cm-server启动server和agent服务,在其他节点启动agent服务
/opt/cm-5.14.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.14.1/etc/init.d/cloudera-scm-agent start
安装服务时执行脚本需要这个工具:
yum -y install perl perl-devel
服务均启动后,可以浏览器访问cm-server的7180端口,用户名/密码为admin/admin
接受协议继续
可以选择适用60天
提示一些涉及许可证的信息
勾选管理的主机继续操作
受控主机不够时检查日志【/opt/cm-5.14.1/log/cloudera-scm-agent/cloudera-scm-agent.log 】
选择CDH-5.14版本
parcel安装
主机正确性检查
群集设置(选择安装的服务)
自定义角色分配,选择安装在哪个节点上
数据库设置
需要提前创建数据库及授权其他节点可以正常连接
审核更改
集群安装
完成安装
后期可添加服务
打赏作者
要注意的是每次开机时都要做两件事:systemctl start mariadb
systemctl stop firewalld
cm-server节点的内存和硬盘空间要大一些
如果 network无法连接,查看 systemctl status network 发现有报错 【Failed to start LSB: Bring up/down networking.】 可以关闭 NetworkManage服务,systemctl stop NetworkManager, systemctl disable NetworkManager.然后重启network,systemctl restart network。
server开机后执行:
systemctl stop firewalld
systemctl start mariadb
/opt/cm-5.14.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.14.1/etc/init.d/cloudera-scm-agent start
其他节点开机后执行:
systemctl stop firewalld
/opt/cm-5.14.1/etc/init.d/cloudera-scm-agent start
大数据的课程很好:
https://www.bilibili.com/video/BV1Kd4y1r7nQ?p=2&vd_source=455951196dbc0d60ee36c55da45adf4c