查看Linux系统:
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
2.1.1. 准备虚拟机(根据自己的系统资源分配虚拟机资源)
rpm -qa|grep vim
先安装vim
yum -y install vim*
2.1.2. 静态IP设置(每个节点)****--这个已经设置好
vim /etc/sysconfig/network-scripts/ifcfg-ens192
service network restart 重启网络生效
yum install -y net-tools ifconfig 查看设置
2.1.3. 编辑/etc/hosts文件(每个节点)
vim /etc/hosts
新增以下内容:
172.24.10.2 master.prd.yzf master
172.24.10.3 slave01.prd.yzf slave01
172.24.10.4 slave02.prd.yzf slave02
172.24.10.5 slave03.prd.yzf slave03
刷新: ****/etc/init.d/network restart
- 然后修改各个节点hostname,master: hostnamectl set-hostname master.prd.yzf (其他节点参考该命令)
2.1.4. 关闭防火墙、禁止防火墙开机自启(每个节点)
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁止防火墙开机自启
查看防火墙状态看是否关闭: firewall-cmd --state
查看防火墙自启是否禁用: systemctl list-unit-files | grep firewall
vim /etc/selinux/config —> SELINUX=disabled (修改)
2.1.5. ssh无密码登录
- 172.24.10.2 master.prd.yzf 节点执行 ssh-keygen -t rsa
一路回车到结束,在 /root/.ssh/ 下面会生成一个公钥文件 id_rsa.pub
可以直接类似 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.24.10.3
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 将公钥追加到 authorized_keys
3. chmod 600 ~/.ssh/authorized_keys 修改权限
4. 将 ~/.ssh 从当前节点分发到其他各个节点。如:scp -r ~/.ssh/ root@node1:~/.ssh/
5. ssh 各个节点互相登陆
无法scp情况下: 将每个节点的 cat ~/.ssh/id_rsa.pub 文件内容复制到同一个文件tmp中
在每个节点执行 vim ~/.ssh/authorized_keys ,然后将上面包含每个节点公钥的文件粘贴到这个文件中
保存退出。
ssh root@slave01.prd.yzf
2.1.6. 配置NTP服务(所有节点)
查看ntp服务是否启动:systemctl status ntpd
查看ntp服务开机自启是否启动: systemctl list-unit-files | grep ntpd
修改时区(改为中国标准时区)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime--此操作已经实现,无需再执行
安装ntp : yum -y install ntp
ntp主机配置 vim /etc/ntp.conf
manager节点
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.com
5.其余节点:server master 或者 server master.prd.yzf
重新启动 ntp 服务:service ntpd restart
Centos7
开启ntp服务: systemctl start ntpd
开机自启: systemctl enable ntpd
设置开机自启:systemctl enable ntpd.service
ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
ntpq -p #查看当前同步的时间服务器
ntpstat #查看状态
配置成功状态(服务开启后前面出现*说明成功):
2.1.7. 修改Linux swappiness参数(所有节点)****--此操作不一定需要
为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)
- 上述方法rhel6有效,rhel7.2中:tuned服务会动态调整系统参数
- 查找tuned中配置,直接修改配置
- cd /usr/lib/tuned/
- grep ‘vm.swappiness’ * -R 查询出后依次修改
修改完确认:
2.1.8. 禁用透明页(所有节点)
cat /sys/kernel/mm/transparent_hugepage/enabled
使用命令查看时,如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用、[madvise]表示(只在MADV_HUGEPAGE标志的VMA中使用THP)
临时解决办法如下:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.d/rc.local 添加上面命令
vim /etc/rc.d/rc.local
保存退出。
给与可执行权限:chmod +x /etc/rc.d/rc.local
2.1.9. JDK安装(所有节点)****--机器已经预装了,无需再安装
注意需要添加环境变量,/etc/profile好像没有添加
rpm -qa | grep java # 查询已安装的java
安装jdk:
上传 jdk-8u251-linux-x64.tar.gz 到/usr
创建目录:cd /usr ; mkdir java
解压:tar zxf jdk-8u251-linux-x64.tar.gz -C ./java
-
vi /etc/profile 末尾添加
export JAVA_HOME=/usr/java/jdk1.8.0_251
export CLASSPATH=.:JAVA_HOME/jre/lib
export PATH=JAVA_HOME/bin
source /etc/profile
java -version 验证
其余机器重复操作
2.1.10. 上传mysql的jar包并重命名 (所有节点
创建/usr/share/java目录,将mysql-jdbc包放过去
- mkdir -p /usr/share/java
- 将 mysql-connector-java-5.1.34.jar 上传到 /usr/share/java/ 目录下
- mysql-connector-java-5.1.34.jar 一定要命名为 mysql-connector-java.jar (可以创建软连接代替重命名)
然后 scp 到 其他 机器上 ,例如: scp mysql-connector-java.jar root@slave01:$PWD
2.1.11. 为保证防火墙、虚拟机参数修改后生效,各节点机器需要重启 reboot
2.1.12. Mysql安装 (manager节点)
- 卸载mariadb:rpm -qa|grep mariadb
- rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
可以直接使用:rpm -qa | grep mariadb | xargs rpm -e --nodeps
查看Centos自带mysql是否已经安装****:
yum list installed | grep mysql
查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)
yum list | grep mysql 或 sudo yum -y list mysql*
下载msql5.7 yum源
cd /usr/local/src
mkdir mysql
下载msql5.7 yum源
wget <u>https:</u><u>//dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm</u>
安装yum源
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum update --此步骤可省略试试
安装mysql
yum -y install mysql-server
- 重启MySQL:
systemctl restart mysqld.service
systemctl enable mysqld
- 查看默认密码
grep "password" /var/log/mysqld.log (后面会出现一个mql密码用以下面的登陆)
2020-03-03T07:46:23.905362Z 1 [Note] A temporary password is generated for root@localhost: ;=KMKf/jM0gT
mysql -uroot -p
初始密码为 ;=KMKf/jM0gT
- 进入命令行后,首先修改密码
密码策略问题异常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1)set global validate_password_policy=LOW;
2)set global validate_password_length=6; 默认是8
alter user 'root'@'localhost' identified by 'Root@123';
7.然后进行创建用户,授权等操作
grant all privileges on . to 'root'@'%' identified by 'Root@123' with grant option; -- 授权
flush privileges;
mysql查看所有用户
select user,host from mysql.user;
mysql -uroot -pRoot@123
建库语句:
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on scm.* to 'scm'@'%' identified by 'Root@123';
grant all on hive.* to 'hive'@'%' identified by 'Root@123';
grant all on amon.* to 'amon'@'%' identified by 'Root@123';
grant all on rman.* to 'rman'@'%' identified by 'Root@123';
grant all on hue.* to 'hue'@'%' identified by 'Root@123';
grant all on metastore.* to 'hive'@'%' identified by 'Root@123';
grant all on sentry.* to 'sentry'@'%' identified by 'Root@123';
grant all on nav.* to 'nav'@'%' identified by 'Root@123';
grant all on navms .* to navms @'%' identified by 'Root@123';
grant all on oozie.* to 'oozie'@'%' identified by 'Root@123';
flush privileges;
mysql -uscm -pRoot@123
2.1.13. 安装Httpd服务(manager)
- yum install httpd
- service httpd start
- systemctl enable httpd.service 设置httpd服务开机自启
2.1.14. 防止出现莫名错误,事先安装以下插件(所有节点)
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --skip-broken --nogpgcheck
-
安装上述插件时会报错,找不到软件包:(马继斌:实践没有执行该命令也可)
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile- base: ftp.sjtu.edu.cn
- extras: mirrors.aliyun.com
- updates: mirrors.ustc.edu.cn
没有可用软件包 cloudera-manager-daemons。
没有可用软件包 cloudera-manager-agent。
没有可用软件包 cloudera-manager-server。
错误:无须任何处理
2.1.15. 配置Cloudera Manager包yum源(manager节点)
- mkdir -p /var/www/html/cloudera-repos/cm6/
- 将下载的cm包文件移到此目录下: /var/www/html/cloudera-repos/cm6/
- 包含这些文件:
- cd /var/www/html/cloudera-repos/cm6/
创建仓库: createrepo .
如无此命令: yum install createrepo 后再执行 createrepo .
成功后会出现:repodata文件夹
创建文件: vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=cloudera-manager
baseurl=http://master.prd.yzf/cloudera-repos/cm6/
enabled=1
gpgcheck=0
yum clean all ; yum makecache ;
浏览器访问:<u>http://172.24.10.2/cloudera-repos/cm6/</u>
看到下面页面说明yum源制作成功
2.1.16.导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)manager节点
rpm --import <u>https://archive.cloudera.com/cm6/6.</u><u>3</u><u>.1/redhat7/yum/RPM-GPG-KEY-cloudera</u>
<u>避免不可知问题,建议多重复几遍。</u>
(实践不导入也可以)
2.1.17. 安装 Cloudera Manager(manager节点)
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
安装完CM后/opt/ 下会出现cloudera目录:
将下载的cdh的parcel包上传到 /opt/parcels/下
包含:
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
manifest.json
将parcel包移动到指定位置
mv /opt/parcels/* /opt/cloudera/parcel-repo/
在/opt/cloudera/parcel-repo执行以下命令:
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
初始化数据库:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Root@123
成功后检查元数据库的字符集:
select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');
若现在查不到这三张表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安装完CDH后,再重复执行此步骤
如不是utf-8,执行以下语句修改
alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;
alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;
alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;
打开server服务:
service cloudera-scm-server start
静候几分钟,打开http://172.24.10.2:7180
初始密码:admin/admin
打开web页面安装cdh:
页面操作步骤参考:https://blog.csdn.net/u011026329/article/details/104442051
此处从搜索主机开始:
1、填写主机名自动点搜索
2、指定存储库
选择自定义存储库: 路径为上面配置的本地yum源地址 http://172.24.10.2/cloudera-repos/cm6/
3、如果我们之前的【配置本地Parcel存储库】步骤操作无误的话,这里会自动选择【使用Parcel】,并加载出CDH版本,确认无误后点击【继续】:
4、这一步骤我就不再勾选安装JDK了,因为我在环境准备部分已经安装过了。取消勾选,然后继续:
5、用于配置集群主机之间的SSH登录,填写root用户的密码,根据集群配置填写合适的【同时安装数量】值即可:
- 若不知道主机访问密码,可以选择 所有主机接受相同私钥 方式,输入master的私钥(文件路径: /root/.ssh/id_rsa),短语密码可以不写。需要注意的是,需要把master节点的公钥(/root/.ssh/id_rsa.pub)添加到自己的 /root/.ssh/authorized_keys 文件中,保证使用自己的私钥能登录自己(目的就是用master的私钥能ssh登录所有机器,包括master自己)。
6、一路继续
7、安装Parcels
这一步同样是自动安装,分配步骤的速度主要取决于网络环境,耐心等待即可:
8、****主机检查
等待检查完成即可:
9、点显示验证结果
修改配置:
临时修改:
sysctl vm.swappiness=10 ; cat /proc/sys/vm/swappiness
这里我们的修改已经生效,但是如果我们重启了系统,又会变成30.
永久修改:
在/etc/sysctl.conf 文件里添加如下参数: vm.swappiness=10
或者: echo 'vm.swappiness=10'>> /etc/sysctl.conf
10、重新运行
结果如上没问题
11、继续
安装CDH集群: 此处建议选择基础服务创建集群,创建后再逐个添加其他服务
如: 此处选择 zookeeper、 hdfs 、 yarn、hive、hue、oozie
12、也可以自定选择服务
选择数据库:
安装CDH等hive组件后,修改hive元数据的编码集,解决字段注释中文乱码问题。
select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');
若现在查不到这三张表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安装完CDH后,再重复执行此步骤
如不是utf-8,执行以下语句修改
alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;
alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;
alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;