CDH6.2.0集群的下载及安装
1、vmware esxi上克隆虚拟机
1、克隆虚拟机前先关闭虚拟机电源。
2、在左边导航栏 ,存储 项目里 点击 数据存储浏览器 。
3、上边可以看到相关的以虚拟机命名的一些目录,目录下的文件夹名一般是虚拟机名称,创建虚拟机时按虚拟机名称创建了同名文件夹。
4、点击上方“创建目录”按钮,输入文件夹名,建议和想要新建的虚拟机名称一致,便于维护。
5.然后进入需要复制的虚拟机目录(就是刚刚我们关机了的那台机器),将后将缀名为.vmx(虚拟机)和.vmdk(虚拟磁盘)的文件进行点击右键后复制。其实你把 .nvram .vmxf 都可以复制过去,除了.log 选择新虚拟机目录,点击右键后进行粘贴。
6.粘贴完成之后,右键点击. vmx(虚拟机)文件,再点击“注册虚拟机”。
7.成功之后会多出一个Server14的虚拟机(它不会自己修改虚拟机名称的),重命名输入新的虚拟机名称Server15,建议与虚拟机文件夹名称一致,便于维护。
8.首次运行虚拟机时,ESXi会询问虚拟机文件的来源,这时候我们选择“我已复制”,这样ESXi就会自动修改虚拟机中的唯一标识,最重要的就是网卡的MAC地址,这是避免冲突的最好办法。
2、CDH6.2.0集群的安装
CDH6.2.0的下载地址:
链接:https://pan.baidu/s/14iizI6PjJSjbGCvkcsV-3g
提取码:apdc
一、环境准备
1、准备三台linux的服务器(centos7.8)
对应的ip和主机名(每台内存为16g)
192.168.100.15 | server15.zdys | server15 |
---|---|---|
192.168.100.16 | server16.zdys | server16 |
192.168.100.17 | server17.zdys | server17 |
2、对应的软件准备
对应的软件准备(jdk,mysql,cdh 等对应版本,服务器常用工具)
Jdk1.8u181
Mysql5.7
Cdh6.2
3、常用工具
#所有节点安装常用工具
yum install sudo
#1.安装 vim 编辑器
yum install -y vim
#2.安装 lrzsz 文件传输工具
yum -y install lrzsz
#3.安装 wget 文件下载工具
yum -y install wget
#4.安装 netstat,查看端口监听状况: netstat -ntlp | grep 端口号
yum -y install net-tools
#5.下载 unzip 解压工具,解压命令: uzip 压缩包.zip -d 解压目录
yum install -y unzip zip
二、 环境初始化
1. 修改主机名和ip
# 修改主机名
vim /etc/hostname
server15
# 修改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens192
IPADDR="192.168.100.15"
#重启网卡服务
systemctl restart network
2.关闭防火墙和SELINUX
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机自启
systemctl disable firewalld
vi /etc/selinux/config —> SELINUX=disabled (修改)
3.免密登录
所有节点上执行
#到 root 目录下:
cd /root
#执行生成密钥命令:
ssh-keygen -t rsa
#然后三个回车
#然后复制公钥追加到第一台节点的公钥文件中:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@server16
#选择 yes
#输入登录第一台节点的密码(操作完成该节点公钥复制到第一台节点中)
#依次操作复制到其他几台的节点上
ssh-copy-id -i /root/.ssh/id_rsa.pub root@server17
4.设置时间同步
#先查看服务器是否安装 ntpd 服务(啥都没显示的话说明没有安装)
rpm -qa | grep ntpd
#安装 NTP 服务
yum install ntp 或者 yum –y install ntp
#启动 ntpd 的服务
service ntpd start
#设置 ntpd 的服务开机启动
systemctl enable ntpd.service
#查看 ntpd 的服务是否启动
service ntpd status
#设置定时任务
#与阿里云服务器进行时钟同步
crontab -e
#设置的内容如下(其中 ip 为你需要和该 ip 的时间同步为准)
*/1 * * * * /usr/sbin/ntpdate -u ip;
#然后 date 查看时间是否一致
设置成功后会一直出现`You have new mail in /var/spool/mail/root`的邮件提示,可使用下面命
令关闭邮件提示
echo "unset MAILCHECK" >> /etc/profile
source /etc/profile
5.修改Linux swappiness参数(所有节点)
swap即交换空间,作用类似于Windows中的虚拟内存,也就是当物理内存不足时,将硬盘上的swap分区当做内存来使用。但是,由于磁盘的读写速率与内存相比差太多,一旦发生大量交换,系统延迟就会增加,甚至会造成服务长期不可用,这对于大数据集群而言是致命的。
vm.swappiness参数用于控制内核对交换空间的使用积极性,默认是60。值越高,就代表内核越多地使用交换空间。
对于内存较大的CDH集群,我们一般将这个值设为0或1。0表示只有当可用物理内存小于最小阈值vm.min_free_kbytes(后面会提到)时才使用交换空间,1则表示最低限度地使用交换空间。
为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0。
设置方法:
echo 0 > /proc/sys/vm/swappiness
# 这样操作重启机器还是还原
# 修改配置文件,开机自动设置参数
vi /etc/sysctl.conf
在最后添加
vm.swappiness=0
上述方法rhel6有效,在rhel7.2中: tuned服务会动态调整系统参数
查找tuned中配置,直接修改
[root@server15 ~]# cd /usr/lib/tuned
[root@server15 tuned]# grep "vm.swappiness" * -R
latency-performance/tuned.conf:vm.swappiness=10
throughput-performance/tuned.conf:vm.swappiness=10
virtual-guest/tuned.conf:vm.swappiness = 30
修改完确认:
[root@server15 tuned]# grep "vm.swappiness" * -R
latency-performance/tuned.conf:vm.swappiness=0
throughput-performance/tuned.conf:vm.swappiness=0
virtual-guest/tuned.conf:vm.swappiness = 0
6.禁用透明页(所有节点)
大页面(Huge Page)是内存分页管理的一种实现方式。计算机内存是通过表映射(页表)的方式进行内存寻址,目前系统内存以4KB为一个页,作为内存寻址的最小单元。随着内存不断增大,页表的大小将会不断增大。一台256G内存的机器,如果使用4KB小页,仅页表大小就要4G左右。页表是必须装在内存的,而且是在CPU内存,太大就会发生大量miss,内存寻址性能就会下降。
Huge Page就是为了解决这个问题,它使用2MB的大页代替传统小页来管理内存,这样页表大小就可以控制的很小,进而全部装在CPU内存,防止出现miss。它有两种实现方式,一是静态大页面(Static Huge Pages,SHP),二是透明大页面(Transparent Huge Pages,THP)。从它们的名字就可以看出,SHP是静态的,而THP是动态的。由于THP是在运行期做分配和管理,因此会有一定程度的延迟,对于内存密集型的应用十分不利,必须关闭它。
# 永久生效,在/etc/rc.local 添加如下命令:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 给与可执行权限
chmod +x /etc/rc.d/rc.local
7.安装jdk
安装过程略。。。
java -version验证
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
创建/usr/share/java目录,将mysql-jdbc包放过去(所有节点)
mkdir -p /usr/share/java
#上传jar包
[root@server15 java]# ll
total 984
-rw-r--r-- 1 root root 1006904 Nov 10 13:58 mysql-connector-java-5.1.49.jar
# 重新命名、一定要命名为mysql-connector-java.jar
mv mysql-connector-java-5.1.49.jar mysql-connector-java.jar
为保证防火墙、虚拟机参数修改后生效,重启各节点
8.主节点安装配置mysql(离线安装)
卸载原生的mariadb
[root@server15 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
mariadb-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
解压mysql
[root@server15 mysql]# ll
total 518440
-rw-r--r-- 1 root root 530882560 Sep 13 17:32 mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# 解压mysql安装包
tar -xf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
rpm方式安装
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
# 如果安装过程中报缺依赖的错误,可按如下方式安装所缺依赖
yum install net-tools
yum install perl
MySQL的配置如下:
# 初始化mysql使mysql目录的拥有者为mysql用户
mysqld --initialize --user=mysql
cat /var/log/mysqld.log # 最后一行将会有随机生成的密码
[Note] A temporary password is generated for root@localhost: W5fomFnA:KEr
systemctl start mysqld.service # 设置mysql服务自启
mysql -uroot -p
# 如果不能登陆
systemctl restart mysqld
#登录并修改mysql的管理者密码
mysql>set password = PASSWORD('zd3@2021');
# 开启root用户远程登录权限
mysql> grant all privileges on *.* to 'root'@'%' identified by 'zd3@2021' with grant option;
mysql> flush privileges;
创建库(后续安装服务等使用)
create database cmserver default charset utf8 collate utf8_general_ci; grant all on cmserver.* to 'root'@'%' identified by 'zd3@2021';
#给hive
create database metastore default charset utf8 collate utf8_general_ci;
grant all on metastore.* to 'root'@'%' identified by 'zd3@2021';
# 给CM的activity mornitor
create database amon default charset utf8 collate utf8_general_ci; grant all on amon.* to 'root'@'%' identified by 'zd3@2021';
# 给CM的Reports Manager
create database rman default charset utf8 collate utf8_general_ci; grant all on rman.* to 'root'@'%' identified by 'zd3@2021';
# oozie
create database oozie default charset utf8 collate utf8_general_ci; grant all on oozie.* to 'root'@'%' identified by 'zd3@2021';
# hue
create database hue default charset utf8 collate utf8_general_ci; grant all on hue.* to 'root'@'%' identified by 'zd3@2021';
9.安装Httpd服务(server15节点)
yum install httpd
systemctl start httpd
systemctl enable httpd.service #设置httpd服务开机自启
注:这里出现了问题,记录一下
[root@server15 mysql]# systemctl start httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
首先 systemctl status httpd 查看下状态:
[root@server15 mysql]# systemctl status httpd
â— httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2021-11-10 14:54:57 CST; 52s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 1976 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 1976 (code=exited, status=1/FAILURE)
Nov 10 14:54:57 server15 systemd[1]: Starting The Apache HTTP Server...
Nov 10 14:54:57 server15 httpd[1976]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Nov 10 14:54:57 server15 httpd[1976]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Nov 10 14:54:57 server15 httpd[1976]: no listening sockets available, shutting down
Nov 10 14:54:57 server15 httpd[1976]: AH00015: Unable to open logs
Nov 10 14:54:57 server15 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Nov 10 14:54:57 server15 systemd[1]: Failed to start The Apache HTTP Server.
Nov 10 14:54:57 server15 systemd[1]: Unit httpd.service entered failed state.
Nov 10 14:54:57 server15 systemd[1]: httpd.service failed.
可以看出 80 端口被占用:
[root@server15 mysql]# netstat -antlp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1248/nginx: master
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 1248/nginx: master
tcp6 0 0 :::80 :::* LISTEN 1248/nginx: master
原来是 nginx 占用了端口,修改即可。
vim /etc/nginx/nginx.conf
(
)]
/usr/sbin/nginx -s reload # 重新启动
三、CDH的安装
1.配置Cloudera Manager包yum源(server15节点)
mkdir -p /var/www/html/cm6
cd /var/www/html/cloudera-repos/cm6
# 上传文件
[root@server15 cm6]# ll
total 1368752
-rw-r--r-- 1 root root 14041 Sep 13 15:09 allkeys.asc
-rw-r--r-- 1 root root 10215488 Sep 13 15:09 cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 1187380436 Sep 14 14:06 cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 9984 Sep 13 14:48 cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 10992 Sep 13 14:48 cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 4763392 Sep 13 14:48 docker-engine-1.7.1-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 14200108 Sep 13 14:52 enterprise-debuginfo-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 184988341 Sep 13 16:31 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
-rw-r--r-- 1 root root 1718 Sep 13 14:30 RPM-GPG-KEY-cloudera
# 创建repodata
createrepo .
# 如果没有createrepo命令,则yum install createrepo
创建后的结果如下:
[root@server15 cm6]# ll
total 1368756
-rw-r--r-- 1 root root 14041 Sep 13 15:09 allkeys.asc
-rw-r--r-- 1 root root 10215488 Sep 13 15:09 cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 1187380436 Sep 14 14:06 cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 9984 Sep 13 14:48 cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 10992 Sep 13 14:48 cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 4763392 Sep 13 14:48 docker-engine-1.7.1-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 14200108 Sep 13 14:52 enterprise-debuginfo-6.2.0-968826.el7.x86_64.rpm
-rw-r--r-- 1 root root 184988341 Sep 13 16:31 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
drwxr-xr-x 2 root root 4096 Nov 10 15:22 repodata
-rw-r--r-- 1 root root 1718 Sep 13 14:30 RPM-GPG-KEY-cloudera
2.生成本地源repo配置
vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version
baseurl = http://server15/cm6/
gpgcheck = 1
enabled = 1
yum clean all
yum makecache
验证:
在浏览器输入:
http://192.168.100.15/cm6/
(
)]
将该yum源scp到其他主机
scp /etc/yum.repos.d/cloudera-manager.repo root@server16:/etc/yum.repos.d/
scp /etc/yum.repos.d/cloudera-manager.repo root@server17:/etc/yum.repos.d/
3.导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)(server15节点)
rpm --import http://server15/cm6/RPM-GPG-KEY-cloudera
4.安装 Cloudera Manager(server15节点)
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
安装完CM后/opt/ 下会出现cloudera目录
# 创建/opt/cloudera/parcel-repo目录上传parcels中的文件
[root@server15 parcel-repo]# ll
total 2038856
-rw-r--r-- 1 root root 2087665645 Sep 14 14:32 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
-rw-r--r-- 1 root root 41 Nov 11 00:49 CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
-rw-r--r-- 1 root root 33725 Sep 13 14:29 manifest.json
在/opt/cloudera/parcel-repo执行以下命令:
[root@server15 parcel-repo]# sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk '{ print $1 }' > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
初始化脚本
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root zd3@2021
打开server服务
systemctl start cloudera-scm-server.service
注:此时遇见了一个问题,没有启动
cloudera-scm-server.service failed.
通过命令journalctl -xe发现了一些端倪,提示JAVA_HOME找不到,但是我明明已经安装过了jdk怎么还会找不到呢,之后在一个脚本文件中找到了些答案,他会去使用/usr/java下的jdk,所以解决办法执行以下两条命令即可(所有节点上执行):
mkdir -p /usr/java
ln -s /home/programs/jdk1.8/ /usr/java/default
其中jdk1.8是我的安装目录,改成自己的
静候几分钟,打开http://server15:7180
admin/admin
5、页面操作及其安装其他服务
版本选择为免费版的
集群名称
输入ip地址,搜索,当出现可安装的主机时候,点击继续
自定义存储库
已经安装了jdk,无需安装,直接下一步
输入root密码点击继续
等待安装
agent安装完成
开始安装大数据组件
选择要添加的服务
角色分配,管理节点安装datanode等
设置各组件的数据库,点击测试
审核默认即可(需要添加kafka集群信息),然后集群启动成功,安装完成
更多推荐
CDH6.2.0集群的下载及安装(亲测)
发布评论