redhat7.4安装CDH6.0.1

1. 系统环境修改

1.1 修改主机名

所有节点均需执行该步骤

#主机 192.168.5.11 输入如下指令
hostnamectl set-hostname cdh1

#主机 192.168.5.12 输入如下指令
hostnamectl set-hostname cdh2

#主机 192.168.5.13 输入如下指令
hostnamectl set-hostname cdh3

#主机 192.168.5.14 输入如下指令
hostnamectl set-hostname cdh4

1.2 修改host文件

所有节点均需执行该步骤
注意配置私网IP地址,且要求IP与主机名一一对应对应

vi /etc/hosts
192.168.5.11 cdh1
192.168.5.12 cdh2
192.168.5.13 cdh3
192.168.5.14 cdh4

如下图所示,其他主机均按照如下方式配置即可
cdh1-host

1.3 关闭防火墙

所有节点均需执行该步骤
如果弹出“Unit firewalld.service could not be found.”提示,证明没有安装防火墙模块,直接跳过该步骤。

#查看防火墙状态
systemctl status firewalld

#关闭防火墙
systemctl stop firewalld

#开机关闭防火墙
systemctl disable firewalld

防火墙状态查看

1.4 禁用SELinux

所有节点均需执行该步骤

vi /etc/selinux/config
将第7行由
SELINUX=enforcing
修改为
SELINUX=disabled

如下图所示,其他主机照做即可
selinux的禁用

1.5 卸载chrony,安装ntp

所有节点均需执行该步骤
redhat7默认安装的chrony,需要首先卸载而后安装ntp服务

yum -y remove chrony
yum -y install ntp

对1台主机做了如下截图,其他主机与该主机一致。
ntp服务

个人设定192.168.5.11为服务端,192.168.5.12~14为客户端,见如下表格

IP地址 主机名 NTP服务器
192.168.5.11 cdh1 服务端
192.168.5.12 cdh2 客户端
192.168.5.13 cdh3 客户端
192.168.5.14 cdh4 客户端

1.5.1 配置ntp服务端

在192.168.5.11节点,即cdh1节点配置即可

#备份原有的配置文件
cp /etc/ntp.conf /etc/ntp.conf_bak

#创建目录
mkdir -p /var/lib/ntp/
mkdir -p /var/log/ntp/

#修改服务端配置(重要)
vi /etc/ntp.conf
#------------------------------------------------------------------------------------------
# ntp服务端设置
#------------------------------------------------------------------------------------------
# ignore    关闭所有的 NTP 联机服务
# nomodify  客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
# notrust   客户端除非通过认证,否则该客户端来源将被视为不信任子网
# noquery   不提供客户端的时间查询
# 注意,如果参数没有设定,那就表示该 IP (或子网)没有任何限制!
#------------------------------------------------------------------------------------------
#记录当前时间服务器,与上游服务器的时间差的文件
driftfile /var/lib/ntp/drift
#对于默认的client拒绝所有的操作
restrict default kod nomodify notrap nopeer noquery
#允许本机地址一切的操作
restrict 127.0.0.1
restrict -6 ::1
#设置同步服务器
server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst
#外界同步源无法联系时,使用本地时间为同步服务
server 127.127.1.0
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
#指定日志文件位置,需要手动创建
logfile /var/log/ntp/ntp.log

服务端配置我做了截图,没有截完整,但是主体部分清晰,如下所示:
ntp服务端配置

1.5.2 配置ntp客户端

在192.168.5.12~14节点,即cdh2、cdh3、cdh4节点配置

#备份原有的配置文件
cp /etc/ntp.conf /etc/ntp.conf_bak

#创建目录
mkdir -p /var/lib/ntp/
mkdir -p /var/log/ntp/

#修改客户端配置(重要)
vi /etc/ntp.conf 按照如下步骤操作:
1. 将21-24行的内容全部注释(步骤原理核心是注释掉默认配置中的ntp server)
2. 在25行添加如下内容
server cdh1

操作内容做了截图,如下所示:
ntp客户端配置

1.5.3 配置ntp服务

所有主机均需要完成如下指令

#查看ntp服务
systemctl status ntpd

#启动ntp服务
systemctl start ntpd

#设置ntp开机启动
systemctl enable ntpd

#查看ntp状态,是否同步成功
ntpq -p

NTP服务端正常时如何显示?如下图所示,前面有个“星星符号”即可
ntp服务端正常提供服务
那客户端呢?同样也是如此,前面有个小符号“*”,如下图所示:
ntp客户端服务正常

1.6 设置SWAP分区值

所有主机均需完成该指令,重启后生效
由于大数据的特殊性,尽可能的不使用交换分区,提升数据处理效率,使用如下指令即可,机器重启后生效(一会儿全部配置完成后需要重启,现在先别重启哦)

echo vm.swappiness=0 >> /etc/sysctl.conf

swap设置

1.7 设置透明大页面

所有主机均需完成该指令,重启后生效

vim /etc/rc.d/rc.local
将下述内容添加至文件结尾部分
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

我截了一个主机的图片,其他主机一样配置就行了,如下图所示:
关闭透明大页面

1.8 配置yum源

1.8.1 配置系统源

所有节点均需要配置系统源,否则在安装agent时候会缺依赖包

1.8.1.1 创建目录

mkdir /var/www/html/os7/Packages

1.8.1.2 上传rpm

将ISO中Packages包的所有rpm包上传至该目录,如下图所示
os7_local

1.8.1.3 创建repo

cd /var/www/html/os7/Packages

#按照顺序安装,前两个包是第三个包的依赖,所以必须先安装
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm 
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm 
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm

#创建本地的系统repo包路径
createrepo /var/www/html/os7

#转移默认的repo包
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak

#编辑本地的系统repo包
vi /etc/yum.repos.d/os7_local.repo
[os7_local]
name=os7_local
#baseurl = http://192.168.5.11/os7
baseurl=file:///var/www/html/os7
enabled=1
gpgcheck=0

1.8.1.4 更新源

yum clean  all
yum makecache
yum repolist 

本地系统的repo文件截图,请参阅。
本地系统的repo文件
更新源后本地源的资源数量
repolist结果

1.8.2 安装与配置httpd

在192.168.5.11节点,即cdh1节点配置即可

#安装
yum -y install httpd

#配置
修改 /etc/httpd/conf/httpd.conf 第284行
由
AddType application/x-gzip .gz .tgz
修改为
AddType application/x-gzip .gz .tgz .parcel

#重启服务并设定开机启动
systemctl status httpd
systemctl start httpd
systemctl enable httpd

修改http服务的配置文件
修改http配置文件
更新http服务的启动状态
更新http服务的启动状态

1.8.3 配置cdh源

只在192.168.5.11节点,即cdh1节点配置即可

1.8.3.1 下载

CDH6.0.1 下载地址 下载如下包:

CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256
manifest.json

1.8.3.2 上传

# 1. 如果没有该目录,进行创建
mkdir -p /var/www/html/cdh6/6.0.1

# 2. 将上述的3个文件上传至 /var/www/html/cdh6/6.0.1
mv CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel* /var/www/html/cdh6/6.0.1
mv manifest.json /var/www/html/cdh6/6.0.1

# 3. 做createrepo
createrepo /var/www/html/cdh6

1.8.4 配置cm源

只在192.168.5.11节点,即cdh1节点配置即可

1.8.4.1 下载

cm6.0.1 下载地址
allkeys.asc 下载地址
下载如下包

cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
allkeys.asc

1.8.4.2 上传

#上传至 /var/www/html/cm6/6.0.1 ,如果没有目录请创建该目录。
mkdir -p /var/www/html/cm6/6.0.1

#将上述的6个文件上传至 /var/www/html/cm6/6.0.1
mv cloudera-manager-*.rpm /var/www/html/cm6/6.0.1
mv oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm /var/www/html/cm6/6.0.1
mv allkeys.asc /var/www/html/cm6/6.0.1

#createrepo
createrepo /var/www/html/cm6

#创建cm6的yum源
vi /etc/yum.repos.d/cloudera-local.repo
[cloudera-manager]
name=cloudera-manager
#也可以写主机名,例如:baseurl=http://cdh1/cm6
baseurl=http://192.168.5.11/cm6
enabled=1
gpgcheck = 0

cm6文件路径分配

cm6-repo文件

1.9 安装JDK1.8 && 规范用户与组

所有节点均需进行

mkdir -p /usr/java/
rpm -qa|grep jdk
tar -xzvf /usr/java/jdk-8u131-linux-x64.tar.gz -C /usr/java/
chown -R root:root /usr/java/jdk1.8.0_131
chmod -R 755 /usr/java/jdk1.8.0_131
ln -s /usr/java/jdk1.8.0_131 /usr/java/jdk
vim /etc/profile
alias vi='vim'
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

为了规范大数据的所属组与用户,请按照规范进行管理,例如大数据所属的用户ID从1500开始,即如下所示进行创建用户与所属组,如果有必要可以先清理已经存在的大数据账户

#删除用户
for i in cloudera-scm zookeeper hdfs yarn mapred oozie hue hive impala flume kudu hbase kafka pig mysql solr llama httpfs sqoop kms sqoop sqoop2 sentry spark spark2; do userdel -r ${i} ; done

#删除组
for i in cloudera-scm zookeeper hdfs yarn mapred oozie hue hive impala flume kudu hbase kafka pig mysql solr llama httpfs sqoop kms sqoop sqoop2 sentry spark spark2; do groupdel ${i} ; done

#删除文件夹
for dir in `find / -name \*cloudera-scm\*  -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*zookeeper\*     -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*hdfs\*          -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*yarn\*          -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*mapred\*        -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*oozie\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*hue\*           -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*hive\*          -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*impala\*        -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*flume\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*kudu\*          -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*hbase\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*kafka\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*pig\*           -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*mysql\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*solr\*          -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*llama\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*httpfs\*        -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*sqoop\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*kms\*           -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*sqoop\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*sqoop2\*        -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*sentry\*        -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*spark\*         -type d` ; do rm -rf ${dir}; done
for dir in `find / -name \*spark2\*        -type d` ; do rm -rf ${dir}; done

#新增组
groupadd -g 1501 cloudera-scm
groupadd -g 1502 zookeeper
groupadd -g 1503 hdfs
groupadd -g 1504 yarn
groupadd -g 1505 mapred
groupadd -g 1506 oozie
groupadd -g 1507 hue
groupadd -g 1508 hive
groupadd -g 1509 impala
groupadd -g 1510 flume
groupadd -g 1511 kudu
groupadd -g 1512 hbase
groupadd -g 1513 kafka
groupadd -g 1514 pig
groupadd -g 1515 mysql
groupadd -g 1516 solr
groupadd -g 1517 llama
groupadd -g 1518 httpfs
groupadd -g 1519 sqoop
groupadd -g 1520 kms
groupadd -g 1521 spark2
groupadd -g 1522 sqoop2
groupadd -g 1523 sentry
groupadd -g 1524 spark

#新增用户
useradd -u 1501 -g cloudera-scm -m -s /bin/bash cloudera-scm
useradd -u 1502 -g zookeeper    -m -s /bin/bash zookeeper
useradd -u 1503 -g hdfs         -m -s /bin/bash hdfs
useradd -u 1504 -g yarn         -m -s /bin/bash yarn
useradd -u 1505 -g mapred       -m -s /bin/bash mapred
useradd -u 1506 -g oozie        -m -s /bin/bash oozie
useradd -u 1507 -g hue          -m -s /bin/bash hue
useradd -u 1508 -g hive         -m -s /bin/bash hive
useradd -u 1509 -g impala       -m -s /bin/bash impala
useradd -u 1510 -g flume        -m -s /bin/bash flume
useradd -u 1511 -g kudu         -m -s /bin/bash kudu
useradd -u 1512 -g hbase        -m -s /bin/bash hbase
useradd -u 1513 -g kafka        -m -s /bin/bash kafka
useradd -u 1514 -g pig          -m -s /bin/bash pig
useradd -u 1515 -g mysql        -m -s /bin/bash mysql
useradd -u 1516 -g solr         -m -s /bin/bash solr
useradd -u 1517 -g llama        -m -s /bin/bash llama
useradd -u 1518 -g httpfs       -m -s /bin/bash httpfs
useradd -u 1519 -g sqoop        -m -s /bin/bash sqoop
useradd -u 1520 -g kms          -m -s /bin/bash kms
useradd -u 1521 -g spark2      -m -s /bin/bash spark2
useradd -u 1522 -g sqoop2       -m -s /bin/bash sqoop2
useradd -u 1523 -g sentry       -m -s /bin/bash sentry
useradd -u 1524 -g spark        -m -s /bin/bash spark

1.10 安装mysql数据库

在192.168.5.11节点,即cdh1节点执行即可
卸载mariadb

yum -y remove mariadb*

mysql5.7.24 下载地址 下载并解压至服务器,按照如下顺序安装rpm包

tar -xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
yum -y install perl*
rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-minimal-debuginfo-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-devel-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-minimal-5.7.24-1.el7.x86_64.rpm --force --nodeps

修改mysql-root密码步骤

vim /etc/my.cnf
最后1行添加:
skip-grant-tables

重启服务:
systemctl restart mysqld

免密码登陆,修改root密码:
mysql -uroot
use mysql;
update user set authentication_string=password('123456') where user='root';
exit;

vim /etc/my.cnf
将刚才添加的 skip-grant-tables 删除或注释

重启服务:
systemctl restart mysqld

添加开机启动:
systemctl enable mysqld

#用上述方法修改的root密码必须使用root再次登陆并修改,否则会报错“ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.”,可以使用如下方式解决该报错:
mysql -uroot -p
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=1;
alter user 'root'@'localhost' identified by '123456';

如下图所示为mysql已经正常配置完成的状态
mysql安装配置完毕

1.11 创建CM,Hive等需要的表

#在192.168.5.11本机用root+密码方式登陆mysql
mysql -uroot -p

#下面为添加各组件与应用的知识库
CREATE DATABASE IF NOT EXISTS hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'192.168.5.%' IDENTIFIED BY 'Passwd_hive_123';

CREATE DATABASE IF NOT EXISTS cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'192.168.5.%' IDENTIFIED BY 'Passwd_cm_123';

CREATE DATABASE IF NOT EXISTS amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON amon.* TO 'amon'@'192.168.5.%' IDENTIFIED BY 'Passwd_amon_123';

CREATE DATABASE IF NOT EXISTS rm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'192.168.5.%' IDENTIFIED BY 'Passwd_rm_123';

CREATE DATABASE IF NOT EXISTS oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'192.168.5.%' IDENTIFIED BY 'Passwd_oozie_123';

CREATE DATABASE IF NOT EXISTS hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'192.168.5.%' IDENTIFIED BY 'Passwd_hue_123';

#刷新权限
FLUSH PRIVILEGES;

创建知识库完成后的mysql状态如下图所示
创建完成的mysql数据库

1.12 安装jdbc驱动

在192.168.5.11节点,即cdh1节点进行即可,因为我预设该节点为hive、oozie、sentry等等的管理节点,如果你想用其他节点做管理节点,那么其他节点也使用如下方式处理即可
mysql-jdbc驱动包 下载地址
按照如下指令完成操作

mkdir -p /usr/share/java/
mv /root/mysql-connector-java-5.1.47-bin.jar  /usr/share/java
ln -s /usr/share/java/mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

mysql-jdbc驱动包

1.13 修改Linux时区

所有节点均需执行该步骤

timedatectl set-timezone Asia/Shanghai
timedatectl

更改时区

1.14 配置互信

所有节点均需执行该步骤,核心内容是cdh1可以无密码跳转到其他所有节点,但是为了后期的管理方便,全部节点的无密码跳转也是非常有必要的

#所有节点执行如下指令,生成公钥与私钥,一路回车即可
ssh-keygen -t rsa

#将所有节点的公钥整理合并后写入authorized_keys,而后分发所有节点,细节就不写了,杀猪杀屁股,一个人一种杀法。
cat /root/.ssh/id_rsa.pub

#把authorized_keys权限进行变更
chmod 600 ~/.ssh/authorized_keys

最终成果如下图所示
无密码跳转

1.15 重启所有服务器

init 6

2 cdh软件包

2.1 下载

CM6.1下载地址
allkeys.asc下载地址
CDH6.1下载地址

2.2 上传cm与cdh包

mkdir -p /var/www/html/cdh6/6.0.1
mkdir -p /var/www/html/cm6/6.0.1

将
CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256
manifest.json
拷贝至
/var/www/html/cdh6/6.0.1

将
cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
allkeys.asc
拷贝至
/var/www/html/cm6/6.0.1

createrepo /var/www/html/cm6
createrepo /var/www/html/cdh6

2.3 配置cm源

所有主机均需要操作

vi /etc/yum.repos.d/cloudera-local.repo
[cloudera-manager]
name=cloudera-manager
baseurl=http://192.168.5.11/cm6
enabled=1
gpgcheck = 0

yum  clean  all
yum  makecache
yum  repolist 

客户端cm源

2.4 安装

在192.168.5.11节点,即cdh1主节点完成服务侧的安装与启动

#安装服务端cm
yum install -y cloudera-manager-server

#初始化mysql中的知识库cm
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm CDH6_cm

systemctl status cloudera-scm-server
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server

初始化sm知识库

2.5 网页端登陆

使用cdh1的外网ip+7180端口登陆cm首页,用户名与密码初始值均为admin
下面我主要列举与截取重要步骤,非重要步骤直接点击下一步即可
同意许可条件
选择60天试用版
直接下一步
添加主机
包地址指定-1
包地址指定-2
jdk配置
输入root密码下一步
agent安装完成
parcel安装
存在告警需要处理.png

1.到 http://initd.org/psycopg/tarballs/PSYCOPG-2-5/ 下载 psycopg2-2.5.5.tar.gz

2. 上传解压并编译(所有主机均需按照如下步骤处理)
yum install -y gcc postgresql postgresql-server postgresql-devel python-devel
tar -xzf psycopg2-2.5.5.tar.gz
cd psycopg2-2.5.5
python setup.py build
python setup.py install

3. 重新检查主机

重新检查--检查主机正确性
仅安装基本服务
节点服务配置
数据库配置
集群设置
安装完成

猜你喜欢

转载自blog.csdn.net/abyslll/article/details/88019524