RedHat6
+RedHat7
双系统版本安装CDH
章节
- 机架、服务器、网络、操作系统的安装配置
- 主机名修改
- 修改时区
- host文件修改
- 关闭防火墙
- SELinux
- 禁用透明大页面
- ROOT互信
- jdk安装配置
- group与user预定义
- mysql安装与配置
- 配置JDBC驱动
- yum环境安装部署
- http服务设置
- 卸载chrony,安装ntp服务并配置
- swap交换分区设置
- 重启服务器
- 安装cloudera-manager-server
- 网页端配置
- 各组件参数配置优化
01. 机架、服务器、网络、操作系统的安装配置
-
采购IDC机房、预定机架、架设服务器、调整网络、安装操作系统、挂设数据磁盘等操作在该文档中不做讲解,按照每个公司的流程走下去即可。
-
需要注意的内容:
- 可以用双磁盘做raid1;数据磁盘不需要raid。
- 每块数据磁盘挂载到一个目录,用作HDFS的数据盘,这样数据读取与写入速度均能得到保证。
02. 主机名修改
- 为了凸显集群的不一致性,主机与网络预设计如下:
主机名 | 私网IP | 节点状态 | 系统版本 | 系统内存 |
---|---|---|---|---|
cdh1 | 192.168.5.11 | 主节点、mysql数据库、yum源 | RedHat 6.7 | 32G |
cdh2 | 192.168.5.12 | 从节点、数据节点 | RedHat 6.7 | 16G |
cdh3 | 192.168.5.13 | 从节点、数据节点 | RedHat 6.7 | 16G |
cdh4 | 192.168.5.14 | 从节点、数据节点 | RedHat 7.5 | 8G |
cdh1-3
按照如下方式修改,举例1台主机:
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cdh1 # 其他2台主机依次为cdh2/cdh3
NETWORKING_IPV6=no
NOZEROCONF=yes
cdh4
按照如下方式修改:
# hostnamectl set-hostname cdh4
03. 修改时区
cdh1-3
按照如下方式修改,举例1台主机:
# cp /etc/localtime /etc/localtime_bak
# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cdh4
按照如下方式修改:
# timedatectl set-timezone Asia/Shanghai
# timedatectl
04.host文件修改
- 所有主机均按照如下方式操作,编辑并添加:
# vim /etc/hosts
192.168.5.11 cdh1
192.168.5.12 cdh2
192.168.5.13 cdh3
192.168.5.14 cdh4
05.关闭防火墙
cdh1-3
按照如下方式修改,举例1台主机:
# /sbin/chkconfig --list iptables
# service iptables stop
# chkconfig iptables off
cdh4
按照如下方式修改:
# systemctl status firewalld
# systemctl stop firewalld
# systemctl disable firewalld
06.SELinux与ulimits
06.01 selinux
cdh1-4
均按照如下方式修改:
# /usr/sbin/sestatus -v | grep status
# sed -i "s/^SELINUX=.*$/SELINUX=disabled/" /etc/selinux/config
06.02 ulimits
cdh1-4
均按照如下方式修改并新增内容:
# vim /etc/security/limits.conf
* soft nofile 102642
* hard nofile 102642
* soft nproc unlimited
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
06.03 系统配置
cdh1-4
均按照如下方式修改并新增内容:
# echo -ne "\nnet.core.somaxconn = 32768\n" >> /etc/sysctl.conf
07.禁用Transparent Huge Pages(THP)(重启后生效)
cdh1-4
按照如下方式修改,举例1台主机:
# chmod +x /etc/rc.d/rc.local
# 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
08.ROOT互信(修改主机名并重启后进行)
- 基本要求:CDH主节点
cdh1
可以无密码跳转到其他所有节点。 - 扩展要求:为后期的管理方便,做全部节点的无密码跳转。
cdh1-4
按照如下方式修改,举例1台主机:
# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #所有节点的id_rsa.pub均导入同一个authorized_keys,而后分发所有节点。
# chmod 600 /root/.ssh/authorized_keys
09.jdk安装配置
cdh1-4
按照如下方式修改,举例1台主机:
# java -version #删除现有的jdk(如果有的话)
# mkdir -p /usr/java/
# 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
10.group与user预定义
cdh1-4
按照如下方式修改,举例1台主机:
# 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
# groupadd -g 1525 apache #cdh1主机安装并启用httpd服务后添加的用户,删除用户时请注意。
# groupadd -g 1526 hadoop
# 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
# useradd -u 1525 -g apache -m -s /bin/bash apache
# usermod -a -G sqoop sqoop2 #添加额外组
# usermod -a -G hive impala
# usermod -a -G hadoop hdfs
# usermod -a -G hadoop mapred
# usermod -a -G hadoop yarn
11.mysql安装与配置
cdh1
按照如下方式修改:
# yum -y remove mariadb*
# yum -y remove mysql*
# yum -y remove MySQL*
# rpm -qa|grep mysql
# rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 #发现了这个包,卸载掉,否者影响server的安装
# tar -xf MySQL-5.6.39-1.el6.x86_64.rpm-bundle.tar
# rpm -ivh MySQL-client-5.6.39-1.el6.x86_64.rpm
# rpm -ivh MySQL-devel-5.6.39-1.el6.x86_64.rpm
# rpm -ivh MySQL-test-5.6.39-1.el6.x86_64.rpm
# rpm -ivh MySQL-shared-compat-5.6.39-1.el6.x86_64.rpm
# rpm -ivh MySQL-shared-5.6.39-1.el6.x86_64.rpm
# rpm -ivh MySQL-embedded-5.6.39-1.el6.x86_64.rpm #记录/root/.mysql_secret文件里面的密码
# cat /root/.mysql_secret
# service mysql status
# service mysql start
# chkconfig --add mysql
# mysql -uroot -p
mysql> set password=password('123456'); #生产环境记得使用强密码
mysql> FLUSH PRIVILEGES;
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database rm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> grant all privileges on *.* to 'root'@'cdh1' identified by '123456' with grant option;
mysql> flush privileges;
12.配置JDBC驱动
cdh1
按照如下方式修改:
# mkdir -p /usr/share/java/
# mv /usr/share/java/mysql-connector-java-5.1.40-bin.jar /usr/share/java
# ln -s /usr/share/java/mysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar
13.yum环境安装部署
cdh1
按照如下方式修改:
# mkdir -p mkdir /var/www/html
# mv cm5.11.0 /var/www/html #因为集群有RedHat6.7还有RedHat7.5所以把两类cm的rpm包均放进去,如下图
# mv cdh5.11.0 /var/www/html #因为集群有RedHat6.7还有RedHat7.5所以把两类cdh包均放进去,如下图
# mv kudu /var/www/html
# mv spark2 /var/www/html
# yum -y install createrepo
# createrepo /var/www/html/cm5.11.0/
# vim /etc/yum.repos.d/cloudera-local.repo
[cloudera-local]
name=cloudera-local
baseurl=http://cdh1/cm5.11.0
enabled=1
gpgcheck = 0
# yum clean all
# yum makecache
# yum repolist
14.http服务设置
cdh1
按照如下方式修改:
# yum -y install httpd
# vim /etc/httpd/conf/httpd.conf
ServerName localhost:80 #添加该行
# service httpd restart
# chkconfig --level 345 httpd on
# chkconfig --list httpd
15.卸载chrony,安装ntp服务并配置
- 如果服务器可以联网,则把中国国家授时中心作为首选的NTP服务器
- 如果服务器断网,则使用cdh1作为NTP服务器
- 发现所有配置的NTP服务器均不能提供NTP服务时,使用他们自身作为NTP服务器
主机名 | IP | NTP服务 | NTP服务优先级 |
---|---|---|---|
0.cn.pool.ntp.org | 国家授时中心-中国 | 最高 | |
1.cn.pool.ntp.org | 国家授时中心-中国 | 最高 | |
2.cn.pool.ntp.org | 国家授时中心-中国 | 最高 | |
3.cn.pool.ntp.org | 国家授时中心-中国 | 最高 | |
cdh1 | 192.168.5.11 | 服务端1 | 次级–本地ntp服务器 |
cdh2 | 192.168.5.12 | 客户端 | |
cdh3 | 192.168.5.13 | 客户端 | |
cdh4 | 192.168.5.14 | 客户端 |
- *表示目前正在使用的上层NTP;+代表也有连上线,而且可作为下一个提供时间更新的候选者;-表示为不合格的ntp服务器。
- 默认情况需要
15分钟
才会与上层NTP服务器进行时间校对。
cdh1
按照如下方式修改,作为NTP服务端:
# yum -y remove chrony
# yum -y install ntp
# cp /etc/ntp.conf /etc/ntp.conf_bak
# vi /etc/ntp.conf
driftfile /var/lib/ntp/drift #记录时间差异的文件
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
#允许内网其他机器同步时间
restrict 192.168.5.0 mask 255.255.255.0 nomodify notr
#自定义使用的上游ntp服务器,将原来的注释
server 0.cn.pool.ntp.org perfer #perfer表示优先,常用的有iburst,burst
server 1.cn.pool.ntp.org perfer
server 2.cn.pool.ntp.org perfer
server 3.cn.pool.ntp.org perfer
#允许上层时间服务器主动修改本机时间
restrict 0.cn.pool.ntp.org perfer nomodify notrap noquery
restrict 1.cn.pool.ntp.org perfer nomodify notrap noquery
restrict 2.cn.pool.ntp.org perfer nomodify notrap noquery
restrict 3.cn.pool.ntp.org perfer nomodify notrap noquery
#外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 5
includefile /etc/ntp/crypto/pw #设定包含的配置文件子文件
keys /etc/ntp/keys #当进行秘钥方式进行认证的时候需要的文件
# service ntpd start
# chkconfig --level 345 ntpd on
# ntpstat 或 ntpq -p 或 watch ntpq -p
# vim /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes #添加该行,使硬件时间和系统时间一致
cdh2-3
按照如下方式修改:
# yum -y remove chrony
# yum -y install ntp
# cp /etc/ntp.conf /etc/ntp.conf_bak
# vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
#自定义使用的上游ntp服务器,将原来的注释
server cdh1 perfer
#允许上层时间服务器主动修改本机时间
restrict cdh1 perfer nomodify notrap noquery
#外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
# service ntpd start
# chkconfig --level 345 ntpd on
# ntpstat 或 ntpq -p 或 watch ntpq -p
# vim /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes #添加该行,使硬件时间和系统时间一致
cdh4
按照如下方式修改:
# yum -y remove chrony
# yum -y install ntp
# cp /etc/ntp.conf /etc/ntp.conf_bak
# mkdir -p /var/lib/ntp/
# mkdir -p /var/log/ntp/
# vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
#自定义使用的上游ntp服务器,将原来的注释
server cdh1 perfer
#允许上层时间服务器主动修改本机时间
restrict cdh1 perfer nomodify notrap noquery
#外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
# systemctl start ntpd
# systemctl enable ntpd
# ntpstat 或 ntpq -p 或 watch ntpq -p
# vim /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes #添加该行,使硬件时间和系统时间一致
16.swap交换分区设置
cdh1-4
按照如下方式修改,举例1台主机:
# echo -ne "\nvm.swappiness = 0\n" >> /etc/sysctl.conf
17.重启服务器
init 6
18.安装cloudera-manager-server
cdh1
按照如下方式修改:
# yum install -y cloudera-manager-server
# find / -name scm_prepare_database.sh
# /usr/share/cmf/schema/scm_prepare_database.sh mysql cm root 123456
# service cloudera-scm-server start
19.网页端配置
cdh1
按照如下方式配置登录,默认用户名密码均为admin:
http://{cdh1主机的公网IP地址}:7180
- 截取一些关键步骤的图片如下:
20.各组件参数配置修改
- impala
-
hbase
-
hdfs
-
hue
代码如下:
[beeswax]
download_row_limit=1000000
[notebook]
show_notebooks=true
[librdbms]
[[databases]]
[[[mysql1]]]
nice_name="namenode01"
engine=mysql
host=IP地址
port=3306
user=用户名
password=密码
socket=/usr/local/mysql/mysql.sock
options={ "init_command":"SET NAMES 'utf8'"}
[impala]
server_host=namenode02
server_port=25004
- oozie