CDH完全安装文档(含Spark2、)
创作不易,请勿抄袭,转载请注明出处。如有疑问,请加微信 wx15151889890,谢谢。
[本文链接:]https://blog.****.net/wx740851326/article/details/https://blog.****.net/wx740851326/article/details/83749163
本文主要记叙了如何在centos7.2上搭建cdh平台,使用mysql为元数据管理库(官方推荐),安装了Spark2和Kafka组件。
一、软件准备
- cdh5.13.3-centos7.tar.gz cm5.13.3-centos7.tar.gz
SPARK2_ON_YARN-2.3.0.cloudera3.jar
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel
KAFKA-3.1.0-1.3.1.0.p0.35.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel.sha
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha
KAFKA-3.1.0-1.3.1.0.p0.35.parcel.sha JDK:jdk-8u181-linux-x64.tar.gz
二、修改操作系统配置
- 关闭selinux
vi /etc/selinux/configvi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
-
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
service iptables stop
chkconfig iptables off -
安装必须的yum包
yum -y install postgresql-server
yum -y install postgresql
yum -y install httpd
yum -y install perl
yum -y install bind-utils
yum -y install libxslt
yum -y install cyrus-sasl-gssapi
yum -y install redhat-lsb
yum -y install cyrus-sasl-plain
yum -y install portmap
yum -y install fuse
yum -y install fuse-libs
yum -y install nc
yum -y install python-setuptools
yum -y install python-psycopg2
yum -y install MySQL-python
yum -y install mod_ssl
yum -y install ssh
yum -y install ntp
yum -y install wget -
移除自带的openjdk
rpm -qa |grep jdk
yum -y remove 《》 #移除包 -
移除自带的mariadb
rpm -qa |grep mariadb
yum -y remove 《》 #移除包 -
修改hosts文件
vi /etc/hosts
配置主机名ip地址 -
设置交换空间为0
echo “vm.swappiness=0” >> /etc/sysctl.conf
提升hdfs的读写效率 -
配置ssh 免密信道
ssh-****** -t rsa一键回车
ssh-copy-id -i hadoop01
ssh-copy-id -i hadoop02
ssh-copy-id -i hadoop03
ssh hadoop01
ssh hadoop02
ssh hadoop03 -
配置ntp服务器
vi /etc/ntp.conf
master上 配置server 127.127.1.0
slaver上配置 server -
安装jdk
将jdk的压缩包放置在/usr/java/jdk1.8
tar -zvxf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181 jdk1.8
vi /etc/profile 写入以下脚本
export JAVA_HOME=/usr/java/jdk1.8
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
完成后source /etc/profile
javac java –version检验安装情况 -
解压cdh文件至/var/www/html/下(master)
tar -zvxf cdh5.13.3-centos7.tar.gz
tar -zvxf cm5.13.3-centos7.tar.gz
-
配置本地yum源
vi /etc/yum.repos.d/cm.repo
[cloudera-manager]
name=Cloudera Manager
baseurl= http://hadoop01:/cm/5.13.3/
gpgcheck = 0
enabled = 1
vi /etc/yum.repos.d/cdh.repo
[cloudera-cdh5]
name=CDH
baseurl= http://hadoop01:/cdh/5.13.3/
enable=1
gpgcheck = 0 -
配置服务开机自启动
service ntpd start
chkonfig ntpd on
service iptables stop
chkconfig iptables off
service httpd start
chkconfig httpd on -
机器重启
-
检查ntp,http服务是否启动成功
-
检查ntp服务是否正常
ntpq -pntpq -p
三、数据及CDH服务安装
-
安装mysql,创建相应的数据库并赋权(master)
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install -y mysql-server
yum install -y mysql-devel
yum install -y mysql-connector-java
service mysqld start
/usr/bin/mysql_secure_installation
create database cm default character set utf8;
create user ‘cm’@’%’ identified by ‘123456’;
grant all privileges on cm.* to ‘cm’@’%’ with grant option; flush privileges;create database hive default character set utf8;
create user ‘hive’@’%’ identified by ‘123456’;
grant all privileges on hive.* to ‘hive’@’%’;flush privileges;create database rm default character set utf8;
create user ‘rm’@’%’ identified by ‘123456’;
grant all privileges on rm.* to ‘rm’@’%’;flush privileges;create database sentry default character set utf8;
create user ‘sentry’@’%’ identified by ‘123456’;
grant all privileges on sentry.* to ‘sentry’@’%’;flush privileges;create database oozie default character set utf8;
create user ‘oozie’@’%’ identified by ‘123456’;
grant all privileges on oozie.* to ‘oozie’@’%’;flush privileges;create database hue default character set utf8;
create user ‘hue’@’%’ identified by ‘123456’;
grant all privileges on hue.* to ‘hue’@’%’;flush privileges;create database nms default character set utf8;
create user ‘nms’@’%’ identified by ‘123456’;
grant all privileges on nms.* to ‘nms’@’%’;flush privileges; -
安装cm实例和cm-server(master)
yum install -y cloudera-manager-daemons cloudera-manager-server
指定cm的数据库
/usr/share/cmf/schema/scm_prepare_database.sh -h 192.168.1.67 mysql cm cm 123456
-
启动server服务 访问master主机的7180端口地址
service cloudera-scm-server start
service cloudera-scm-server status 查看进程启动的状态
异常则去日志目录下查看
tail -30f /var/log/cloudera-scm-server/cloudera-scm-server.log
成功则访问 10.16.8.67:7180
四、CM安装CDH
-
访问10.16.8.67:7180
此时需要数据用户名密码,用户名是admin,密码输入即会为初始密码。 -
页面1勾选方框同意用户协议
-
页面2选择free 点击继续
-
配置主机地址 输入主机名称
-
全部勾选,继续
-
choose method 选择 use packages
version of cdh选择 cdh5
select 都选择 custom repository
url输入的是yum配置的地址 -
不勾选 install oracle java se… 继续
此处为kerber安装所必须的java安全包,没有kerberos不需要安装,有kerberos初次安装也不要安装,等环节装好再启用kerberos -
不勾选single… 直接继续
-
root安装 所有主机接受相同的root密码 输入root的密码 继续
-
等待安装完成,选择core with spark
-
角色分配
分配角色 Hdfs角色分配如下:
Hive角色分配如下:
Hue角色分配入下:
Cloudera Managerment service角色分配如下:
Oozie spark yarn角色分配如下:
Zookeeper角色分配如下:
说明:
主角色由master承担
所有机器都是datanode
Namenode首次分配在master上,ha之后分配到slave1上
所有机器都安装zkserver
Gateway的角色在所有主机上都要有
Cdh的监控服务安装到master
- 继续
指定元数据管理库
五、安装spark,kafka
- 将parcel文件都放在master主机的/opt/cloudera/parcel-repo下(.torrent文件会自动生成,不用管)
- 将SPARK2_ON_YARN-2.3.0.cloudera3.jar文件放在master主机的/opt/cloudera/csd下
- 在cdh的parcel包管理界面刷新,依次分配和**CDH5,kafka,Spark2(必须先**CDH5)
- 在各主机配置内修改java_home为/usr/java/jdk1.8(因为spark2需要jdk1.8支持,cdh自带的为1.7)
- 重新部署配置,然后重启(**或者配置修改后都需如此操作)
- 重启服务
重启服务才能看到Spark2服务
service cloudera-scm-server restart
service cloudera-scm-agent restart
- 重启完成后重新登录http://master:7180
- 添加kafka服务
第一次可能会启动失败,失败后直接在首页点击kafka的小扳手查看原因,点击配置修改配置,再次启动kafka
修改完成后,若启动失败,则去查看日志,很有可能是id问题:
查看角色日志报错:kafka.common.InconsistentBrokerIdException: Configured broker.id 33 doesn’t match stored broker.id 59 in meta.properties
解决办法:需把配置里的参数改为59,再启动
9.添加spark2服务
分配角色
至此,我们的安装就都已经完成啦。
六、安装测试
-
测试spark服务
/var/lib/hadoop-hdfs下创建data文件,内写入’1\n2\n3’
文件上传至hdfs
cd /var/lib/hadoop-hdfs
hadoop fs -put data /user/spark/
启动spark2-shell进入命令行
su hdfs
spark2-shell
val lines = sc.textFile("/user/spark/data")
lines.count
lines.first
能够运行即可,若获取不到资源,可修改下配置:修改yarn的配置
scheduler.maximum-allocation-mb、
nodemanager.resource.memory-mb
改为8GB -
测试kafka服务
使用命令创建topic
kafka-topics --create --zookeeper hadoop01,hadoop02 --replication-factor 1 --partitions 1 --topic test
查看top是否创建成功
kafka-topics --list --zookeeper hadoop01,hadoop02 -
最后检验机器服务
执行jps,看是否和如下图所示一致
其中DFSZFailoverController是我在做了ha之后才有的服务,无需关注,至于如何配置HA,请参考我的其他文章,谢谢。