后来我使用了CM5.13.3spark2kafka3.1.1解决了很多疑难杂症——搭建

主机系统

centos7系统安装(5台)

安装前准备

JDK
jdk-8u191-linux-x64.tar.gz
scala-2.11.8.tgz

ClouderaManager安装包
cloudera-manager-centos7-cm5.13.3_x86_64.tar.gz

CDH相关包
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha1
manifest.json

SPARK2相关包
SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel
SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel.sha
manifest.json

KAFKA相关包
KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel
KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha

驱动包
mysql-connector-java-5.1.47-bin.jar

Spark-Kafka的streaming包
spark-streaming-kafka-0-10-assembly_2.11-2.3.0.jar

各主机系统设置(按序操作)

固定ip、DNS、禁用ipv6(所有节点)
永久性改主机名(适用于linux7)
[root@centos ~]# hostnamectl set-hostname xxx.dffl.com

修改主机映射(所有节点)
[root@centos ~]# vim /etc/hosts

 127.0.0.1    localhost
 本机IP        xxx.dffl.com        #本机IP   主机名
 本机IP        xxx.dffl.com        #集群各主机IP   主机名

关闭防火墙和SELinux(所有节点)
[root@centos ~]# systemctl status firewalld #查看防火墙状态
[root@centos ~]# systemctl stop firewalld #关闭防火墙
[root@centos ~]# systemctl disable firewalld #禁止防火墙开机启动
[root@centos ~]# setenforce 0

修改配置文件让机器重启也生效(所有节点)
[root@centos ~]# vim /etc/sysconfig/selinux

SELINUX=disabled

配置ssh免密码登录:
主程序CM机
[root@centos ~]# cd /root/.ssh
[root@centos ~]# ssh-keygen -t rsa

执行以下命令后,如果提示,就一直按“Enter”键,直至生成公钥
执行完成后会生成两个文文件id_rsa(私钥)、id_rsa.pub(公钥)
把公钥复制到需要免密登录的服务器xx1
[root@centos ~]# scp id_rsa.pub root@xx1.dffl.com:/root/.ssh/authorized_keys_from_xx0

把xx0的公钥内容进行公钥合并
[root@centos ~]# cd /root/.ssh
[root@centos ~]# cat authorized_keys_from_xx0 >> authorized_keys
(说明:如果authorized_keys不存在就会自动创建,如果存在就会追加)

安装jdk1.8(所有节点)
卸载自带openjdk
查询出系统自带的jdk
[root@centos ~]# rpm -qa | grep Java

卸载所有openJDK
[root@centos ~]# rpm -e --nodeps xxx xxx xxx

创建jdk安装目录
[root@centos ~]# mkdir /usr/local/java/latest

解压jdk-8u191-linux-x64.tar.gz到jdk安装目录:
[root@centos ~]# tar -zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/java/latest

配置环境变量
[root@centos ~]# vim /etc/profile

在末尾添加:

export JAVA_HOME=/usr/local/java/latest/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

是配置生效:
[root@centos ~]# source /etc/profile

**ntp时间同步 **
安装ntp服务
[root@centos ~]# yum -y install ntp

以一台主机作为集群的时间服务器(114),其他机器(110-113)跟这台主机进行时间同步
开启114主机的时间服务器服务
开机自动启动
[root@centos ~]# systemctl enable ntpd
开启
[root@centos ~]# systemctl start ntpd

先与远程互联网上的时间服务器进行同步
[root@centos ~]# ntpdate -u ntp.sjtu.edu.cn

将BIOS硬件时钟与系统时间进行同步
[root@centos ~]# hwclock --localtime -w

编辑ntpd配置文件(本次集群未编辑)
[root@centos ~]# vim /etc/ntp.conf

##打开注释
18 restrict 172.21.192.0 mask 255.255.255.0 nomodify notrap
##注释掉
22 #server 0.centos.pool.ntp.org
23 #server 1.centos.pool.ntp.org
24 #server 2.centos.pool.ntp.org
##打开注释
35 server  127.127.1.0     # local clock
36 fudge   127.127.1.0 stratum 10

服务器停机后,系统时间停止,硬件时间正常走,服务器重启后将硬件时间自动同步给系统时间
[root@centos ~]# vim /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes   ###改为yes

服务器启动后,系统同步外界时间,自动同步给硬件时钟
[root@centos ~]# vim /etc/sysconfig/ntpdate

SYNC_HWCLOCK=yes   ###改为yes

其他主机与该主机xxx进行同步:
[root@centos ~]# ntpdate -u xxx

其他主机与该主机xxx进行定时同步(本集群):
[root@centos ~]# crontab -e

*/10 * * * * /usr/sbin/ntpdate -u xxx

并且同时设置BIOS时钟时间与系统时间同步以及开机启动ntpd服务
[root@centos ~]# hwclock --localtime -w
[root@centos ~]# vim /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes   ###改为yes

[root@centos ~]# vim /etc/sysconfig/ntpdate

SYNC_HWCLOCK=yes   ###改为yes

[root@centos ~]# systemctl enable ntpd
[root@centos ~]# systemctl start ntpd

重启
[root@centos ~]# service crond restart && service ntpd restart

设置文件打开数目和用户最大进程数(所有节点)
[root@centos ~]# vim /etc/security/limits.conf

*      soft    nofile         32728
*      hard    nofile         1024567
*      soft    nproc          65535
*      hard    nproc          unlimited
*      soft    memlock        unlimited
*      hard    memlock        unlimited

关闭swap区(所有节点)
避免swap的一种方式是设置swap空间为0
[root@centos ~]# echo "vm.swappiness = 0">> /etc/sysctl.conf (尽量不使用交换分区,注意不是禁用)
刷新SWAP
[root@centos ~]# swapoff -a && swapon -a
生效
[root@centos ~]# sysctl -p

上传安装包
存放于目录/opt/software
解压至/opt/modules

安装mysql
只需要在一台主机(114)上安装即可
注意:1)设置开机自动启动,2)设置用户可以远程访问,3)设置其他主机访问mysql

安装依赖包
[root@centos ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb

CM安装

创建cloudera-manager目录存放安装包
在server主节点上创建
[root@centos ~]# mkdir -p /opt/cloudera-manager

安装包解压
[root@centos ~]# tar -zxf /opt/softwares/cloudera-manager-centos7-cm5.13.3_x86_64.tar.gz -C /opt/cloudera-manager

  • cloudera cm框架安装包目录
  • cm-5.13.3 cm框架本身的配置etc,启动bin,组件库lib

修改agent主机配置文件
[root@centos ~]# vim /opt/cloudera-manager/cm-5.3.6/etc/cloudera-scm-agent/config.ini

server_host=xxx.dffl.com

将安装包分发其他机器
[root@centos ~]# scp -r cloudera-manager/ xxx.dffl.com:/opt/

所有节点创建cloudera-scm用户

[root@centos ~]#useradd \
--system \  ##表示系统用户
--home-dir=/opt/cloudera-manager/cm-5.13.3/run/cloudera-scm-server \  ##指定一个home目录
--no-create-home \  ##不创建用户主目录
--shell=/bin/false \  ##不作为一个登陆用户
--comment "Cloudera SCM User" \
cloudera-scm  ##用户名

检查用户是否已存在
[root@centos ~]# cat /etc/passwd | grep cloudera-scm

放置驱动包
[root@centos ~]# cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/
[root@centos ~]# cp mysql-connector-java-5.1.47-bin.jar /opt/cloudera-manager/cm-5.13.3/share/cmf/lib/

在主节点上初始化CM在mysql中的状态
[root@centos ~]# mysql

--cm数据库
>create database cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--hue数据库
>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--oozie数据库
>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--hive数据库
>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

--授权
>grant all privileges on hive.* to 'scm'@'%' identified by 'cdh' with grant option;
>grant all privileges on hue.* to 'scm'@'%' identified by 'cdh' with grant option;
>grant all privileges on oozie.* to 'scm'@'%' identified by 'cdh' with grant option;

--远程访问
>grant all privileges on *.* to 'root'@'%' identified by 'zaq12wsx' with grant option;
>flush privileges; 

初始化cloudera manager数据库配置
[root@centos ~]# /opt/cm-5.13.3/share/cmf/schema/scm_prepare_database.sh -h <mysql所在主机> mysql cm scm cdh

格式:主机、数据库服务器、数据库名、用户、密码

配置CDH源(hadoop hive等框架的安装包集成)

  • server节点上
    [root@centos ~]# mkdir -p /opt/cloudera/parcel-repo
  • agent节点上
    [root@centos ~]# mkdir -p /opt/cloudera/parcels
    移动源文件
    [root@centos ~]# mv /opt/softwares/CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel* /opt/cloudera/parcel-repo/
    校验码结尾1去掉
    [root@centos ~]# mv CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha1 CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha

更改所有人

  • server主节点
    [root@centos ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
  • agent节点
    [root@centos ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/

启动server及agent进程

  • server主节点
    [root@centos ~]# /opt/cloudera-manager/cm-5.13.3/etc/init.d/cloudera-scm-server start
  • agent节点
    [root@centos ~]# /opt/cloudera-manager/cm-5.13.3/etc/init.d/cloudera-scm-agent start

验证并登录web
确认端口是否被监听
[root@centos ~]# netstat -tlnup | grep 7180
默认用户名和密码为admin

CM登录搭建时警告排除
[root@centos ~]# echo 0 > /proc/sys/vm/swappiness
[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag

挂载进程(不卸载用不到)
[root@centos ~]# umount /opt/cloudera-manager/cm-5.13.3/run/cloudera-scm-agent/process
主机运行状况不良时
[root@centos ~]# rm -rf /opt/cloudera-manager/cm-5.13.3/lib/cloudera-scm-agent/cm_guid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值