JDK版本:1.8
linux版本:CentOS7
CDH版本:5.11.1
CM下载点击这里,CDH下载点击这里
这里我使用虚拟机搭建了三台集群,一台Master,两台Slave
角色 | IP |
Master | 192.168.17.200 |
Slave1 | 192.168.17.201 |
Slave2 | 192.168.17.202 |
环境介绍完了,现在我们就开始安装CDH,安装步骤分为以下几步:
1.虚拟机配置
2.JDK安装与配置
3.MySQL安装
4.安装CM(Cloudera Manager)
5.Agent安装
6.向集群添加新主机
7.设置自启动服务
Linux CentOS7系统安装就跳过了,这个百度,要确保的以下几点:
1.三台主机防火墙关闭,并设置为开机不启动
2.三台主机可以进行免密访问
3.三台主机/etc/hosts配置映射
4.Master时间同步:
执行:
yum install ntp -y
进入配置文件:
vi /etc/ntp.conf
# 1. 先处理权限方面的问题,包括放行上层伺服器以及开放区网用户来源:
restrictdefault kod nomodify notrap nopeer noquery <==拒绝 IPv4 的用户
restrict -6default kod nomodify notrap nopeer noquery <==拒绝 IPv6 的用户
restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 进入本 NTP 伺服器
restrict59.124.196.83 <==放行 tick.stdtime.gov.tw 进入本 NTP 伺服器
restrict59.124.196.84 <==放行 time.stdtime.gov.tw 进入本 NTP 伺服器
restrict127.0.0.1 <==底下两个是预设值,放行本机来源
restrict -6 ::1
restrict 192.168.100.0mask 255.255.255.0 nomodify <==放行区网来源
# 2. 设定主机来源,请先将原本的 [0|1|2].centos.pool.ntp.org 的设定註解掉:
server220.130.158.71 prefer <==以这部主机为最优先
server59.124.196.83
server59.124.196.84
# 3.预设时间差异分析档案与暂不用到的 keys 等,不需要更动它:
driftfile/var/lib/ntp/drift
keys /etc/ntp/keys
可以直接把以上内容cv进去,除了中文以外。
执行:
service ntpd start
可以使用“Ntpstat”命令查看同步状态,但是第一次使用时,同步时间可能需要十分钟。
当我们查看状态时出现以下情况,表示同步成功:
到此为止,虚拟机基本配置就ojbk了。。。
下载,解压,配置环境变量,为了方便复制:
echo 'export JAVA_HOME=/opt/jdk1.8.0_161' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
略。。。
开个玩笑,MySQL安装过程有点繁琐,我直接贴一个自动化安装脚本,修改一下就可以用了(Master必须安装,两台Slave就不用了):
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -M mysql
mkdir -p /wjy/mysql/data
chown -R mysql.mysql /wjy/mysql/data
yum install perl -y
yum install -y perl-Module-Install.noarch
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/wjy/mysql/data --user=mysql
#修改配置文件
sed -i "s?# basedir = .....?basedir = /usr/local/mysql?g" /usr/local/mysql/my.cnf
sed -i "s?# datadir = .....?datadir = /wjy/mysql/data?g" /usr/local/mysql/my.cnf
sed -i "s?# port = .....?port = 3306?g" /usr/local/mysql/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
mkdir /var/log/mariadb
/etc/init.d/mysqld start
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
/usr/local/mysql/bin/mysqladmin -u root password '1234'
service mysqld restart
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile
source /etc/profile
mysql -uroot -p1234 -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;FLUSH PRIVILEGES;"
#删除多于用户用于远程CDH在安装时密码不正确
mysql -uroot -p1234 -e "delete from mysql.user where host<>'%';"
service mysqld restart
切记修改解压目录以及你的mysql安装包的名字!!!
1.创建目录:
mkdir /opt/cloudera-manager
2.解压:
tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/cloudera-manager/
3.创建cloudera-scm用户:
useradd --system --home=/opt/cloudera-manager/cm-5.11.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4.本地元数据存放目录:
mkdir /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /opt/cloudera-manager.
5.将本机作为一个客户端:
vi /opt/cloudera-manager/cm-5.11.1/etc/cloudera-scm-agent/config.ini
6.创建仓库:
mkdir -p /opt/cloudera/parcel-repo
cp CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel /opt/cloudera/parcel-repo/
cp CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha /opt/cloudera/parcel-repo/
cp manifest.json /opt/cloudera/parcel-repo/
7.创建存放目录(因为我们本机需要一个agent,从服务器下载下来的一些组件,应该放在该目录下):
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
8.加入mysql包:
注意:这个mysql的包名字只能叫“mysql-connector-java.jar” *3(重要的事情说三遍)
mkdir -p /usr/share/java
cp mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar
9.初始化MySQL:
/opt/cloudera-manager/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql -hMaster -uroot -p1234 --scm-host Master scmdbn root 1234
这里叫你输入两次用户名密码的意思是,一个是连接用的,一个是操作数据库用的,如果你的这个数据库用户有最高权限,那两个地方就填同一个用户。
这一步最容易出错,原因有很多,大部分原因是因为你的数据库jar包没有正确的加入。
10.启动:
很强,如果以上步骤不出错,就可以启动了:
cd /opt/cloudera-manager/cm-5.11.1/etc/init.d
./cloudera-scm-server start
./cloudera-scm-agent start
这里如果报了一个什么psmisc的错,就安装一下:
yum install -y psmisc
不安装也没有什么关系,不影响使用。
11.访问:
通过访问:http://192.167.17.200:7180,就可以进入到登陆界面,端口号可以在第5步的配置文件里配置。
用户名:admin,密码:admin
12.首次配置:
我就直接贴图了:
这里一定要选择你对应的版本。
两个警告,不要捉急:
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重新运行一下就可以了,当然,这两个警告也不影响使用。
虚拟机内存堪忧,就只安装一个HDFS吧。。。
到此,Server服务器就安装完毕了。
Slave安装贼简单。
1.虚拟机配置时间同步:
yum install ntp
进入etc/ntp.conf
ftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
# 配置时间服务器为本地的时间服务器
server 192.168.17.200 #这里配置的是Master的IP
restrict 192.168.17.200 nomodify notrap noquery #这里同上
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
输入地址进行测试:
ntpdate -u 192.167.17.200
重启:service ntpd start
2.安装agent,也是一步一步来:
mkdir /opt/cloudera-manager
tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/cloudera-manager
useradd --system --home=/opt/cloudera-manager/cm-5.11.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
vi /opt/cloudera-manager/cm-5.11.1/etc/cloudera-scm-agent/config.ini
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
启动:
cd /opt/cloudera-manager/cm-5.11.1/etc/init.d
./cloudera-scm-agent start
安装好Agent后,你就可以在集群上看见新主机:
这里的两个警告同Server一样。
点击继续,新主机就可以加入集群了。
1.将服务端设置为自启动:
cp /opt/cloudera-manager/cm-5.11.1/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
vi /etc/init.d/cloudera-scm-server
在文件中查找:CMF_DEFAULTS,修改内容为:/opt/cloudera-manager/cm-5.11.1/etc/default
chkconfig cloudera-scm-server on
service cloudera-scm-server start
2.将客户端设置为自启动
cp /opt/cloudera-manager/cm-5.11.1/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
vi /etc/init.d/cloudera-scm-agent
在文件中查找:CMF_DEFAULTS,修改内容为:/opt/cloudera-manager/cm-5.11.1/etc/default
chkconfig cloudera-scm-agent on
service cloudera-scm-agent start
最后,如果你安装好Agent后,CDH集群上找不到你的主机,那说明你的虚拟机是克隆过来的,需要修改它的mac地址,建议最好不要直接克隆。
如果查询Host Monitor 时发生内部错误,
删除:/var/lib/cloudera-host-monitor后,重启server,agent服务。