美文网首页大数据
Centos7.6部署CDH6.1.0大数据平台教程

Centos7.6部署CDH6.1.0大数据平台教程

作者: Firetheworld | 来源:发表于2019-02-21 09:42 被阅读0次

    目录

    一、CDH介绍

    二、CDH6.1.0安装前环境的部署

    三、CDH6.1.0安装

    四、CDH6.1.0的初始化

    五、CDH6.1.0的优化

    六、CDH6.1.0集群安装


    一、CDH介绍:

    CDH(Cloudera's Distribution,including Apache Hadoop).是Haoop众多分支中的一种大数据,简称CDH,基于最稳定版本的Apache Hadoop,有许多补丁、向后移植和更新,Cloudera公司以多种不同的形式进行发布。包括源码和二进制tar文件,、RPM等等。CDH是Apche2.0许可下发布的自由软件,用户可以直接从官方https://www.cloudera.com/上获取。

    CDH6.1.0支持如下组件:

    组件名称 用途
    Zookeeper Apache ZooKeeper 是用于维护和同步配置数据的集中服务。
    HDFS HDFS是 Hadoop 应用程序使用的主要存储系统。
    yarn Apache Hadoop MapReduce 2.0 (MRv2) 或 YARN 是支持 MapReduce 应用程序的数据计算框架。依赖HDFS服务。
    HBase 支持随机读/写访问的Hadoop数据库(HBase是一个分布式、面向列的开源数据库,)
    Hive 在大数据集合上的类SQL查询和表。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
    impala Impala是一个新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。
    solr Solr是一个分布式服务,用于编制存储在 HDFS 中的数据的索引并搜索这些数据。
    spark Spark是强大的开源并行计算引擎,基于内存计算,速度更快;接口丰富,易于开发;集成SQL、Streaming、GraphX、MLlib,提供一栈式解决方案。
    flume 高可靠、可配置的数据流集合。
    storm Storm是一个分布式的、容错的实时计算系统。
    kafka Kafka是一种高吞吐量的分布式发布订阅消息系统。
    Hue 可视化Hadoop应用的用户接口框架和SDK。。
    Sqoop 以高度可扩展的方式跨关系数据库和HDFS移动数据
    oozie Oozie是一种框架,是用于hadoop平台的作业调度服务。
    Avro 数据序列化:丰富的数据结构,快速/紧凑的二进制格式和RPC。
    Crunch Java库,可以更轻松地编写,测试和运行MR管道。
    DataFu 用于进行大规模分析的有用统计UDF库。
    Mahout 用于群集,分类和协作过滤的库。
    Parquet 在Hadoop中提供压缩,高效的列式数据表示。
    Pig 提供使用高级语言批量分析大型数据集的框架。
    MapReduce 强大的并行数据处理框架。
    Pig 数据流语言和编译器
    Sqoop 利用集成到Hadoop的数据库和数据仓库
    Sentry 为Hadoop用户提供精细支持,基于角色的访问控制。
    Kudu 完成Hadoop的存储层,以实现对快速数据的快速分析。

    二、CDH6.1.0安装前环境的部署

    CDH的部署方式:联网安装,离线包安装。

    1、CM6.1.0以及CDH6.1.0的安装:

    系统环境:

    • 主机规划:]
    主机名 角色 IP地址 用途 配置
    Centos210.com 主节点 10.18.223.210 CM、Cloudera Server、mysql 8C/16G/150G
    Centos151.com 从节点 10.18.223.151 Cloudera Agent 8C/16G/150G
    Centos239.com 从节点 10.18.223.239 Cloudera Agen 8C/16G/150G
    Centos65.com 从节点 10.17.87.65 Cloudera Agen 8C/16G/150G

    PS:主机的内存最好在10G以上,才能保证环境的正常运行。

    2、提前下载相关的RPM安装包以及封装的组件的Parcel包。

    Cloudera Manager以及相关依赖环境、jdk、agent以及server的下载地址:

    • cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
    • cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
    • cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
    • cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm
    • oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

    3、在主节点上配置Cloudera Manager仓库,便于从节点的agetn的安装(添加存储库的时候会用到)。

     yum -y install httpd createrepo
    systemctl start httpd && systemctl enable httpd
    cd /var/www/html/cloudera-repos/ && createrepo .  #生成RPM元数据:
    
    ll /var/www/html/cloudera-repos/
    
    cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm  
    cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm    
    cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm 
    cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm    
    oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
    repodata
    

    4、Centos7.6版本下的CDH6.1.0二进制Parcel包下载地址(下载与系统匹配的包):https://archive.cloudera.com/cdh6/6.1.0/parcels/

    • CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel
    • CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256
    • manifest.json

    5、每台服务器进行系统环境设置:

    ①、分别给每台服务器修改主机名:
    hostnamectl set-hostname cdh210.com
    hostnamectl set-hostname cdh151.com
    hostnamectl set-hostname cdh239.com
    hostnamectl set-hostname cdh65.com

    ②、每台服务器分别把主机名与ip对应关系写进/etc/hosts上。

    # cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    10.18.223.151 cdh151.com
    10.18.223.239 cdh239.com
    10.18.223.210 cdh210.com
    10.17.87.65 cdh65.com
    

    ③、每台服务器永久关闭防火墙、selinux:

    systemctl stop firewalld.service                #关闭防火墙
    systemctl disable firewalld.service             #设置防火墙关闭启动
    setenforce 0                                    #临时关闭selinux
    sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #永久关闭selinux
    

    ④、每台服务器配置ntp服务,添加时间服务器,并启动时间服务器,开机启动,写入硬件时钟:

    #yum -y install ntp
    #sed -i 's/server 0.centos.pool.ntp.org iburst/#server 0.centos.pool.ntp.org iburst/g' #/etc/ntp.conf     
    #sed -i 's/server 1.centos.pool.ntp.org iburst/#server 1.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
    #sed -i 's/server 2.centos.pool.ntp.org iburst/#server 2.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
    #sed -i 's/server 3.centos.pool.ntp.org iburst/#server 3.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
    #sed  -ie 's/#server 3.centos.pool.ntp.org iburst/#server 3.centos.pool.ntp.org iburst \nserver 10.17.87.8/g' /etc/ntp.conf 
    #systemctl restart ntpd && systemctl enable ntpd && ntpq -p  && hwclock -r
    

    ⑤、安装python2.7(centos7.6默认安装python2.7)

    # python --version
    Python 2.7.5
    

    ⑥、设置主节点服务器免密码登陆从节点服务器

    # ssh-keygen -t rsa
    

    一路回车,生成无密码的密钥对。然后将公钥添加到认证文件中:

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    

    设置ahthorized_keys的访问权限,并发送到所有从节点服务器上

    # chmod 600 ~/.ssh/authorized_keys
    # scp ~/.ssh/authorized_keys root@10.17.87.65:~/.ssh/
    # scp ~/.ssh/authorized_keys root@10.18.223.239:~/.ssh/
    # scp ~/.ssh/authorized_keys root@10.17.87.65:~/.ssh/
    # scp ~/.ssh/authorized_keys root@10.18.223.151:~/.ssh/
    

    ps:发送公钥到从节点上,进行ssh访问,如果需要密码说明发送没成功,有可能是从节点上没有创建 ~/.ssh/ 目录,导致不成功,创建该目录即可。

    ⑦、创建/opt/cloudera/parcel-repo/,并将下载的Parcels放到主节点上的/opt/cloudera/parcel-repo/中,
    提前把下载的CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256重命名为:CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256

    [root@cdh210 parcel-repo]# ll
    CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel  
    CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha    
    

    三、CDH6.1.0的安装:

    1、主节点安装repo,并导入GPG key:
    #wget https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
    #rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera
    
    2、主节点上按照如下顺序进行JDK、CM、server、agent安装以及agent的安装。
    # yum -y install oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm 
    # yum -y install  cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm  
    # yum -y install cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm 
    # yum -y install  cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
    
    3、数据库5.6安装:
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    yum install mysql-server
    systemctl start mysqld
    systemctl enable mysqld
    

    初始化Mysql

    /usr/bin/mysql_secure_installation
    

    回车-Y-设置密码-再次设置密码-Y-N-Y-Y

    4、备份数据库配置文件,并修改数据库的配置。
    # cp /etc/my.cnf{,.bak}
    
    vi /etc/my.cnf
    
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    transaction-isolation = READ-COMMITTED
    # Disabling symbolic-links is recommended to prevent assorted security risks;
    # to do so, uncomment this line:
    symbolic-links = 0
    key_buffer_size = 32M
    max_allowed_packet = 32M
    thread_stack = 256K
    thread_cache_size = 64
    query_cache_limit = 8M
    query_cache_size = 64M
    query_cache_type = 1
    max_connections = 550
    #expire_logs_days = 10
    #max_binlog_size = 100M
    #log_bin should be on a disk with enough free space.
    #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
    #system and chown the specified folder to the mysql user.
    log_bin=/var/lib/mysql/mysql_binary_log
    #In later versions of MySQL, if you enable the binary log and do not set
    #a server_id, MySQL will not start. The server_id must be unique within
    #the replicating group.
    server_id=1
    binlog_format = mixed
    read_buffer_size = 2M
    read_rnd_buffer_size = 16M
    sort_buffer_size = 8M
    join_buffer_size = 8M
    # InnoDB settings
    innodb_file_per_table = 1
    innodb_flush_log_at_trx_commit = 2
    innodb_log_buffer_size = 64M
    innodb_buffer_pool_size = 4G
    innodb_thread_concurrency = 8
    innodb_flush_method = O_DIRECT
    innodb_log_file_size = 512M
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    sql_mode=STRICT_ALL_TABLES
    
    5、安装MySQL JDBC Driver
    #wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
    #tar zxvf mysql-connector-java-5.1.46.tar.gz
    #mkdir -p /usr/share/java/
    #cd mysql-connector-java-5.1.46
    #cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
    
    6、给mysql数据库创建需要用到的库:scm、amon、rman、hue、metastore、sentry、nav、navms、oozie、hive
    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
    CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
    CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
    CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
    CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
    CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
    CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
    CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive@123';
    flush privileges;
    
    7、建立CM的数据库:

    如果数据库和CM在一台服务器上
    ···

    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

    Enter SCM password: #输入SCM的密码
    写入如下:
    JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
    Verifying that we can write to /etc/cloudera-scm-server
    Creating SCM configuration file in /etc/cloudera-scm-server
    Executing: /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
    [main] DbCommandExecutor INFO Successfully connected to database.
    All done, your SCM database is configured correctly!
    ···

    8、启动CM服务:
    # systemctl start cloudera-scm-server
    

    四、CDH6.1.0的初始化

    1、登陆CDH6.1.0

    http://<server_IP>:7180
    用户名:admin
    密码:admin


    cdh登陆界面
    2、安装步骤:

    ①、欢迎界面--ACCESS LIENCSE--选择免费版本,完成。


    选择版本

    ②、再次进入安装步骤(添加源与集群安装agent)
    欢迎(继续)
    跳过Auto-TLS以自动创建证书:(后面配置麻烦,如果不开启https,可以跳过此项)
    添加主机(由于我已经进行该主机的添加,因此没法重复添加):


    从节点添加

    ③、添加存储:


    添加源以及Parcel包

    可以使用Public Cloudera Repo(需要联网,下载会慢点),
    也可以直接使用搭建的存储库:http://10.18.223.210/cloudera-repos/

    存储库的搭建:
    备份其他repo,并在各个节点上创建repo文件:

    # mv /etc/yum.repo,d/* /etc/yum.bak/
    cd /etc/yum.repo.d/  && vi cloudera-manager.repo
    

    添加如下内容:

    [cloudera-manager]
    name=Cloudera Manager 6.0.1
    baseurl=http://10.18.223.210/cloudera-repos/
    gpgcheck=0
    enabled=1
    

    Parcel的选择,如果按照要求将下载的Parcels放到主节点上的/opt/cloudera/parcel-repo/中,会出现CDH6.1.0,如果没有,点击更多选项进行查看路径的选择。

    ④JDK的安装,由于我们在上面已经进行JDK的安装,此步骤直接继续(不勾选)。
    输入主机的凭证--自动安装Agent。(安装Agent中遇到无法安装的问题,有可能由于缺少rpm依赖包、主机之间无法通行)--安装Parcels。

    五、CDH6.1.0优化:

    1、虚拟内存设置

    Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
    永久解决

    sysctl -w vm.swappiness=0
    echo vm.swappiness = 0 >> /etc/sysctl.conf
    
    2、大内存页设置

    大内存页禁用

    echo never>/sys/kernel/mm/transparent_hugepage/defrag
    echo never>/sys/kernel/mm/transparent_hugepage/enabled
    

    六、CDH6.1.0集群安装

    1、选择服型,我的业务类型选择了,Operation Database。也可以自定义选择自己所需要的服务,一般情况下,HDFS Hive Hue Yanr Zookeeper HBase即可满足要求。
    选择服务
    2、角色分配:选择服务后,CDH会自动给节点进行角色分配,也可以自定义调整。
    角色分配
    3、数据库设置,不同组件之间拥有不同的库,我们在进行数据库安装的时候已经进行数据库的库的创建,现在输入进去即可使用。

    到此,CDH集群的安装已经基本完成。

    如果部署失败,卸载CDH的环境重新进行部署。

    systemctl stop  cloudera-scm-server
    systemctl stop  cloudera-scm-agent
    yum -y remove 'cloudera-manager-*'
    yum clean all
    

    到此CDH6.1.0的部署结束,登陆界面进行组建的部署。

    相关文章

      网友评论

        本文标题:Centos7.6部署CDH6.1.0大数据平台教程

        本文链接:https://www.haomeiwen.com/subject/qxkcyqtx.html