CDH 6.3.2(Cloud Distribution Hadoop)安装部署

安装前准备


a) 虚拟机3-4台(有条件可以用物理机)
最低配置:2核心 4GB内存 40G硬盘
建议配置:2核心 8GB内存 100G硬盘
操作系统:CentOS 7.6
系统镜像:http://isoredirect.centos.org/centos/7/isos/x86_64/

b) Oracle JDK 1.8.0
下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html(需登录Oracle账号)

c) MySQL 5.7 + 版本及驱动
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html (MySQL,方便起见可以下载RPM安装包
驱动地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
d) Cloudera Manager 6.3.1 安装包
下载地址:https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

e) Cloud Distribution Hadoop 6.3.2 安装包
下载地址:https://archive.cloudera.com/cdh6/6.3.2/parcels/

相关安装包已上传百度云,可按需下载:
链接:https://pan.baidu.com/s/1Xgavwp6GE-doeqwCAYbE0g
提取码:ziib

1、创建虚拟机,并安装CentOS 7.6

可选择在Windows Hyper – V 或 VMware 中安装虚拟机,也可使用其他VMM软件,土豪可直接租云主机。
每台虚拟机至少需分配 2核心 4GB内存 40GB硬盘。
如需跑多节点的Zookeeper,Hbase,HDFS,需为每台虚拟机至少分配8GB内存,如需进行一定程度的测试,建议硬盘≥100GB,按需扩容。

本着对开源软件支持的态度,楼主找了台闲置主机安装了PVE裸金属系统,并在上面创建了多台CentOS主机。

安装完毕后, 为方(you)便(qiang)起(po)见(zheng)设置各虚拟机主机名为cdh01-cdh04

hostnamectl set-hostname cdh01
Proxmox VE 中安装 CentOS 7.6

2、设置各虚拟机网卡并重启网络服务

a) 关闭各虚拟机防火墙

关闭防火墙
systemctl stop firewalld.service

禁止开机启动
systemctl disable firewalld.service

查看防火墙状态
firewall-cmd --state

开启防火墙命令
systemctl start firewalld.service

b) 服务器改为静态IP,四台服务器设置为固定的IP。

如在安装虚拟机时已按该方式进行配置,可忽略此步骤
本次实验路由网关为192.168.8.1,各虚机IP依次设为192.168.8.21-192.168.8.24
需改动的配置项:
修改
BOOTPROTO=static
ONBOOT=yes
增加
IPADDR=192.168.8.21
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8

编辑网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=79078afc-d796-494f-8e1b-d6ef28e12535
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.8.21
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8

c) 重启网络服务

service network restart

3、在各服务器配置Hosts,并设置免密登录

a) 在各虚拟机中编辑hosts文件,加入各服务器的IP地址和主机名

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.21 cdh01
192.168.8.22 cdh02
192.168.8.23 cdh03
192.168.8.24 cdh04

b) 在各主机上执行ssh-keygen -t rsa生成公私钥,一路回车即可

ssh-keygen -t rsa

c) 通过ssh-copy-id -i 设置免密登录

ssh-copy-id -i .ssh/id_rsa.pub root@cdh01
ssh-copy-id -i .ssh/id_rsa.pub root@cdh02
ssh-copy-id -i .ssh/id_rsa.pub root@cdh03
ssh-copy-id -i .ssh/id_rsa.pub root@cdh04

4、安装jdk,配置环境变量

在各主机上安装JAVA,方便起见本次实验通过RPM方式进行安装,如使用RPM包安装包进行安装,将会自动添加环境变量

rpm -ivh jdk-8u271-linux-x64.rpm

5、安装并配置MySQL,初始化数据库

a) 安装MySQL

本次实验安装MySQL 5.7,单节点即可,方便起见,安装在主节点(cdh01)

通过rpm -ivh 指令依次安装mysql-community-common、mysql-community-libs、mysql-community-libs-compat、mysql-community-client、mysql-community-server。

b) 修改配置文件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

c) 重启MySQL

service mysqld restart

d) 创建初始化数据库

# scm
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';

# amon
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';

# rman
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';

# hue
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';

# hive
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456';

# sentry
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;   
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';

# nav
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;      
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';

# navms
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';

# oozie
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';

# flush
FLUSH PRIVILEGES;

6、安装CreateRepo,配置CM6本地yum源

a) 在主节点安装Apache Httpd和CreateRepo

yum -y install httpd createrepo

b) 在主节点Apache网站文件夹下创建CM6本地yum源目录cdh6

mkdir /var/www/html/cm6

c) 在本地通过windows powershell上传CDH安装包

也可通过SSH 客户端自带SFTP工具或WinSCP等工具进行快速上传
文件清单:
allkeys.asc
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

scp d:\download\cm6 root@cdh01:/var/www/html/cm6

d) 通过createrepo创建yum安装源

createrepo /var/www/html/cm6/

成功后,cdh6目录下会多出一个repodata文件夹

查看repodata文件夹是否创建

e) 新增Cloud Manager 6.3.1本地Repo

vi /etc/yum.repos.d/cloudera-repo.repo

输入
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.8.21/cm6/
enabled=1
gpgcheck=0

f) 刷新yum源

yum clean all  & yum makecache

7、上传MySQL连接驱动到主节点/usr/share/java/目录并重命名为mysql-connector-java.jar

scp d:\download\mysql-connector-java-5.1.49.jar root@cdh01:/usr/share/java

mv /usr/share/java/mysql-connector-java-5.1.49.jar /usr/share/java/mysql-connector-java.jar

8、修改系统参数信息

 a) 根据官方建议将/proc/sys/vm/swappiness 设置为 10

echo 'vm.swappiness=10' >> /etc/sysctl.conf

b) 启用透明页面压缩设置

vi /etc/rc.local

在末尾加上:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

9、CDH Server主节点(cdh01)安装和配置

yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

完成后,主节点/opt文件夹下会出现cloudera文件夹

10、创建 CDH 6.3.2 安装包缓存

上传 CDH 6.3.2 的parcel文件到主节点/opt/cloudera/parcel-repo文件夹

上传文件清单
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
manifest.json

11、初始化 Cloudera Manager 数据库

执行 scm_prepare_database.sh 初始化数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h<主机名> -u<用户名> -p'<密码>' --scm-host <主机名> <库名> <用户名> <密码>

例:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h192.168.8.21 -uroot -p'123456' --scm-host cdh01 cdh6 root 123456

随后再执行脚本初始化SCM库:

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

12、启动Cloudera Manager Server服务

systemctl start cloudera-scm-server

13、启动Web安装向导

a) 浏览器输入 http://192.168.8.21(主节点IP):7180/
默认用户名密码:admin/admin
登录后出现欢迎页面

欢迎页面

此处直接点 “继续” 进入下一步

b) 勾选许可条款,点击 “继续” 进入下一步

使用许可

c) 选择安装版本,默认 Cloudera Express,点击 “继续” 进入下一步

版本选择

d) 程序员最头疼的起名步骤,输入集群名称后,点击 “继续” 进入下一步

输入集群名称

e) 输入需安装的主机名称和SSH端口号

输入安装主机和SSH端口号

f) 点击搜索并勾选主机,点击 “继续” 进入下一步

点击搜索并勾选主机

g) 输入Cloudera Manager 存储库

填写存储库

安装方法选择 “使用parcel” 如此处未出现6.3.2版本,建议在更多设置中,将远程仓库地址去除,重新上传parcel包后重试,点击 “继续” 进入下一步

h) 由于已经安装Oracle JDK,此处不勾选安装,点击 “继续” 进入下一步

跳过安装 Oracle JDK

i) 输入集群主机的的登陆凭证,点击 “继续” 进入下一步

凭证输入页面

j) 此步进行代理安装,等待全部完成即可,点击 “继续” 进入下一步

安装等待页面
安装成功页面

k) 执行CDH安装包,等待全部完成即可,点击 “继续” 进入下一步

CDH安装

l) CDH集群自检设置,保持默认即可
此处会进行集群环境检查,如有异常,根据提示进行修复,重新检测即可。
检测通过后,点击 “继续” 进入下一步

检查不通过页面
检查通过页面

m) 选择需安装的服务,本次选择HBase、HDFS、Hive、Spark、YARN、Zookeeper,点击 “继续” 进入下一步

CDH组件选择
CDH组件选择

n) 进入角色分配页,按需选择服务所需安装的主机,点击 “继续” 进入下一步

自定义角色分配

o) Hive 和 Report Manager 数据库设置,按图中内容填写后点击 “继续” 进入下一步

配置数据库

p) Hadoop集群配置,默认即可,点击 “继续” 进入下一步

q) 集群初始化,等待处理完毕,点击 “继续” 进入下一步

r) 安装完毕,点击 “完成” 结束安装