2019独角兽企业重金招聘Python工程师标准>>>
准备工作已经完成,接下来我们就要正式的开始在我们服务器集群上搭建CDH
附上:
喵了个咪的博客:w-blog.cn
cloudera官网: https://www.cloudera.com/
官方文档地址: https://www.cloudera.com/documentation/enterprise/latest.html
一 , 安装MYSQL
无论是Hadoop相关组件还是cm本身都需要使用到数据库,cm默认会使用内嵌数据库,但是这种方式并不推荐在生产环节使用
(阿里云RDS是无法支持create table xxx select *from xxx的操作不能吧CM数据库放到)
在生产环境尽量使用外部数据库,不要使用CM自带数据库
这里使用oneinstack进行安装可以去官网选择你要的组件一条命令搞定
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --db_option 2 --dbinstallmethod 1 --dbrootpwd Sunmi388
其他服务器上都可以跑一下空的安装指令进行软件更新和基础依赖的安装(全部N即可)
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh
PS:如果大家没有使用oneinstack那么需要自主安装ntp来保证服务器直接的时间的一致性
二, JDK安装
卸载系统自带JDK
rpm -qa |grep java #如果有就卸载。没有就不用执行下面
yum remove java* #删除自带的java
在CM上解压SDK配置环境变量
cd /app/install
tar -zxvf jdk-8u101-linux-x64.tar.gz
mv jdk1.8.0_101/ /usr/local/jdk1.8
# 拷贝到其他节点
scp -r /usr/local/jdk1.8 master-1:/usr/local/
scp -r /usr/local/jdk1.8 master-2:/usr/local/
scp -r /usr/local/jdk1.8 slave-1:/usr/local/
scp -r /usr/local/jdk1.8 slave-2:/usr/local/
scp -r /usr/local/jdk1.8 slave-3:/usr/local/
所有节点都进行环境变量配置
vim /etc/profile
# java
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
查看JAVA安装是否成功:
[root@cm install]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
三, CM安装
安装基本包
每台服务器上安装CM所需要的第三方依赖包
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
在cm服务器上解压CM
mkdir -p /usr/local/cloudera-manager
tar zxf /app/install/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /usr/local/cloudera-manager/
修改CM的配置文件,agent从节点配置文件指定CM的主节点server的通讯地址
vim /usr/local/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini
[General]
# Hostname of the CM server.
server_host=cm
将CM的安装目录拷贝给集群的其他节点
scp -r /usr/local/cloudera-manager/ master-1:/usr/local/
scp -r /usr/local/cloudera-manager/ master-2:/usr/local/
scp -r /usr/local/cloudera-manager/ slave-1:/usr/local/
scp -r /usr/local/cloudera-manager/ slave-2:/usr/local/
scp -r /usr/local/cloudera-manager/ slave-3:/usr/local/
初始化数据库
配置CM访问mysql的权限并初始化在mysql中的状态
mysql -u root -p
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Sunmi388' with grant option;
mysql> flush privileges;
CM要使用mysql作为数据源的话需要对应的驱动包(最易每个节点都需要增加这个JAR包)
mkdir /usr/share/java/
cd /usr/share/java/
wget http://pic.w-blog.cn/mysql-connector-java.jar
/usr/local/cloudera-manager/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -h cm -uroot -pSunmi388 --scm-host % scm scm scm --force
配置CDH源parcel包
在cm上执行
mkdir -p /opt/cloudera/parcel-repo
在全部节点执行
mkdir -p /opt/cloudera/parcel
将parcel包文件移动到cm节点的parcel-repo目录下
cp /app/install/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel* /opt/cloudera/parcel-repo
修改校验码文件的后缀
mv /opt/cloudera/parcel-repo/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha
启动CM
cm执行:
/usr/local/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start
查看cm是否启动
默认web页面会在cm服务器上开发7180端口
[root@cm init.d]# netstat -nltp|grep 7180
tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 7333/java
等CM启动完成之后才在所有节点执行(不然agent会挂掉):
/usr/local/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start
# 查看agent是否启动成功,如果未启动成功需要再次启动
ps -ef | grep agent
访问CM的web⻚⾯http://xxxxxxxxx.com:7180(由于CM Server的启动需要花点时间,这⾥可能要等待⼀会才能访问),默认的⽤户名和密码均为admin
接受条约
选择版本
我们可以看到CDH中的软件列表
到这里cm-service的安装工作就已经算结束了