基础配置信息 | 配置 |
---|---|
PC机1 | Intel I7-8700 + 16G内存 |
PC机2 | Intel xenon E5-1603 + 8G内存 |
虚拟机VMware Workstation Pro | 版本15.0 |
服务器名称 | IP地址 | 配置 | 角色 |
---|---|---|---|
master | 192.168.3.181 | 操作系统:centos7.5,CPU*4,内存:2G | |
slave183 | 192.168.3.183 | 操作系统:centos7.5,CPU*4,内存:2G | |
slave184 | 192.168.3.184 | 操作系统:centos7.5,CPU*4,内存:2G | |
slave185 | 192.168.3.185 | 操作系统:centos7.5,CPU*4,内存:2G | |
slave186 | 192.168.3.186 | 操作系统:centos7.5,CPU*6,内存:4G | |
slave187 | 192.168.3.187 | 操作系统:centos7.5,CPU*6,内存:4G | |
slave188 | 192.168.3.188 | 操作系统:centos7.5,CPU*6,内存:4G | |
slave189 | 192.168.3.189 | 操作系统:centos7.5,CPU*6,内存:4G |
JDK版本:
[root@localhost /]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
以改主机名为master,IP为192.168.3.181为例
使用
ifconfig
命令查看本机网卡信息.
如果提示ifconfig没有安装,则使用yum install -y net-tools
安装即可.
若此时虚拟机无法联网,也可使用ip addr
命令查看网卡信息
[root@localhost /]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.3.181 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::9cfa:d47a:8c84:cdb6 prefixlen 64 scopeid 0x20
inet6 fe80::26b1:3a23:6c81:de93 prefixlen 64 scopeid 0x20
inet6 fe80::4756:77ae:310c:febe prefixlen 64 scopeid 0x20
ether 00:0c:29:86:b9:5d txqueuelen 1000 (Ethernet)
RX packets 18639 bytes 1521733 (1.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 880 bytes 71977 (70.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
从打印的网卡信息中看到我们的网卡名为:ens33,现在修改网络配置.
使用
vi /etc/sysconfig/network-scripts/ifcfg-ens33
打开网卡配置文件
使用
service network restart
或者systemctl restart network
重启网络服务,然后再使用ifconfig
查看本机网络配置是否正确.
对slave系列服务器做对应修改,使得IP改为192.168.3.183-192.168.3.189
使用:vi /etc/hostname
修改主机名称,这里我们将主机名改为master.
改完配置文件之后需要重启生效,这里我们再执行:hostname master
,这样可以达到不启动也修改了hostname,重启后更改也生效的效果.
执行: exit
,退出重新登陆,就会发现[root@localhost ~]#
变成了[root@master ~]#
对slave系列服务器做对应修改,使得hostName改为slave183-slave189
对每台服务其配置HOSTS:
192.168.3.181 master
192.168.3.183 slave183
192.168.3.184 slave184
192.168.3.185 slave185
192.168.3.186 slave186
192.168.3.187 slave187
192.168.3.188 slave188
192.168.3.189 slave189
systemctl status firewalld
查看防火墙状态
systemctl stop firewalld
关闭防火墙
systemctl disable firewalld
禁止防火墙开机启动
systemctl status firewalld
启动防火墙
使用 systemctl stop firewalld
并使用 systemctl disable firewalld
禁止防火墙.
这一步master和slave节点操作略有区别.
ssh-keygen -t rsa
#一路回车到完成.会在~/.ssh下面生成2个文件 id_rsa,id_rsa.pub
[root@master ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ET9Wd//uqIcVwnLzLRbTBdIGkO2h5TQuh6P3eItOeZI root@master
The key's randomart image is:
+---[RSA 2048]----+
| . .++oo..|
| o..*oo.o|
| . +X + .o|
| o*.X + o|
| S. * + =.|
| . .o =..|
| .Eo.+ ..|
| ..++ .o |
| .o.o+. .|
+----[SHA256]-----+
[root@master ~]#
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
#将公钥拷贝到本机的authorized_keys上
ssh-keygen -t rsa
#一路回车到完成.会在~/.ssh下面生成2个文件 id_rsa,id_rsa.pubssh-copy-id -i ~/.ssh/id_rsa.pub root@master
#注意此处不变,将公钥拷贝到master的authorized_keys上.
操作完成后,各slave节点即可免密码登陆master.登陆测试:
ssh master
[root@slave183 ~]# ssh master
Last login: Thu Oct 11 09:47:35 2018 from slave183
[root@master ~]#
成功免密登陆master,在所有slave节点都进行以上测试,校验免密登陆是否成功.
scp ~/.ssh/authorized_keys root@slave183:~/.ssh/
…
scp ~/.ssh/authorized_keys root@slave189:~/.ssh/
[root@master ~]# scp ~/.ssh/authorized_keys root@slave183:~/.ssh/
root@slave183's password:
authorized_keys 100% 3158 1.9MB/s 00:00
操作完成后,master即可免密码登陆各slave节点,slave节点亦可免密登陆其它slave节点.
master登陆节点测试:
ssh slave183
[root@master ~]# ssh slave183
Last login: Thu Oct 11 09:48:09 2018 from master
[root@slave183 ~]# exit
登出
Connection to slave183 closed.
slave节点互相登陆测试:
ssh slave184
[root@slave183 ~]# ssh slave184
Last login: Thu Oct 11 10:19:55 2018 from slave183
[root@slave184 ~]# exit
登出
Connection to slave184 closed.
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:
- master节点作为ntp服务器与外界对时中心同步时间,随后对所有slave节点提供时间同步服务。
- 所有slave节点以master节点为基础同步时间。
yum install -y ntp
yum install -y ntpdate
#ntpdate会作为依赖服务在ntp服务安装的时候被安装.因此安装完ntp之后这里不执行也是可以的.
ntpdate -u s2c.time.edu.cn
[root@master ~]# ntpdate -u s2c.time.edu.cn
14 Oct 17:36:21 ntpdate[12912]: adjust time server 202.112.10.36 offset -0.000184 sec
禁用chronyd,centos7.5默认使用chronyd作为时间同步服务,不禁用的话ntp服务无法自启.
systemctl disable chronyd
#禁用chronyd
设置ntp服务自启:
systemctl enable ntpd
#ntp自启
使用
s2c.time.edu.cn
作为NTP服务器,加入到配置文件中
vi /etc/ntp.conf
,将server s2c.time.edu.cn prefer
加入到配置文件中,并且注释原来的NTP服务器:# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server s2c.time.edu.cn prefer
#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
使用
systemctl status ntpd
查看ntp是否启动.
[root@master ~]# systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2018-10-11 11:28:16 CST; 54s ago
Process: 688 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 696 (ntpd)
CGroup: /system.slice/ntpd.service
└─696 /usr/sbin/ntpd -u ntp:ntp -g
10月 11 11:28:16 master ntpd[696]: Listening on routing socket on fd #20 f...es
10月 11 11:28:16 master systemd[1]: Started Network Time Service.
10月 11 11:28:16 master ntpd[696]: Deferring DNS for s2c.time.edu.cn 1
10月 11 11:28:16 master ntpd[696]: 0.0.0.0 c016 06 restart
10月 11 11:28:16 master ntpd[701]: signal_no_reset: signal 17 had flags 4000000
10月 11 11:28:16 master ntpd[696]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
10月 11 11:28:16 master ntpd[696]: 0.0.0.0 c011 01 freq_not_set
10月 11 11:28:18 master ntpd_intres[701]: DNS s2c.time.edu.cn -> 202.112.10.36
10月 11 11:28:19 master ntpd[696]: Listen normally on 4 ens33 192.168.3.18...23
10月 11 11:28:19 master ntpd[696]: new interface(s) found: waking up resolver
Hint: Some lines were ellipsized, use -l to show in full.
使用
ntpstat
查看ntp是否启动(启动后需要等候几分钟才会正常同步).
vi /etc/ntp.conf
,将server master
加入到配置文件中,并且注释原来的NTP服务器:# the administrative functions.
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server master
#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
[root@slave184 ~]# ntpstat
synchronised to NTP server (192.168.3.181) at stratum 6
time correct to within 1201 ms
polling server every 64 s
至此,NTP服务配置完成.
只需要在master下安装mysql,其他节点不需要安装.安装mysql过程在此省略,可参考: Centos7.5安装mysql5.7.23-二进制包方式安装-完美安装,一步到位.
Service | Database | User |
---|---|---|
hbase | hbase | hbase |
Activity Monitor | amon | amon |
Reports Manager | rman | rman |
Hue | hue | hue |
Hive Metastore Server | metastore | hive |
Sentry Server | sentry | sentry |
Cloudera Navigator Audit Server | nav | nav |
Cloudera Navigator Metadata Server | navms | navms |
Oozie | oozie | oozie |
hive | hive | hive |
#使用下面局域创建表并创建用户
CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON <database>.* TO '' @'%' IDENTIFIED BY '<password>';
#以下是具体创建语句
CREATE DATABASE hbase DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hbase.* TO 'hbase'@'%' IDENTIFIED BY 'root';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'root';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'root';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'root';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'root';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'root';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'root';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'root';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'root';
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'root';
所需文件 | 解压放置位置 |
---|---|
cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz | /opt/ |
版本选择: 我们使用centos7.5,因此选择centos7版本下载.
使用文件上传工具将下载的cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
上传至master节点,并解压至/opt
(这里我将文件上传至/usr/local/share/目录下面).
[root@master ~]# tar zxvf /usr/local/share/cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz -C /opt/
[root@master opt]# ls
cloudera cm-5.15.1
修改 /opt/cm-5.0.0/etc/cloudera-scm-agent/config.ini 下面的 serer_host:
[root@master opt]# vi /opt/cm-5.15.1/etc/cloudera-scm-agent/config.ini
#修改内容:
server_host=master
/opt/cm-5.15.1/share/cmf/lib/
[root@master opt]# cp /usr/local/share/mysql-connector-java-5.1.47-bin.jar /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java.jar
[root@master opt]# /opt/cm-5.15.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hmaster -uroot -proot --scm-host master scm scm scm
格式是:scm_prepare_database.sh 数据库类型 数据库 服务器 用户名 密码
–scm-host Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么,直接照抄官网的了。
[root@master ~]# scp -r /opt/cm-5.15.1 slave183:/opt/
......
[root@master ~]# scp -r /opt/cm-5.15.1 slave189:/opt/
useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
[root@master opt]# useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
[root@master opt]# chown -R cloudera-scm:cloudera-scm /opt/cloudera
[root@master opt]# chown -R cloudera-scm:cloudera-scm /opt/cm-5.15.1
[root@master opt]# chown -R cloudera-scm:cloudera-scm /opt/cm-5.15.1
echo 10 > /proc/sys/vm/swappiness
vi /etc/selinux/config
SELINUX=disabled
#在master执行
/opt/cm-5.15.1/etc/init.d/cloudera-scm-server start
#在各个slave节点执行
/opt/cm-5.15.1/etc/init.d/cloudera-scm-agent start
# 查看运行状态
/opt/cm-5.15.1/etc/init.d/cloudera-scm-agent status
/opt/cm-5.15.1/etc/init.d/cloudera-scm-server status
# 查看server日志
tail -f /opt/cm-5.15.1/log/cloudera-scm-server/cloudera-scm-server.log
# 查看agent日志
tail -f /opt/cm-5.15.1/log/cloudera-scm-agent/cloudera-scm-agent.log
注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。
启动master中server服务时报这个错误:
/opt/cm-5.15.1/etc/init.d/cloudera-scm-server:行109: pstree: 未找到命令
原因:因为系统是最小化安装,默认没有安装
解决:yum install -y psmisc # 安装psmisc
访问http://192.168.3.181:7180:
至此Cloudera Manager安装成功.
所需文件 | 解压放置位置 |
---|---|
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 | /opt/cloudera/parcel-repo |
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel | /opt/cloudera/parcel-repo |
manifest.json | /opt/cloudera/parcel-repo |
版本选择: el5-el7对应centos Red Hat 5.X - centos Red Hat 7.X,jessie对应debian发行版本等等…我们用的是centos7.5,选择el7版本,下载.
将下载好的:
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel,
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1,
manifest.json
三个文件上传到master的/opt/cloudera/parcel-repo/
目录下,并将CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1
重命名为CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha
,否则会报找不到hash文件.