Centos7.6部署CDH6.1.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 [email protected]:~/.ssh/
# scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
# scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
# scp ~/.ssh/authorized_keys [email protected]:~/.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://: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大数据平台教程)