本文主要记叙了如何在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-keygen -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 点击继续
  4. 从零开始搭建hadoop集群_hadoop

  5. 配置主机地址 输入主机名称
  6. 从零开始搭建hadoop集群_CDH安装_02

  7. 全部勾选,继续
  8. 从零开始搭建hadoop集群_CDH安装_03

  9. choose method 选择 use packages
    version of cdh选择 cdh5
    select 都选择 custom repository
    url输入的是yum配置的地址
  10. 不勾选 install oracle java se… 继续
    此处为kerber安装所必须的java安全包,没有kerberos不需要安装,有kerberos初次安装也不要安装,等环节装好再启用kerberos
  11. 从零开始搭建hadoop集群_cloudera_04

  12. 不勾选single… 直接继续
  13. 从零开始搭建hadoop集群_CDH_05

  14. root安装 所有主机接受相同的root密码 输入root的密码 继续
  15. 等待安装完成,选择core with spark
  16. 从零开始搭建hadoop集群_CDH安装_06

  17. 角色分配
分配角色 Hdfs角色分配如下:

从零开始搭建hadoop集群_hadoop集群_07


Hive角色分配如下:


从零开始搭建hadoop集群_CDH安装_08


Hue角色分配入下:


从零开始搭建hadoop集群_hadoop_09


Cloudera Managerment service角色分配如下:


从零开始搭建hadoop集群_cloudera_10


Oozie spark yarn角色分配如下:


从零开始搭建hadoop集群_cloudera_11


Zookeeper角色分配如下:


从零开始搭建hadoop集群_cloudera_12

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

五、安装spark,kafka

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

重启服务才能看到Spark2服务

service cloudera-scm-server restart
service cloudera-scm-agent restart
  1. 重启完成后重新登录http://master:7180
  2. 添加kafka服务

从零开始搭建hadoop集群_CDH_13

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

从零开始搭建hadoop集群_cloudera_14


从零开始搭建hadoop集群_CDH安装_15


从零开始搭建hadoop集群_CDH_16


修改完成后,若启动失败,则去查看日志,很有可能是id问题:

从零开始搭建hadoop集群_hadoop_17


查看角色日志报错:kafka.common.InconsistentBrokerIdException: Configured broker.id 33 doesn’t match stored broker.id 59 in meta.properties

解决办法:需把配置里的参数改为59,再启动

从零开始搭建hadoop集群_CDH_18

9.添加spark2服务

分配角色

从零开始搭建hadoop集群_hadoop_19


从零开始搭建hadoop集群_hadoop集群_20

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

六、安装测试

  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,看是否和如下图所示一致
  4. 从零开始搭建hadoop集群_hadoop集群_21

  5. 其中DFSZFailoverController是我在做了ha之后才有的服务,无需关注,至于如何配置HA,请参考我的其他文章,谢谢。


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop