CDH完全安装文档(含Spark2、)

创作不易,请勿抄袭,转载请注明出处。如有疑问,请加微信 wx15151889890,谢谢。
[本文链接:]https://blog.csdn.net/wx740851326/article/details/https://blog.csdn.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

二、修改操作系统配置

  1. 关闭selinux

vi /etc/selinux/configvi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled

  1. 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    service iptables stop
    chkconfig iptables off

  2. 安装必须的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

  3. 移除自带的openjdk

    rpm -qa |grep jdk
    yum -y remove 《》 #移除包

  4. 移除自带的mariadb

    rpm -qa |grep mariadb
    yum -y remove 《》 #移除包

  5. 修改hosts文件

    vi /etc/hosts
    配置主机名ip地址

  6. 设置交换空间为0

    echo “vm.swappiness=0” >> /etc/sysctl.conf
    提升hdfs的读写效率

  7. 配置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

  8. 配置ntp服务器

    vi /etc/ntp.conf
    master上 配置server 127.127.1.0
    slaver上配置 server

  9. 安装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检验安装情况

  10. 解压cdh文件至/var/www/html/下(master)

tar -zvxf cdh5.13.3-centos7.tar.gz
tar -zvxf cm5.13.3-centos7.tar.gz
  1. 配置本地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

  2. 配置服务开机自启动

    service ntpd start
    chkonfig ntpd on
    service iptables stop
    chkconfig iptables off
    service httpd start
    chkconfig httpd on

  3. 机器重启

  4. 检查ntp,http服务是否启动成功

  5. 检查ntp服务是否正常
    ntpq -pntpq -p

三、数据及CDH服务安装

  1. 安装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;

  2. 安装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
  1. 启动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

  1. 访问10.16.8.67:7180
    此时需要数据用户名密码,用户名是admin,密码输入即会为初始密码。

  2. 页面1勾选方框同意用户协议

  3. 页面2选择free 点击继续
    CDH完全安装文档(含Spark2、)

  4. 配置主机地址 输入主机名称CDH完全安装文档(含Spark2、)

  5. 全部勾选,继续
    CDH完全安装文档(含Spark2、)

  6. choose method 选择 use packages
    version of cdh选择 cdh5
    select 都选择 custom repository
    url输入的是yum配置的地址

  7. 不勾选 install oracle java se… 继续
    此处为kerber安装所必须的java安全包,没有kerberos不需要安装,有kerberos初次安装也不要安装,等环节装好再启用kerberos
    CDH完全安装文档(含Spark2、)

  8. 不勾选single… 直接继续
    CDH完全安装文档(含Spark2、)

  9. root安装 所有主机接受相同的root密码 输入root的密码 继续

  10. 等待安装完成,选择core with spark
    CDH完全安装文档(含Spark2、)

  11. 角色分配

分配角色 Hdfs角色分配如下:
CDH完全安装文档(含Spark2、)
Hive角色分配如下:
CDH完全安装文档(含Spark2、)
Hue角色分配入下:
CDH完全安装文档(含Spark2、)
Cloudera Managerment service角色分配如下:
CDH完全安装文档(含Spark2、)
Oozie spark yarn角色分配如下:
CDH完全安装文档(含Spark2、)
Zookeeper角色分配如下:
CDH完全安装文档(含Spark2、)

说明:
主角色由master承担
所有机器都是datanode
Namenode首次分配在master上,ha之后分配到slave1上
所有机器都安装zkserver
Gateway的角色在所有主机上都要有
Cdh的监控服务安装到master
  1. 继续
    指定元数据管理库
    CDH完全安装文档(含Spark2、)
    CDH完全安装文档(含Spark2、)
    CDH完全安装文档(含Spark2、)

五、安装spark,kafka

  1. 将parcel文件都放在master主机的/opt/cloudera/parcel-repo下(.torrent文件会自动生成,不用管)
    CDH完全安装文档(含Spark2、)
  2. 将SPARK2_ON_YARN-2.3.0.cloudera3.jar文件放在master主机的/opt/cloudera/csd下
  3. 在cdh的parcel包管理界面刷新,依次分配和**CDH5,kafka,Spark2(必须先**CDH5)
    CDH完全安装文档(含Spark2、)
  4. 在各主机配置内修改java_home为/usr/java/jdk1.8(因为spark2需要jdk1.8支持,cdh自带的为1.7)
    CDH完全安装文档(含Spark2、)
    CDH完全安装文档(含Spark2、)
  5. 重新部署配置,然后重启(**或者配置修改后都需如此操作)
    CDH完全安装文档(含Spark2、)
  6. 重启服务

重启服务才能看到Spark2服务

service cloudera-scm-server restart
service cloudera-scm-agent restart
  1. 重启完成后重新登录http://master:7180
  2. 添加kafka服务
    CDH完全安装文档(含Spark2、)

CDH完全安装文档(含Spark2、)

第一次可能会启动失败,失败后直接在首页点击kafka的小扳手查看原因,点击配置修改配置,再次启动kafka

CDH完全安装文档(含Spark2、)
CDH完全安装文档(含Spark2、)
CDH完全安装文档(含Spark2、)
修改完成后,若启动失败,则去查看日志,很有可能是id问题:
CDH完全安装文档(含Spark2、)
查看角色日志报错:kafka.common.InconsistentBrokerIdException: Configured broker.id 33 doesn’t match stored broker.id 59 in meta.properties
解决办法:需把配置里的参数改为59,再启动
CDH完全安装文档(含Spark2、)

9.添加spark2服务
分配角色
CDH完全安装文档(含Spark2、)
CDH完全安装文档(含Spark2、)

至此,我们的安装就都已经完成啦。

六、安装测试

  1. 测试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

  2. 测试kafka服务
    使用命令创建topic
    kafka-topics --create --zookeeper hadoop01,hadoop02 --replication-factor 1 --partitions 1 --topic test
    查看top是否创建成功
    kafka-topics --list --zookeeper hadoop01,hadoop02

  3. 最后检验机器服务
    执行jps,看是否和如下图所示一致
    CDH完全安装文档(含Spark2、)
    其中DFSZFailoverController是我在做了ha之后才有的服务,无需关注,至于如何配置HA,请参考我的其他文章,谢谢。