从零开始搭建hadoop集群

版权声明:创作不易,请勿抄袭,转载请注明出处。如有疑问,请加微信 wx15151889890,谢谢。 https://blog.csdn.net/wx740851326/article/details/83749163

创作不易,请勿抄袭,转载请注明出处。如有疑问,请加微信 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-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. 配置主机地址 输入主机名称在这里插入图片描述

  5. 全部勾选,继续
    在这里插入图片描述

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

  7. 不勾选 install oracle java se… 继续
    此处为kerber安装所必须的java安全包,没有kerberos不需要安装,有kerberos初次安装也不要安装,等环节装好再启用kerberos
    在这里插入图片描述

  8. 不勾选single… 直接继续
    在这里插入图片描述

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

  10. 等待安装完成,选择core with spark
    在这里插入图片描述

  11. 角色分配

分配角色 Hdfs角色分配如下:
hdfs角色分配
Hive角色分配如下:
hive角色分配
Hue角色分配入下:
在这里插入图片描述
Cloudera Managerment service角色分配如下:
在这里插入图片描述
Oozie spark yarn角色分配如下:
在这里插入图片描述
Zookeeper角色分配如下:
在这里插入图片描述

说明:
主角色由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服务
    在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改完成后,若启动失败,则去查看日志,很有可能是id问题:
在这里插入图片描述
查看角色日志报错:kafka.common.InconsistentBrokerIdException: Configured broker.id 33 doesn’t match stored broker.id 59 in meta.properties
解决办法:需把配置里的参数改为59,再启动
在这里插入图片描述

9.添加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,看是否和如下图所示一致
    在这里插入图片描述
    其中DFSZFailoverController是我在做了ha之后才有的服务,无需关注,至于如何配置HA,请参考我的其他文章,谢谢。

猜你喜欢

转载自blog.csdn.net/wx740851326/article/details/83749163