centos7安装cdh全过程
- centos7配置静态ip
Vi /etc/sysconfig/network-scripts/ ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0eb33eb0-6c34-4da2-96a1-b4d755fee8ff
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.211.130
GATEWAY=192.168.211.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
重启配置生效 service network restart
ping www.baidu.com
centos7关闭防火墙
查看防火墙是否开启:firewall-cmd --state
停止防火墙:systemctl stop firewalld.service
禁止防火墙开机自启动:systemctl disable firewalld.service
centos7关闭selinux
vi /etc/selinux/config
修改 SELINUX=enforcing 改为 SELINUX=disabled
centos7更改主机名:
hostnamectl set-hostname cdh01
三台机器做主机名与IP地址的映射
vi /etc/hosts
重启 reboot
三台机器机器免密码登录
在三台机器执行以下命令,生成公钥与私钥
ssh-****** -t rsa
执行该命令之后,按下三个回车即可
第二步:拷贝公钥到同一台机器
三台机器将拷贝公钥到第一台机器
三台机器执行命令:
ssh-copy-id cdh01
第三步:复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上
在第一台机器上面指向以下命令
scp /root/.ssh/authorized_keys cdh02:/root/.ssh/
scp /root/.ssh/authorized_keys cdh03:/root/.ssh/
三台机器时间同步
第一步:确定是否安装了ntpd的服务
rpm -qa | grep ntpd
删除已安装ntp
yum –y remove ntpdate-4.2.6p5-29.el7.centos.x86_64
如果没有安装,可以进行在线安装(三台机器都需要安装)
yum -y install ntp
启动ntpd的服务
systemctl start ntpd.service
使用ntpstat查看是否启动
设置ntpd的服务开机启动
systemctl enable ntpd
配置ntp服务
1) 修改所有节点的vim /etc/ntp.conf
主节点IP地址
restrict 192.168.211.130 nomodify notrap nopeer noquery
#集群所在网段的网关(GATEWAY),子网掩码(GENMASK)
restrict 192.168.211.2 mask 255.255.255.0 nomodify notrap
在server部分添加一下部分,并注释掉server 0 ~ n
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
按照我上面的步骤下面的,可以不用执行下面这个本地时间同步
Linux时间与本地时间同步:
yum -y install ntpdate 下载过ntp就省略这步
ntpdate -u ntp.api.bz
date
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? y
ntpdate pool.ntp.org
date
安装mysql
yum install mysql mysql-server mysql-devel
yum安装mysql-server没有可用包问题解决方法:
step 1: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
step 2: rpm -ivh mysql-community-release-el7-5.noarch.rpm
经过以上两个步骤后再次执行:yum install mysql-server 命令就可以成功安装了。
启动mysql服务
systemctl start mysqld
/usr/bin/mysql_secure_installation
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
flush privileges;
Cdh安装
[[email protected] ~]# mkdir bin
[[email protected] ~]# cd bin/
[[email protected] 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=KaTeX parse error: Expected 'EOF', got '#' at position 6: pdir
#̲4 获取当前用户名称
user…host --------------
rsync -av fname host:$pdir
done
[[email protected] bin]# chmod 777 xsync
[[email protected] bin]# cd /opt/
[[email protected] opt]# mkdir module
[[email protected] opt]# mkdir software
[[email protected] opt]# cd software/
使用上传工具把jdk1.8上传到/opt/ software/下
[[email protected] software]# ll
total 190524
-rw-r–r-- 1 root root 195094741 Sep 12 11:08 jdk-8u221-linux-x64.tar.gz
解压:
[[email protected] software]# tar -zvxf jdk-8u221-linux-x64.tar.gz -C …/module/
修改文件的所有者和所有者组为root
[[email protected] module]# chown root:root jdk1.8.0_221/ -R
配置JDK环境变量
[[email protected] module]# vim /etc/profile
让修改后的文件生效
[[email protected] module]# source /etc/profile
测试配置是否生效
[[email protected] module]# java -version
java version “1.8.0_221”
Java™ SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot™ 64-Bit Server VM (build 25.221-b11, mixed mode)
将cdh01中的JDK和环境变量分发到cdh02、cdh03两台主机
[[email protected] module]# xsync /opt/module/
[[email protected] module]# xsync /etc/profile
分别在cdh02、cdh03上source一下
[[email protected] ~]# source /etc/profile
[[email protected] ~]# source /etc/profile
集群整体操作脚本
1)在/root/bin目录下创建脚本xcall.sh
[[email protected] module]# cd /root/bin/
[[email protected] bin]# vim xcall.sh
2)在脚本中编写如下内容
#! /bin/bash
for i in cdh01 cdh02 cdh03
do
echo --------- $i ----------
ssh *"
done
3)修改脚本执行权限
[[email protected] bin]# chmod 777 xcall.sh
4)将/etc/profile文件追加到~/.bashrc后面
[[email protected] module]# cat /etc/profile >> ~/.bashrc
[[email protected] module]# cat /etc/profile >> ~/.bashrc
[[email protected] module]# cat /etc/profile >> ~/.bashrc
5)测试
[[email protected] bin]# xcall.sh jps
创建CM用的数据库
在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
1)启动数据库
[[email protected] bin]# mysql -uroot -p123456
2)集群监控数据库
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3)Hive数据库
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4)Oozie数据库
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5)Hue数据库
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6)关闭数据库
mysql> quit;
下载第三方依赖
依次在三台节点(所有Agent的节点)上执行下载第三方依赖(注意:需要联网)
[[email protected] ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
[[email protected] ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
[[email protected] ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
CM安装部署
CM下载地址
1)CM下载地址:http://archive.cloudera.com/cm5/cm/5/
2)离线库下载地址:http://archive.cloudera.com/cdh5/parcels/5.15.2/
CM安装
注:以下所有操作均使用root用户
1)创建/opt/module/cm目录
[[email protected] ~]# mkdir –p /opt/module/cm
2)上传cloudera-manager-centos7-cm5.15.2_x86_64.tar.gz到cdh01的/opt/software目录,并解压到/opt/module/cm目录
[[email protected] software]#tar -zxvf cloudera-manager-centos7-cm5.15.2_x86_64.tar.gz -C /opt/module/cm
3)分别在cdh01 ,cdh02 ,cdh03创建用户cloudera-scm
[[email protected] cdh01 module]#
useradd
–system
–home=/opt/module/cm/cm-5.15.2/run/cloudera-scm-server
–no-create-home
–shell=/bin/false
–comment “Cloudera SCM User” cloudera-scm
[[email protected] cdh02 module]#
useradd
–system
–home=/opt/module/cm/cm-5.15.2/run/cloudera-scm-server
–no-create-home
–shell=/bin/false
–comment “Cloudera SCM User” cloudera-scm
[[email protected] cdh03 module]#
useradd
–system
–home=/opt/module/cm/cm-5.15.2/run/cloudera-scm-server
–no-create-home
–shell=/bin/false
–comment “Cloudera SCM User” cloudera-scm
参数说明:
–system 创建一个系统账户
–home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
–no-create-home 不要创建用户的主目录
–shell 用户的登录 shell 名
–comment 用户的描述信息
注意:Cloudera Manager默认去找用户cloudera-scm,创建完该用户后,将自动使用此用户。
4)修改CM Agent配置
修改文件/opt/module/cm/cm-5.15.2/etc/cloudera-scm-agent/ config.ini的主机名称
[[email protected] cloudera-scm-agent]# vim /opt/module/cm/cm-5.15.2/etc/cloudera-scm-agent/config.ini
修改主机名称
server_host=cdh01
5)配置CM的数据库
拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/
[[email protected] cm]# mkdir –p /usr/share/java/
[[email protected] module]# cd /usr/share/java/
[[email protected] java]#mv mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar
注意:jar包名称要修改为mysql-connector-java.jar
6)使用CM自带的脚本,在MySQL中创建CM库
[[email protected] cm-5.15.2]#
/opt/module/cm/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hcdh01 -uroot -p123456 --scm-host cdh01 scm scm scm
参数说明
-h:Database host
-u:Database username
-p:Database Password
–scm-host:SCM server’s hostname
7)分发cm
[[email protected] module]# xsync /opt/module/cm
8)创建Parcel-repo
[[email protected] module]# mkdir -p /opt/cloudera/parcel-repo
[[email protected] module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
9)拷贝下载文件manifest.json 、CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1 、CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel到hadoop102的/opt/cloudera/parcel-repo/目录下
[[email protected] parcel-repo]# ls
CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1
manifest.json
10)将CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1:需改名为
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha
[[email protected] parcel-repo]# mv CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1 CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha
11)在cdh01上创建目录/opt/cloudera/parcels,并修改该目录的所属用户及用户组为cloudera-scm
[[email protected] module]# mkdir -p /opt/cloudera/parcels
[[email protected] module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
12)分发/opt/cloudera/
[[email protected] opt]# xsync /opt/cloudera/
启动CM服务
1)启动服务节点:cdh01
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server: [确定]
2)启动工作节点:hadoop102、hadoop103、hadoop104
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent start
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent start
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent start
注意:启动过程非常慢,Manager启动成功需要等待5分钟左右,过程中会在数据库中创建对应的表需要耗费一些时间。
3)查看被占用则表示安装成功了!!!
[[email protected] cm]# netstat -anp | grep 7180
tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5498/java
4)访问http://192.168.211.130:7180,(用户名、密码:admin)
1.3.4 关闭CM服务
1)关闭工作节点:cdh01、cdh02、cdh03
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]
2)关闭服务节点:cdh01
[[email protected] cm]# /opt/module/cm/cm-5.15.2/etc/init.d/cloudera-scm-server stop
停止 cloudera-scm-server: [确定]
CM的集群部署
等待下载安装
配置Hue支持Impala
Spark2.1安装
在先前装的CDH5.15集群中,默认安装的spark是1.6.0版本。我们现在可以现有的集群中再装spark2.x版本,能和spark1.6版本并存。
当前CDH支持的Spark2.X最新版本是Spark2.3.0,目前Apache Spark最近版本是2.3.1,即CDH的版本更新是慢半拍的,但基本上不影响使用。
下面是在CDH中安装Spark2.3的步骤:
这是官方给出安装和升级方法说明:
https://www.cloudera.com/documentation/spark2/latest/topics/spark2_installing.html
一. 安装准备
- 下载所需的安装包
http://archive.cloudera.com/spark2/csd/
SPARK2_ON_YARN-2.3.0.cloudera3.jar
http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera3/
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel.sha1
manifest.json
说明:要选择相对应的系统、CDH版本
我的系统是CentOS7.x所以选择了el7,都选择cloudera3相应的parcel包
离线包上传
- 上传CSD包到CM节点的/opt/cloudera/csd目录
chown cloudera-scm:cloudera-scm SPARK2_ON_YARN-2.3.0.cloudera3.jar
- 上传parcel的3个包到CM的/opt/cloudera/parcel-repo目录下
[[email protected] parcel-repo]# ls
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel.sha1
manifest.json
如之前有manifest.json文件,先把之前的更名后再上传
3)将SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1重命名为SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha
重启CM和集群
systemctl restart cloudera-scm-agent
通过CM安装Spark2
CM页面-> 主机 -> Parcel页面可以看到新的spark2的parcel包
2.3.0.cloudera3-1.cdh5.13.3.p0.458809
然后点击 下载-进行分配-**
注意:这里我报了一个错:客户端配置 (id=12) 已使用 1 退出,而预期值为 0
1)问题原因:最后找到原因是因为CM安装Spark不会去环境变量去找Java,需要将Java路径添加到CM配置文件
解决方法:(无需重启cdh):
查看/opt/module/cm/cm-5.12.1/lib64/cmf/service/common/cloudera-config.sh
找到java8的home目录
cdh不会使用系统默认的JAVA_HOME环境变量,而是依照bigtop进行管理,因此我们需要在指定的/usr/java/jdk1.8目录下安装jdk。当然我们已经在/opt/module/jdk1.8.0_144下安装了jdk,因此创建一个连接过去即可
[[email protected] java]# ln -s /opt/module/jdk1.8.0_221/ /usr/java/jdk1.8
[[email protected] java]# ln -s /opt/module/jdk1.8.0_221/ /usr/java/jdk1.8
[[email protected] java]# ln -s /opt/module/jdk1.8.0_221/ /usr/java/jdk1.8