一.安装版本
---------------------------------------------------------------------------------------------------------------------
linus版本:red hat7.4
cdh版本:6.3.1
java版本:1.8
---------------------------------------------------------------------------------------------------------------------
二.使用介质
---------------------------------------------------------------------------------------------------------------------
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel mysql-connector-java-5.1.47.jar
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm jdk-8u202-linux-x64.tar.gz
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
manifest.json cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
---------------------------------------------------------------------------------------------------------------------
三.搭建前准备工作(默认所有节点都做)
---------------------------------------------------------------------------------------------------------------------
1.配置Ip与主机名映射,命令:vi /etc/hosts:
192.168.80.81 slave1
192.168.80.82 slave2
192.168.80.83 slave3
192.168.80.84 master
2.禁用IPv6:
echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
3.关闭防火墙:
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
4.禁用Selinux:
vi /etc/sysconfig/selinux,改为SELINUX=disabled
5.设置文件打开数量和用户最大进程数:
在文件最后增加以下内容:
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000
6.将redhat7的系统镜像(*.ISO)做为yum源:
https://blog.csdn.net/vinke666/article/details/91345290
7.卸载Centos自带的JDK:
使用sudo rpm -qa|grep jdk 或 sudo rpm -qa|grep java找到自带的jdk,
使用sudo rpm -e --nodeps xxx yyy zzz卸载自带的JDK
8.安装JDK:
1.解压jdk-8u202-linux-x64.tar.gz到一个目录,
2.并将路径填写到/etc/profile文件的最下方:
JAVA_HOME=/apps/jdk1.8.0_202
JRE_HOME=$JAVA_HOME/jre
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME JRE_HOME PATH
3.echo "JAVA_HOME=/app/jdk1.8.0_202" >> /etc/environment
9.将/proc/sys/vm/swappiness 设置为 0 (修改swap空间的swappiness,降低对硬盘的缓存 ):
echo "vm.swappiness=0" >> /etc/sysctl.conf
10.使用ntp同步集群时间:
1.yum install ntp(所有节点)
2.主节点:
vi /etc/ntp.conf:
注释掉这几个
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加以下内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
vi /etc/sysconfig/ntpd 加入下面一句话,用于配置boot时间和系统时间同步
SYNC_HWCLOCK=yes
启动ntpd服务器
sudo service ntpd start
sudo service ntpd status
chkconfig ntpd on
chkconfig --list |grep ntpd
3.从节点:
vi /etc/ntp.conf:
添加以下内容
server master
4.所有节点:
service ntp restart
11.配置免密登录:
1.在所有节点执行ssh-keygen (提示时,直接回车即可)
2.在每个节点的/root/.ssh/下创建authorized_keys文件,将其它节点生成的公钥/root/.ssh/id_rsa.pub的内容放到自己的authorized_keys文件
3.每个节点分别尝试免密连一次其它节点
12.安装mysql数据库(主节点):
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local/mysql/
chown -R mysql:mysql ./
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
cd /etc
rm -rf my.cnf
vi my.cnf
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
记录界面弹出的密码
b_eFbcYEt60n.
service mysql start
./mysql -uroot -p后边跟着上边的密码
set password=password('123456');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
flush privileges;
chkconfig --add mysql
chkconfig mysql on
vi /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
---------------------------------------------------------------------------------------------------------------------
四.安装cdh
---------------------------------------------------------------------------------------------------------------------
1.安装主节点的cdh相关组件:
yum install -y perl
yum install -y psmisc
yum install -y postgresql-server
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
2.配置连接mysql的java驱动:
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
3.创建cdh相关数据库:
mysql -u root -p123456
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
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';
4.初始化cdh的数据库:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456
5.上传大数据服务组件资源包(CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel、manifest.json)到/opt/cloudera/parcel-repo,
创建CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha,
在manifest.json文件中找到CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel对应的hash值,写入CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha文件
给他们赋权:chmod -R guo+wr CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
chmod -R guo+wr CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
chmod -R guo+wr manifest.json
6.在主节点启动server:
systemctl start cloudera-scm-server
7.在所有节点安装agent:
1.yum install -y bind-utils cyrus-sasl-plain cyrus-sasl-gssapi portmap /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python
2.rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
8.修改agent所有的节点配置文件config.ini内容
vi /etc/cloudera-scm-agent/config.ini:
server_host=master (server节点)
9.所有节点启动agent:
systemctl start cloudera-scm-agent
10.进入http://master:7180进行集群和服务的安装
---------------------------------------------------------------------------------------------------------------------
一.异常处理
---------------------------------------------------------------------------------------------------------------------
问题:启动server失败
[root@iZ8vbi6snaln13lk0b9ybiZ cloudera]# systemctl status cloudera-scm-server
a—? cloudera-scm-server.service - Cloudera CM Server Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Thu 2020-04-09 13:55:48 CST; 5s ago
Process: 2900 ExecStart=/opt/cloudera/cm/bin/cm-server (code=exited, status=1/FAILURE)
Process: 2897 ExecStartPre=/opt/cloudera/cm/bin/cm-server-pre (code=exited, status=0/SUCCESS)
Main PID: 2900 (code=exited, status=1/FAILURE)
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service: main process exited, code=exited, status=1/FAILURE
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Unit cloudera-scm-server.service entered failed state.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service failed.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service holdoff time over, scheduling restart.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Stopped Cloudera CM Server Service.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: start request repeated too quickly for cloudera-scm-server.service
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Failed to start Cloudera CM Server Service.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: Unit cloudera-scm-server.service entered failed state.
Apr 09 13:55:48 iZ8vbi6snaln13lk0b9ybiZ systemd[1]: cloudera-scm-server.service failed.
解决办法:
[root@master cloudera-scm-server]# mkdir -p /usr/java
[root@master cloudera-scm-server]# ln -s /app/jdk1.8.0_202 /usr/java/default
1 异常1
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.3 (Final)”且版本为“2.6.32-279.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它
(每个节点)
解决方案
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /etc/rc.local
------------------------------------------
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并将上面的两条命令写入开机自启动
vim /etc/rc.local
--------------------------------------------------------------
2 异常2
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决方案:
echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>/etc/sysctl.conf
sysctl -p
3 异常3
pstree: 未找到命令
解决方案
yum install -y psmisc
4,找不到jdk
输入:sudo vi /etc/sudoers ,在sudoers最后面添加以下内容
Defaults env_keep+=JAVA_HOME
输入:sudo vi /etc/default/bigtop-utils 在 bigtop-utils 文件中添加以下内容
export JAVA_HOME=/usr/java/latest
然后执行以下命令
source /etc/default/bigtop-utilssource /etc/default/bigtop-utils
5,异常
如果出现agent主机不良状况
Error, CM server guid updated, expected 85587073-270d-43d9-a44a-e213d9f7e45b, received 4c1402a5-8364-4598-a382-0c760710e897
,尝试运行以下命令
rm -rf /var/lib/cloudera-scm-agent/cm_guid
之后重启agent
service cloudera-scm-agent restart
异常
[root@master cloudera-scm-server]# service cloudera-scm-server start
Starting cloudera-scm-server: [失败]
[root@master cloudera-scm-server]# more cloudera-scm-server.out
+======================================================================+
| Error: JAVA_HOME is not set and Java could not be found |
+----------------------------------------------------------------------+
| Please download the latest Oracle JDK from the Oracle Java web site |
| > http://www.oracle.com/technetwork/java/javase/index.html < |
| |
| Cloudera Manager requires Java 1.6 or later. |
| NOTE: This script will find Oracle Java whether you install using |
| the binary or the RPM based installer. |
+======================================================================+
[root@master cloudera-scm-server]#
[root@master cloudera-scm-server]# mkdir -p /usr/java
[root@master cloudera-scm-server]# ln -s /app/jdk1.8.0_202 /usr/java/default
[root@master cloudera-scm-server]# service cloudera-scm-server start
Starting cloudera-scm-server: [确定]
[root@master cloudera-scm-server]#
把jdk换成兼容的11版本就好了
Dec 03 10:51:57 bogon cm-server[3060]: +======================================================================+
Dec 03 10:51:57 bogon cm-server[3060]: | Error: Unable to find a compatible version of Java on this host,|
Dec 03 10:51:57 bogon cm-server[3060]: | either because JAVA_HOME has not been set or because a |
Dec 03 10:51:57 bogon cm-server[3060]: | compatible version of Java is not installed. |
Dec 03 10:51:57 bogon cm-server[3060]: +----------------------------------------------------------------------+
Dec 03 10:51:57 bogon cm-server[3060]: | Please install either: |
Dec 03 10:51:57 bogon cm-server[3060]: | - a supported version of the Oracle JDK from the Oracle Java web |
Dec 03 10:51:57 bogon cm-server[3060]: | site: |
Dec 03 10:51:57 bogon cm-server[3060]: | > http://www.oracle.com/technetwork/java/javase/index.html < |
Dec 03 10:51:57 bogon cm-server[3060]: | OR |
Dec 03 10:51:57 bogon cm-server[3060]: | - a supported version of the OpenJDK from your OS vendor. Help for |
Dec 03 10:51:57 bogon cm-server[3060]: | some OSes are available at: |
Dec 03 10:51:57 bogon cm-server[3060]: | > http://openjdk.java.net/install/ < |
Dec 03 10:51:57 bogon cm-server[3060]: | |
Dec 03 10:51:57 bogon cm-server[3060]: | Cloudera Manager requires Oracle JDK or OpenJDK 1.8 or later. |
Dec 03 10:51:57 bogon cm-server[3060]: | NOTE: Cloudera Manager will find the Oracle JDK when starting, |
Dec 03 10:51:57 bogon cm-server[3060]: | regardless of whether you installed the JDK using a binary |
Dec 03 10:51:57 bogon cm-server[3060]: | installer or the RPM-based installer. |
Dec 03 10:51:57 bogon cm-server[3060]: +======================================================================+
-bash: scp: command not found
执行命令
yum install openssh-clients
查看mysql的状态:
/usr/local/mysql/support-files/mysql.server status
安装Kafka服务
但是有提示:Before adding this service, ensure that either the Kafka parcel is activated or the Kafka package is installed. 这样子直接添加kafka的服务是不正确的
1.在Cloudera Manager页面找到主机->Parcel点击进入
2.在页面的Parcel列找到KAFKA并点击下载,下载完成后点击 分配 进行分配,然后点击 激活, 出现 已分配,已激活 证明分配激活成功
回到Cloudera Manager页通过添加服务添加kafka服务,但是在启动kafka服务的过程中又报错了:
报的错误是内存溢出错误,默认的是50M,
内存溢出错误问题解决:回到Cloudera Manager页面进入Kafka管理界面,点击配置项,然后在其配置栏中点击 kafka broker 找到Heap Size of Broker这一栏,改成1G就可以了,然后保存更改重启该服务
cdh集群卸载:
查看安装了那些包
rpm -qa | grep cloudera
依次卸载安装包
rpm -e cloudera-manager-server-db-2-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-server-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el6.x86_64
rpm -e cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el6.x86_64
rm -rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/x86_64/6/cloudera* /var/log/cloudera* /var/run/cloudera*
rm -rf /etc/cloudera*
rm -rf /opt/cloudera/parcel-cache /opt/cloudera/parcels
rm: 无法删除"/var/run/cloudera-scm-agent/process": 设备或资源忙
这个问题需要重启各个节点
然后再执行rm -rf 命令
重启后,登陆mysql ,删除scm库,重新执行初始化数据库命令。
agent节点启动过后立马死掉
[root@node2 cloudera-scm-agent]# netstat -tupnl |grep 19001
tcp 0 0 127.0.0.1:19001 0.0.0.0:* LISTEN 2857/python
[root@node2 cloudera-scm-agent]# kill -9 2857
检查ssh 免密码登陆到自己,到各个子节点
检查ntp服务
---------------------------------------------------------------------------------------------------------------------