CM6环境准备
1. 云服务器准备
经过阿里云和腾讯云抢占式实例价格对比,推荐使用腾讯云服务器。抢占式服务器是计时收费,缺点就是配置在后期不能调整。
1.1 注册腾讯云账户
腾讯云网址为:https://cloud.tencent.com/, 可以直接使用微信扫码登陆。
1.2 购买CVM云服务器
点击页面中的自定义配置,选择竞价实例: 我选择的是5台4U32G配置的服务器,系统选择常用的CentOS7, 然后点击下一步配置网络:
勾选分配独立公网IP,带宽选择最高100M, 减少后期安装包上传时间(时间就是金钱),然后就是设置实例名和密码:
点击高级设置,设置主机名:
点击下一步,确认信息后点击开通,开通的时候会检测当前账号的金额,需要充值了才能开通(至少充5块):
开通完成后,跳转到服务器列表页面:
1.3 配置安全组
点击左边菜单安全组,新建安全组: 简单起见,这里选择开放所有入站端口,默认出站端口是全部开放的:
回到服务器列表页面,全选服务器,然后选择加入安全组:
2. 连接腾讯云服务器
打开远程连接工具进行配置,这里以SecureCRT为例:
3. 修改hosts文件
[root@hadoop101 ~]# vim /etc/hosts
## 注释127.0.0.1 hostname和:::1 hostname
#127.0.0.1 hadoop101
#:::1 hadoop101
## 添加如下内容
10.206.0.15 hadoop101 hadoop101
10.206.0.10 hadoop102 hadoop102
10.206.0.17 hadoop103 hadoop103
10.206.0.7 hadoop104 hadoop104
10.206.0.16 hadoop105 hadoop105
4. SSH免密登录
配置hadoop101对hadoop101、hadoop102、hadoop103三台服务器免密登录。CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置SSH免密登录,但是为了我们分发文件方便,在这里我们也配置SSH。
[root@hadoop101 ~]# ssh-keygen -t rsa
将公钥拷贝到要免密登录的目标机器上
[root@hadoop101 ~]# ssh-copy-id hadoop101
[root@hadoop101 ~]# ssh-copy-id hadoop102
[root@hadoop101 ~]# ssh-copy-id hadoop103
[root@hadoop101 ~]# ssh-copy-id hadoop104
[root@hadoop101 ~]# ssh-copy-id hadoop105
云服务器SSH经常过一会就断开连接解决办法
[root@hadoop101 ~]# vim /etc/ssh/sshd_config
## 去掉注释,改为
ClientAliveInterval 30 //客户端每隔多少秒向服务发送一个心跳数据
ClientAliveCountMax 1800 //客户端多少秒没有响应,服务器自动断掉连接
## 重启SSHD服务
[root@hadoop101 ~]# service sshd restart
重复1和2的操作,配置hadoop102,hadoop103,hadoop104,hadoop105对hadoop101、hadoop102、hadoop103、hadoop104、hadop105五台服务器免密登录。
5. 集群脚本
5.1 同步脚本
- 在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:
[root@hadoop101 ~]$ mkdir bin
[root@hadoop101 ~]$ cd bin/
[root@hadoop101 bin]$ vim xsync
## 在该文件中编写如下代码
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=102; host<106; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
- 修改脚本xsync具有执行权限
[root@hadoop101 bin]$ chmod 777 xsync
5.2 集群操作脚本
- 在/root/bin目录下创建脚本xcall.sh
[root@hadoop101 bin]$ vim xcall.sh
## 在脚本中编写如下内容
#! /bin/bash
for i in hadoop101 hadoop102 hadoop103 hadoop104 hadoop105
do
echo --------- $i ----------
ssh $i "$*"
done
- 修改脚本执行权限
[root@hadoop101 bin]$ chmod 777 xcall.sh
6. 安装JDK(五台)
- 在hadoop101的/opt目录下创建module和software文件夹
[root@hadoop101 opt]# mkdir module
[root@hadoop101 opt]# mkdir software
- 上传oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm并安装
[root@hadoop101 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
[root@hadoop101 software]# vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@hadoop101 software]# source /etc/profile.d/my_env.sh
[root@hadoop101 software]# java -version
java version "1.8.0_181"
- 分发Java
[root@hadoop101 software]# xsync /usr/java/
[root@hadoop101 software]# xsync /etc/profile.d/my_env.sh
[root@hadoop102 ~]# source /etc/profile.d/my_env.sh
[root@hadoop103 ~]# source /etc/profile.d/my_env.sh
[root@hadoop104 ~]# source /etc/profile.d/my_env.sh
[root@hadoop105 ~]# source /etc/profile.d/my_env.sh
[root@hadoop101 software]# xcall.sh java -version
7. 安装MySQL
在hadoop101上面安装。
7.1 安装包准备
## 查看MySQL是否安装
[root@hadoop105 opt]# rpm -qa|grep -i mysql
## 删除原有MySql依赖
[root@hadoop101 ~]# yum remove mysql-libs
7.2 下载MySql依赖并安装
[root@hadoop101 ~]# yum install libaio
[root@hadoop101 ~]# yum -y install autoconf
[root@hadoop101 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
[root@hadoop101 software]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-5.6.24-1.el6.x86_64.rpm
[root@hadoop101 software]# rpm -ivh MySQL-shared-5.6.24-1.el6.x86_64.rpm
[root@hadoop101 software]# rpm -ivh MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
7.3 上传mysql-libs.zip
上传mysql-libs.zip到hadoop101的/opt/software目录,并解压文件到当前目录
[root@hadoop101 software]# yum install unzip
[root@hadoop101 software]# unzip mysql-libs.zip
[root@hadoop101 software]# ls mysql-libs
total 76048
-rw-r--r-- 1 root root 18509960 Mar 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 3575135 Dec 1 2013 mysql-connector-java-5.1.27.tar.gz
-rw-r--r-- 1 root root 55782196 Mar 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
7.4 安装MySQL服务器
## 安装MySQL服务端
[root@hadoop101 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
## 查看产生的随机密码
[root@hadoop101 mysql-libs]# cat /root/.mysql_secret
# The random password set for the root user at Thu Mar 6 11:38:26 2025 (local time): H4IKD4hhrvatJgPH
## 查看MySQL状态
[root@hadoop101 mysql-libs]# service mysql start
7.5 安装MySQL客户端
## 安装MySQL客户端
[root@hadoop101 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
## 登录MySQL
[root@hadoop101 mysql-libs]# mysql -uroot -pH4IKD4hhrvatJgPH
## 修改密码
mysql> SET PASSWORD=PASSWORD('000000');
Query OK, 0 rows affected (0.00 sec)
## 修改user表,把Host表内容修改为%
mysql>use mysql;
mysql>update user set host='%' where host='localhost';
## 删除root用户的其他host
mysql> delete from user where host!='%';
## 刷新
mysql>flush privileges;
7.6 MySQL中建库
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
7.7 添加Mysql驱动
将mysql-connector-java-5.1.27-bin.jar拷贝到/usr/share/java路径下,并重命名
[root@hadoop101 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz
[root@hadoop101 mysql-libs]# cd mysql-connector-java-5.1.27
[root@hadoop101 mysql-connector-java-5.1.27]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
[root@hadoop101 mysql-connector-java-5.1.27]# mkdir /usr/share/java
[root@hadoop101 mysql-connector-java-5.1.27]# cp mysql-connector-java.jar /usr/share/java/
[root@hadoop101 mysql-connector-java-5.1.27]# xsync /usr/share/java/