大数据之CM+CDH5.16.1(一)
鉴于在Ambari2.7+HDP3.0使用过程中有很多不方便之处,所以还是决定选择CDH框架来做。我是准备了4台虚拟机来搭这个环境。
一、集群规划
1.2 机器准备
hostname | 内网IP | 功能 | 内存 | 核数 | 磁盘 |
---|---|---|---|---|---|
cm.cdh.com | 192.168.32.180 | CM和CDH安装 | 16G | 4 | 200G |
master.cdh.com | 192.168.32.181 | Master节点 | 16G | 4 | 1T |
slave1.cdh.com | 192.168.32.182 | Slave节点 | 16G | 4 | 1T |
slave2.cdh.com | 192.168.32.183 | Slave节点 | 16G | 4 | 1T |
1.3 软件版本
组件 | 描述 |
---|---|
linux | Centos7.5 |
CM | 5.16.1 |
CDH | 5.16.1 |
MySQL | 5.6 |
JDK | 1.8.0_181 |
二、环境配置
2.1 基本配置
以下以在cm.cdh.com机器上做的演示,其他机器做前三步修改即可
2.1.1 修改vim /etc/sysconfig/network
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cm.cdh.com
2.1.2 修改vim /etc/hosts
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# vim /etc/hosts
192.168.32.180 cm.cdh.com
192.168.32.181 master.cdh.com
192.168.32.182 slave1.cdh.com
192.168.32.183 slave2.cdh.com
2.1.3 修改vim /etc/hostname
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# vim /etc/hostname
cm.cdh.com
2.1.4 检查和关闭防火墙
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# systemctl status firewalld.service
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# systemctl disable firewalld.service
注意:修改完上述配置后重启
2.1.5 安装openssl
[root@cm ~]# yum install openssl
2.1.6 安装NTP时间同步服务
检查是否已安装:[root@cm ~]# rpm -qa | grep ntp
未安装则安装:[root@cm ~]# yum install ntp ntpdate -y
2.1.7 关闭SELinux
[root@cm ~]# vim /etc/selinux/config
SELINUX=disabled
2.1.8 安装httpd服务
安装httpd服务:[root@cm ~]# yum install httpd -y
开启httpd服务:[root@cm ~]# systemctl start httpd.service
开机启动:[root@cm ~]# systemctl enable httpd.service
测试httpd服务是否能使用:把HTTP样本放到/var/www/html目录里,在浏览器输入
http://服务器IP ,看是否能进入HTTP样本网页
2.2 SSH免密登录
2.2.1 生成公钥和私钥
[root@cm ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa
ssh.png
连续三次回车即可,再查看.ssh目录下,会生产两个文件:id_rsa和id_rsa.pub,其中id_rsa表示私钥,id_rsa.pub表示公钥
2.2.2 将公钥id_rsa.pub复制到自己和其他机器
[root@cm .ssh]# ssh-copy-id cm.cdh.com
[root@cm .ssh]# ssh-copy-id master.cdh.com
[root@cm .ssh]# ssh-copy-id slave1.cdh.com
[root@cm .ssh]# ssh-copy-id slave2.cdh.com
以上只是cm.cdh.com--->cm.cdh.com 、master.cdh.com、slave1.cdh.com、slave2.cdh.com
同样的,如果需要可以继续做:
master.cdh.com ---> cm.cdh.com 、master.cdh.com、slave1.cdh.com、slave2.cdh.com
slave1.cdh.com ---> cm.cdh.com 、master.cdh.com、slave1.cdh.com、slave2.cdh.com
slave2.cdh.com ---> cm.cdh.com 、master.cdh.com、slave1.cdh.com、slave2.cdh.com
2.3 安装JDK8
2.3.1 创建java目录
[root@master ~]# mkdir -p /usr/local/software/java/
[root@slave1 ~]# mkdir -p /usr/local/software/java/
[root@slave2 ~]# mkdir -p /usr/local/software/java/
2.3.2 解压jdk8压缩包
先将压缩包上传到cm.cdh.com机器上的某个目录下,然后进行解压操作
[root@cm software]#
tar -zvxf jdk-8u181-linux-x64.tar.gz -C /usr/local/software/java/
2.3.3 将jdk分发到其他机器上
1)分发到master.cdh.com机器上
[root@cm java]#
scp -r jdk1.8.0_181 root@master.cdh.com:/usr/local/software/java
2)分发到slave1.gey.com机器上
[root@cm java]#
scp -r jdk1.8.0_181 root@slave1.cdh.com:/usr/local/software/java
3)分发到slave2.gey.com机器上
[root@cm java]#
scp -r jdk1.8.0_181 root@slave2.cdh.com:/usr/local/software/java
2.3.4 配置JDK
[root@cm jdk1.8.0_181]# vim /etc/profile
export JAVA_HOME=/usr/local/software/java/jdk1.8.0_181
export PATH=\${JAVA_HOME}/bin:\$PATH
[root@cm jdk1.8.0_181]# source /etc/profile
[root@cm jdk1.8.0_181]# java -version
javaversion.png2.4 安装mysql
2.4.1 直接安装mysql
1. 上传mysql的服务端和客户端rpm文件
MySQL-server-5.6.24-1.el6.x86_64.rpm
MySQL-client-5.6.24-1.el6.x86_64.rpm
2.检查机器是否自带了mariadb
[root@cm softs]# rpm -qa|grep mariadb
[root@cm softs]# rpm -qa | grep -i mysql 加i表示不区分大小写
如果已经存在,则需要先卸载
[root@cm mysofts]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
3. 安装服务端
1)执行安装:[root@cm softs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
2)启动服务:[root@cm softs]# service mysql start
3)查看状态:[root@cm softs]# service mysql status
在cm.gey.com【虚拟机】上报错如下:
报错:FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db:Data::Dumper
err2.png卸载掉刚才安装的Mysql服务,重新安装
卸载步骤:
[root@cm softs]# rpm -qa | grep -i mysql
[root@cm softs]# rpm -e --nodeps MySQL-server-5.6.24-1.el6.x86_64
[root@cm softs]# rm -rf /var/lib/mysql/
[root@cm softs]# whereis mysql
[root@cm softs]# rm -rf /usr/lib64/mysql
[root@cm softs]# rm –rf /usr/my.cnf
[root@cm softs]# rm -rf /root/.mysql_sercret
再重新安装
4 安装客户端
1)执行安装:[root@cm softs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
2)查看密码:[root@cm softs]# cat /root/.mysql_secret
3)登录mysql:[root@cm softs]# mysql -uroot -p随机密码
4)修改密码:set password=password('gey2018');
5)退出重登:[root@cm softs]# mysql -uroot -pgey2018
6)修改mysql.user表内容:
mysql> use mysql
mysql> select User, Host, Password from user;
mysql> update user set host='%' where host='localhost';
mysql> delete from user where Host='cm.gey.com';
mysql> delete from user where Host='127.0.0.1';
mysql> delete from user where Host='::1';
mysql> flush privileges;
2.4.2 docker安装mysql
鉴于直接安装mysql经常出现莫名其妙的错误,还一下子找不到原因,这就坑了。所以我就试试用docker试试
拉取(下载)MySQL镜像:docker pull mysql:5.6.24 【不指定版本则拉取最新的】
查看镜像:docker images
创建并启动一个MySQL容器:
docker run --name cdh-mysql -e MYSQL_ROOT_PASSWORD=000000 -p 3306:3306 -d mysql:5.6.24
查看容器运行状态:docker ps
启动和关闭容器
[root@cm ~]# docker start cdh-mysql //通过指定容器名字
[root@cm ~]# docker start 73f8811f669e //通过指定容器ID
[root@cm ~]# docker stop cdh-mysql //通过指定容器名字
[root@cm ~]# docker stop 73f8811f669e //通过指定容器ID
开机自动重启:
docker update --restart always cdh-mysql
进入mysql:【如果拉取的是最新的mysql,走这个】
[root@cm ~]# docker exec -it cdh-mysql /usr/bin/
root@e2890925ed03:/# mysql -uroot -p000000
docker_mysql2.png
【我这里拉取的是5.6.24,走这个】
docker run -it --link cdh-mysql:mysql --rm mysql:5.6.24 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -p000000'
docker_mysql3.png
mysql> use mysql;
mysql> select User, Host from user;
mysql> delete from user where Host='localhost';
docker_mysql4.png
如何删除一个docker镜像和容器
docker rmi containerID或者imageID