本地CDH的安装
此次安装我使用的centos镜像版本为centos7,因为自身电脑配置原因我搭建了一台主机和一台子机。
一.网络的配置以及一些小工具的安装
1 配置网络:采用Nat方式联网。
2 vim /etc/sysconfig/network-scripts/ifcfg-ens33
在文件中加入以下内容
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.195.11
NETMASK=255.255.255.0
GATEWAY=192.168.195.2
DNS1=202.196.32.1
3.开启网卡:ifup ens33
4.尝试测试:ping www.baidu.com
5.修改yum源:
因为国外的yum源速度太慢,在这里我换成了清华的yum源,
清华源地址:https://mirrors.tuna.tsinghua.edu.cn/
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS- Base.repo.backup
访问:https://mirrors.ustc.edu.cn/help/centos.html
把centos7版本的内容粘贴进去。
接下来用yum安装一些小工具
vi /etc/yum.repos.d/CentOS-Base.repo
yum makecache(用时较长)
yum install wget
yum install vim
yum install openssh-clients
二.配置JDK
1.执行以下操作
cd /usr
mkdir java
rz (将JDK包传到该目录下)
tar -zxvf jdk
vim /etc/profile
最后添加环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这里有时rz上传较慢,这里我采用scpy命令从另一台虚拟机上将jdk拷贝过来
2.执行命令
source /etc/profile
3.执行命令
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)
三.克隆
在关机状态下克隆,并配置网络
(克隆机器)
1.将UUID删除,修改IP地址,加入mac地址HWADDR=(为真的mac地址)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
2.修改主机名,每台主机都要做
vim /etc/hostname
3.vim /etc/hosts(修改hosts文件,主机修改就行,下面是我的内容)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.195.11 cdh1
192.168.195.12 cdh2
4.执行命令
scp /etc/hosts root@cdh2:/etc/(将修改后的hosts文件传到另外一台机器上,传送过程需要输入密码)
systemctl stop firewalld
systemctl disable firewalld(关闭防火墙)
5.重启机器。然后保证主机之间互ping 主机名,互ping ip能够ping通。(在服务器上搭建CDH时由于无法执行重启操作,我当时使用以下命令来使主机名生效)
hostname $(cat /etc/hostname)
四.禁止交换。(每台主机都要做)
1.执行命令:
vim /etc/sysctl.conf
增加一行:vm.swappiness=0
2.执行命令:
sudo sysctl vm.swappiness=0
五.禁用大页面.(每台主机都要做)
1.执行命令:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.执行命令,修改配置:
vim /etc/rc.local
增加两行:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
3.执行命令,赋予权限
chmod +x /etc/rc.d/rc.local
六.配置免密码登陆(每台主机都要做)
1.执行命令,生成秘钥:
ssh-keygen -t rsa
cd ~/.ssh
2.拷贝到要免密码登陆的机器,要免密登陆哪个机器,就写该机器的ip。这里我2台机器两两之间都做了免密登陆。
ssh-copy-id xxxx
在这里我做的操作是:
主机执行 ssh-copy-id 192.168.195.12
子机执行 ssh-copy-id 192.168.195.11
七.安装MySQL。并配置数据库。
为了方便,把MySQL安装在主节点Server上,但是注意最好别用太高版本的MySQL。这里安装的是MySQL5.7
1.检测是否有mariadb
rpm -qa | grep mariadb
如果有,就执行以下命令进行卸载
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2.开始安装,依次执行命令,根据提示信息操作。(这里需要安装一个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,不然后期会报错)
cd /usr/local/src
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server
3.重启MySQL:
systemctl restart mysqld.service
4.查看默认密码
grep "password" /var/log/mysqld.log
5.使用默认密码登陆:
mysql -u root -p
6.进入命令行后,首先修改密码(我修改的密码为123456)
alter user 'root'@'localhost' identified by '123456';
7.然后进行创建用户,授权等操作
grant all on *.* to 'root'@'%' identified by '123456' with grant option; -- 授权
CREATE USER 'scm'@'%' IDENTIFIED BY '123456'; --创建一个新用户,就使用这个用户名,和密码,后面cm的元数据库会用到
grant all on *.* to 'scm'@'%' identified by '123456' with grant option;-- 授权
CREATE USER 'lpy'@'%' IDENTIFIED BY '123456'; --创建一个新用户,用户名和密码可以自定义,后面安装hive,oozie会用到
grant all on *.* to 'lpy'@'%' identified by '123456' with grant option;--授权
flush privileges; -- 刷新权限
8.用上面自定义的数据库用户lpy登陆,在MySQL中创建几个数据库备用,数据库名称可以自定义。(这里我直接使用对应的服务名称来命名数据库)
mysql -u lpy -p
create database hive;
create database hue;
create database ooz;
9.使用scm用户登录MySQL,创建scm数据库备用。
mysql -u scm -p
create database scm;
八.开始安装CM和CDH
1.在所有节点执行命令,创建目录:
sudo mkdir /opt/cloudera-manager
2.在所有节点,将下载好的cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz文件,上传到/opt目录下(用rz命令)
3.在所有节点,解压该文件到/opt/cloudera-manager目录。
tar -zxvf /opt/cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt/cloudera-manager
4.在所有节点,创建用户,这是CM需要使用的用户
sudo useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
5.在主节点,创建CM服务本地数据存放目录,并赋予权限
sudo mkdir /var/lib/cloudera-scm-server
sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
6.在所有节点,执行命令:
vim /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini
修改server_host为server节点的主机名,我的就是server_host=cdh1
7.在所有节点,将上面准备好的数据库驱动上传到/usr/share/java目录下
8.在主节点上执行命令。初始化数据库scm。mysql scm scm scm分别代表:数据库类型 database名称 数据库用户名 数据库密码
/opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql scm scm 123456
如果出现如下提示,则证明CM元数据创建成功。
All done, your SCM database is configured correctly!
9.在主节点执行,创建CDH文件存放目录。
mkdir /opt/cloudera/
cd /opt/cloudera
mkdir parcel-repo
10.将上面准备好的CDH的3个文件,上传至/opt/cloudera/parcel-repo路径下。
11.在主机192.168.195.11启动CM server
/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start
12.在主机192.168.195.11和子机192.168.195.12启动CM agent
/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start
13.然后访问地址:192.168.195.11:7180(我自己的主机ip),出现界面如下,用户名密码都是admin,之后根据提示进行web 界面的配置和操作。
14.配置完成后会进入显示所有信息的主界面,在主界面中可以进行添加服务操作
遇到的问题及解决方案
遇到的问题1: 国外的yum源下载速度有点慢,耗费时间较长
解决方案1: 改成了清华的yum源,速度有所提高
遇到的问题2: mysql在更改密码时有密码强度验证,设123456无法成功
解决方案2: 取消MySql密码强度验证功能
修改MySql配置文件(my.cnf)
一般情况下,MySql的配置文件 my.cnf 会在 /etc/ 目录下,如果没有,可以使用以下命令查找位置:
$ sudo find / -name my.cnf
编辑配置文件:
$ sudo vi /etc/my.cnf
在文件末尾添加以下内容:
plugin-load=validate_password.so
validate-password=OFF
保存退出
重启MySQL:
systemctl restart mysqld.service
遇到的问题3: 配置NTP
解决方案3:
安装配置NTP的网址:https://www.cnblogs.com/linypwb/p/5532535.html
我找了很多有关NTP配置的相关教程,这个网址中的ntp安装讲解是比较好的。
遇到的问题4: 安装完成后,web 界面出现许多报错情况,提醒阈值问题
解决方案4: 经过检查发现,有些警告报错是由于未修改检测配置选项而出现的,进到CDH的web界面的/cmf/hardware/hosts/config页面,在其中修改其警告选项,这些警告和报错就会消失,例如主机网络接口速度阈值的警告问题,如下图所示,一些网络限制速度,即便网络速度正常,也会出现报错。
遇到的问题5: 在web界面进行配置是报出如下错误:Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory,原因是mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm没有安装
解决方案5: 去MySQL官网,找到安装的对应MySQL版本的这个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,然后下载下来上传到server上(我的server和MySQL安装在同一个节点上,如果server和MySQL不在同一个节点,那么可以尝试这两个节点都去安装一下),安装:
rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm