一、概述

Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。

二、环境

| 序号 | IP地址 | 主机名 | 系统版本 | 磁盘 | | 1 | 192.168.10.62 | cdh1 | CentOS Linux release 7.2.1511 (Core) | 30G | | :—-: | :—-: | :—-: | —- | :—- | | 2 | 192.168.10.63 | cdh2 | CentOS Linux release 7.2.1511 (Core) | 30G | | 3 | 192.168.10.64 | cdh3 | CentOS Linux release 7.2.1511 (Core) | 50G | | 4 | 192.168.10.65 | cdh4 | CentOS Linux release 7.2.1511 (Core) | 50G | | 5 | 192.168.10.66 | cdh5 | CentOS Linux release 7.2.1511 (Core) | 30G | | | | | | | | 6 | 远程连接工具: |
| MobaXterm v20.0 | | | | | | | | | 7 | cdh_version | | cdh5.16.2 | | | 8 | cm_version | | cm5.16.2 | | | 9 | mysql-connector-java_version | | mysql-connector-java-5.1.27-bin.jar | |


注:如果要为主节点分配更多角色,建议主节点内存至少70-90个G

三、基础环境部署

0 关闭防火墙(所有节点)

  1. #关闭防火墙
  2. systemctl stop firewalld.service
  3. #关闭防火墙开机自启
  4. systemctl disable firewalld.service
  5. #查看防火墙状态
  6. systemctl status firewalld.service

1 修改主机名(所有节点)

  1. #修改第一台主机
  2. hostnamectl set-hostname cdh1

修改主节点后,从节点照做

  1. #修改第二台主机
  2. hostnamectl set-hostname cdh2
  3. #修改第三台主机
  4. hostnamectl set-hostname cdh3
  5. #修改第四台主机
  6. hostnamectl set-hostname cdh4
  7. #修改第五台主机
  8. hostnamectl set-hostname cdh5

2 配置节点ip、hostname映射(所有节点)

  1. vi /etc/hosts
  1. 192.168.10.62 cdh1
  2. 192.168.10.63 cdh2
  3. 192.168.10.64 cdh3
  4. 192.168.10.65 cdh4
  5. 192.168.10.66 cdh5
  1. #重启
  2. reboot

3 配置免密码登录(cdh1)

  1. # 生成公钥和私钥 三次回车
  2. ssh-keygen
  3. # 复制公钥和私钥
  4. ssh-copy-id cdh1
  5. ssh-copy-id cdh2
  6. ssh-copy-id cdh3
  7. ssh-copy-id cdh4
  8. ssh-copy-id cdh5

4 禁用SELinux(所有节点)

SELinux就是Security-Enhanced Linux的简称,安全加强的linux。传统的linux权限是对文件和目录的 owner, group和other的rwx进行控制,而SELinux采用的是委任式访问控制,也就是控制一个进程对具体文件系统上面的文件和目录的访问,SELinux规定了很多的规则,来决定哪个进程可以访问哪些文件 和目录。虽然SELinux很好用,但是在多数情况我们还是将其关闭,因为在不了解其机制的情况下使用 SELinux会导致软件安装或者应用部署失败。

SELinux临时关闭

  1. setenforce 0

修改/etc/selinux/config,重启生效

  1. vi /etc/selinux/config
  1. #修改
  2. SELINUX=disabled
  3. SELINUXTYPE=targeted

检查是否修改成功

  1. cat /etc/selinux/config

1 禁用SELinux.png

5 设置swap空间(所有节点)

  1. sysctl vm.swappiness=1
  2. echo 1 > /proc/sys/vm/swappiness

Cloudera建议将交换空间设置为1,过多的交换空间会引起GC耗时的激增。

6 关闭透明大页面(所有节点)

Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。
1: 标准大页(Huge Pages)是从Linux Kernel 2.6后被引入的。目的是使用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
2: 透明大页面(Transparent Huge Pages)缩写为THP,这个是RHEL 6开始引入的一个功能。这两者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。目前透明大页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。ORACLE官方不建议在使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 时开启透明大页(THP), 因为透明大页存在 一些问题:
1.在RAC环境下 透明大页(Transparent HugePages )会导致异常节点重启和性能问题;
2.在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题;

  1. echo never > /sys/kernel/mm/transparent_hugepage/defrag cat /sys/kernel/mm/transparent_hugepage/defrag
  2. echo never > /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/enabled

配置/etc/rc.d/rc.local

  1. vi /etc/rc.d/rc.local

文件末添加

  1. if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never >
  2. /sys/kernel/mm/transparent_hugepage/enabled
  3. fi
  4. if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never >
  5. /sys/kernel/mm/transparent_hugepage/defrag
  6. fi
  1. cat /etc/rc.d/rc.local
  2. chmod +x /etc/rc.d/rc.local
  3. ls -l /etc/rc.d | grep rc.local

2 关闭透明大页面.png

7 设置用户最大可打开文件数,进程数,内存占用**(所有节点)**

  1. vi /etc/security/limits.conf
  1. * soft nofile 32728
  2. * hard nofile 1024999
  3. * soft nproc 65535
  4. * hard noroc unlimited
  5. * soft memlock unlimited
  6. * hard memlock unlimited

8 安装ntp时间同步

在Redhat7.x的操作系统上,已经默认的安装了chrony,我们这里先卸载chrony,然后安装ntp。使用 ntp来配置各台机器的时钟同步,将cdh1(192.168.10.62)服务作为本地ntp服务器,其它4台服务器与其保持同步。
卸载chrony(所有节点)

  1. yum -y remove chrony

安装ntp(所有节点)

  1. yum -y install ntp

cdh1机器配置时钟与自己同步(cdh1)

  1. vi /etc/ntp.conf
  1. server 127.127.1.0
  2. fudge 127.127.1.0 stratum 10

修改如图
8 修改主节点ntp.png
其他节点时间与cdh1同步,配置如下(除cdh1以外其他节点)

  1. vi /etc/ntp.conf
  1. server 192.168.10.62

8 修改节点ntp.png
重启ntp服务(所有节点)

  1. #启动ntp服务
  2. systemctl start ntpd
  3. #设置开机自动启动
  4. systemctl enable ntpd
  5. #查看ntp服务状态
  6. systemctl status ntpd
  1. #重启节点
  2. reboot

查看

  1. ntpq -p
  2. date

9 查看时间.png

四、安装

0 配置本地yum(cdh1)

  1. #挂载centos7镜像
  2. mount /dev/cdrom /mnt/
  3. #删除系统自带的源
  4. rm -rf /etc/yum.repos.d/*
  5. #新建一个本地yum源
  6. cat >> /etc/yum.repos.d/local.repo << EOF
  7. [centos]
  8. name=centos
  9. baseurl=file:///mnt
  10. gpgcheck=0
  11. EOF
  12. #验证
  13. yum repolist

1 启动httpd(所有节点)

下载:

  1. yum -y install httpd

启动服务

  1. #启动httpd服务
  2. systemctl start httpd
  3. #设置开机自动启动
  4. systemctl enable httpd
  5. #查看httpd服务状态
  6. systemctl status httpd

image.png
http服务可以帮助我们传输文件,默认静态资源的目录为/var/www/html

2 centos源配置为http方式获取(cdh1)

  1. #在http服务的静态资源目录创建centos目录
  2. mkdir /var/www/html/centos
  3. #将centos的镜像文件复制到centos目录
  4. cp -rvf /mnt/* /var/www/html/centos/
  5. #可以通过http访问了
  6. http://192.168.10.62/centos/
  7. #修改cdh-1的本地centos源的配置
  8. vi /etc/yum.repos.d/local.repo
  9. baseurl=http://cdh1/centos
  10. #取消挂载
  11. umount /dev/cdrom /mnt

3 其他节点配置(cdh2,cdh3,cdh4,cdh5)

  1. cat >> /etc/yum.repos.d/local.repo << EOF
  2. [centos]
  3. name=centos
  4. baseurl=http://cdh1/centos
  5. gpgcheck=0
  6. EOF
  7. #验证
  8. yum repolist

4 配置CM(cdh1)

注意:CDH的版本一定要和CM的版本对应
上传cdh5.16.2、cm5.16.2至cdh1:home改名为cdh、cm目录下

  1. #创建http服务器静态文件目录(所有节点)
  2. mkdir /var/www/html/
  3. cd /home
  4. #将cdh和cm的包移动到创建目录下
  5. mv cm cdh /var/www/html/
  6. #将cm的包分发给其他节点
  7. scp -r cm root@cdh1:/var/www/html

制作CM源生成repodata文件,需要用到createrepo包(cdh1)

  1. #安装
  2. yum install -y createrepo
  3. #进入到cm的rpm包存放目录
  4. cd /var/www/html/cm
  5. # 生成repodata文件夹
  6. createrepo .

5 配置yum源(所有节点)

  1. cat >> /etc/yum.repos.d/cm.repo << EOF
  2. [CM]
  3. name=cm
  4. baseurl=http://cdh1/cm/
  5. gpgcheck=0
  6. EOF
  7. #验证
  8. yum repolist

image.png

6 安装依赖(所有节点)

  1. yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse

7 安装Cloudera Manager和Cloudera Agent(cdh1)

  1. #安装JDK
  2. yum -y install oracle-j2sdk1.7-1.7.0+update67-1
  3. #安装cloudera-manager
  4. yum install -y cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2 postgresq-server

8 安装Mariadb

  1. yum -y install mariadb
  2. yum -y install mariadb-serve

启动并配置Mariadb

  1. #启动
  2. systemctl start mariadb
  3. #查看状态
  4. systemctl status mariadb
  5. #设置开机自动启动
  6. systemctl enable mariadb
  7. #配置mariaDB
  8. /usr/bin/mysql_secure_installation
  9. #回车 一直y 设置密码:password

image.png

建立CM,Hive等需要的表

  1. mysql -u root -p
  2. # 输入密码,执行以下语句
  3. create database metastore default character set utf8;
  4. CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
  5. GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';
  6. FLUSH PRIVILEGES;
  7. create database cm default character set utf8;
  8. CREATE USER 'cm'@'%' IDENTIFIED BY 'password';
  9. GRANT ALL PRIVILEGES ON cm. * TO 'cm'@'%';
  10. FLUSH PRIVILEGES;
  11. create database am default character set utf8;
  12. CREATE USER 'am'@'%' IDENTIFIED BY 'password';
  13. GRANT ALL PRIVILEGES ON am. * TO 'am'@'%';
  14. FLUSH PRIVILEGES;
  15. create database rm default character set utf8;
  16. CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
  17. GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%';
  18. FLUSH PRIVILEGES;
  19. create database hue default character set utf8;
  20. CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
  21. GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';
  22. FLUSH PRIVILEGES;
  23. create database oozie default character set utf8;
  24. CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
  25. GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';
  26. FLUSH PRIVILEGES;
  27. create database sentry default character set utf8;
  28. CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';
  29. GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';
  30. FLUSH PRIVILEGES;
  31. create database nav_ms default character set utf8;
  32. CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';
  33. GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';
  34. FLUSH PRIVILEGES;
  35. create database nav_as default character set utf8;
  36. CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';
  37. GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';
  38. FLUSH PRIVILEGES;
  39. show databases;

image.png
image.png

9 初始化管理节点(cdh1)

1 复制mysql的jdbc驱动包到/usr/share/java目录

  1. #创建/usr/share/java目录
  2. mkdir -p /usr/share/java
  3. #复制jar包到/usr/share/java下
  4. cp mysql-connector-java-5.1.27-bin.jar /usr/share/java/
  5. #改名为mysql-connector-java.jar
  6. mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

2 初始化数据库

  1. /usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password

10 安装agent节点(cdh1以外节点安装)

  1. #安装jdk
  2. yum install -y oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
  3. #安装agent
  4. yum install cloudera-manager-daemons cloudera-manager-agent -y

11 修改配置文件(所有节点)

修改Cloudera Agent配置文件/etc/cloudera-scm-agent/config.ini,配置server_host为主节点cdh-1

  1. #通过vi命令修改
  2. vi /etc/cloudera-scm-agent/config.ini
  3. server_host=cdh1

12 配置JAVA_HOME(所有节点)

到jdk路径下复制根路径,不清楚在哪里可以使用which java查看
image.png

  1. vi /etc/profile
  2. export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
  3. export PATH=$PATH:$JAVA_HOME/bin
  4. #保存退出后,并重新载入profile配置
  5. source /etc/profile

五、启动

1 启动Cloudera Manager(cdh1)

在主节点启动Cloudera Manager

  1. #启动
  2. systemctl start cloudera-scm-server
  3. #设置开机自启
  4. systemctl enable cloudera-scm-server

2 启动Cloudera Agent(所有节点)

  1. #启动
  2. systemctl start cloudera-scm-agent
  3. #开机自启
  4. systemctl enable cloudera-scm-agent

六、使用

0 访问

网页访问http://192.168.10.63:7180
用户名:admin
密码都是:admin
image.png
接受协议
image.png
选择60天试用版本
image.png
继续
image.png
image.png
点击搜索后,继续到这一步
image.png
image.png

1 添加自定义的Parcel存储库URL

image.png
安装选定 parcel
image.png
安装成功
image.png

2 主机正确性检查

主机正确性检查,确保全部通过后点完成
image.png
组件安装
选择自己要安装的组件
image.png
例:lmpala
节点角色分配
image.png

3 数据库连接测试

测试数据库连接
image.png
继续
image.png
集群设置成功点击完成
image.png

参考搭建文档网页链接:https://blog.csdn.net/qq_40856560/article/details/109007683
自带搭建文档笔记:
CDH集群安装.pdf