安装前准备
1 网络配置【所有节点】
更改ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0 引用:
DEVICE=eth0 #设备名称,不要修改
BOOTPROTO=static #不要修改
BROADCAST=10.10.22.255 #广播地址,一般为本网段的最后一个IP
IPADDR=10.10.22.145 #ip地址
GATEWAY=10.10.22.1 #网关
NETMASK=255.255.255.0 #子网掩码
NETWORK=10.10.22.0 #网段地址
ONBOOT=yes #不要修改
TYPE=Ethernet #不要修改
DNS1=202.96.128.166 #主DNS1地址
DNS2=202.96.134.133 #备用DNS2地址
service network restart重启网卡
临时修改 hostname,执行hostname <主机名>
永久修改 hostname,修改/etc/sysconfig/network 文件
vi /etc/sysconfig/network
添加如下内容
NETWORKING=yes
HOSTNAME= #每个节点改成相应主机名
NETWORKING_IPV6=no
PEERNTP=no
重启机器
配置 hosts(不要用浮动 ip,用内网 ip,可用 ifconfig 查看 ip),执行
vim /etc/hosts 添加
10.138.1.10 cdh-1
10.138.1.11 cdh-2
10.138.1.12 cdh-3
保存退出
2.设置 ssh 免密登陆【所有节点】
生成无密码的密钥对
ssh-keygen -t rsa
一路回车 将生成的公钥添加到本地认证文件中
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
设置 authorized_keys 的访问权限
chmod 600 /root/.ssh/authorized_keys
**以上步骤先在每个节点上先执行一遍,然后执行下面操作
将每个节点上生成的 id_rsa.pub 复制到其他所有节点并添加到它们的认证文件中
比如:cdh-1 上生成的 id_rsa.pub,复制到 cdh-2 和 cdh-3 上
#cdh-1 上执行 scp /root/.ssh/id_rsa.pub cdh-2:/root/
#cdh-2 上执行 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
#cdh-1 上执行 scp /root/.ssh/id_rsa.pub cdh-3:/root/
#cdh-3 上执行 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
其余节点类似操作 验证是否配置免密登录成功 比如执行ssh root@cdh-2
看是否需要输入密码
3.安装 Oracle 的 JDK【所有节点】
CDH5 需要使用 Oracle 的 JDK,需要 Java 7 的支持。 卸载自带的 OpenJDK
查询 java 相关的包
rpm -qa | grep -i jdk
卸载之
rpm -qa | grep openjdk | xargs rpm -e –nodeps
安装 Oracle jdk 7 采用 tar.gz 包方式安装,解压压缩包 jdk1.7.0_67.tar.gz,并且将解压的到的文件夹 jdk1.7.0_67 复制到/usr/java/jdk1.7(该目录是 Cloudera Manager 查找 JAVA_HOME 的一 个路径)
tar zxvf jdk1.7.0_67.tar.gz
mkdir -p /usr/java/jdk1.7
mv jdk1.7.0_67/* /usr/java/jdk1.7
rmdir jdk1.7.0_67
配置环境变量 vi /etc/profile
将以下内容添加到 profile
export JAVA_HOME=/usr/java/jdk1.7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后刷新
source /etc/profile
4.安装配置 MySQL5.7【主节点】
安装 perl 和 numactl
虚拟机系统为 centos6.5-leo,没有 perl 和 numactl 为了 yum 顺利进行,配置/etc/resolv.conf,删除原来的 nameserver,添加
nameserver 192.168.1.1
nameserver 114.114.114.114
安装 perl 和 numactl
yum install -y perl
yum install -y numactl
卸载已有的 mysql 相关包
rpm -qa | grep mysql
rpm -e --nodeps 【包名】
rpm 安装 mysql
rpm -ivh mysql-community-common-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.15-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.15-1.el6.x86_64.rpm
设置开机启动
chkconfig mysqld on
启动 mysql 服务
service mysqld start
关闭密码校验
echo "validate_password=off" >> /etc/my.cnf
重启 mysql 服务
service mysqld restart
查看 root 的初始密码
cat /var/log/mysqld.log | more | grep password
修改 mysql root 密码
mysql -uroot -p[查看得到的密码]
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.12
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password=’123qwe’;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
mysql 创建数据库 amon,且给 root@[主节点] 赋权限
create database amon DEFAULT CHARSET utf8 COLLATE
utf8_general_ci;
grant all privileges on *.* to 'root'@'cdh-1' identified by '123qwe';
flush privileges;
创建数据库用做测试
#10.21.1.10 换成主节点 hostname
create database hive;
grant all privileges on hive.* to hive@'localhost' identified by 'hive';
grant all privileges on hive.* to hive@'cdh-1' identified by 'hive';
create database hue;
grant all privileges on hue.* to hue@'localhost' identified by 'hue';
grant all privileges on hue.* to hue@'cdh-1' identified by 'hue';
create database monitor;
grant all privileges on monitor.* to monitor@'localhost' identified by 'monitor';
grant all privileges on monitor.* to monitor@'cdh-1' identified by 'monitor';
create database reports;
grant all privileges on reports.* to reports@'localhost' identified by 'reports';
grant all privileges on reports.* to reports@'cdh-1' identified by 'reports';
create database oozie;
grant all privileges on oozie.* to oozie@'localhost' identified by 'oozie';
grant all privileges on oozie.* to oozie@'cdh-1' identified by 'oozie';
flush privileges;
create database navigatoraudit;
grant all privileges on navigatoraudit.* to navigatoraudit @'localhost' identified by 'navigatoraudit';
grant all privileges on navigatoraudit.* to navigatoraudit @'cdh-1' identified by 'navigatoraudit';
create database navigatormetadata;
grant all privileges on navigatormetadata.* to navigatormetadata @'localhost' identified by 'navigatormetadata';
grant all privileges on navigatormetadata.* to navigatormetadata @'cdh-1' identified by 'navigatormetadata';
flush privileges;
5 关闭防火墙和 SELinux 【所有节点】
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装 起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙
service iptables stop
或永久关闭
chkconfig iptables off
关闭 SELinux 临时关闭
setenforce 0
永久关闭,编辑/etc/selinux/config
vi /etc/selinux/config
改为
SELINUX=disabled
重启后生效
6 配置 NTP(Network Time Protocol)服务【所有节点】
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。
具体思路如下: master 节点作为 ntp 服务器与外界对时中心同步时间,随后对所有 slave 节点提供时间同 步服务。
所有 slave 节点以 master 节点为基础同步时间。
所有节点安装相关组件,如果已经有 ntp 服务则无需安装
yum install -y ntp
开机启动
chkconfig ntpd on
检查是否设置成功
chkconfig --list ntpd
其中 2-5 为 on 状态就代表成功。
主节点 ntpserver 配置
ntp 服务只有一个配置文件/etc/ntp.conf
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
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
启动服务
service ntpd start
命令查看同步状态
ntpstat
出现以下状态代表启动成功,一般等待 5-10 分钟才能同步
synchronised to NTP server (202.112.10.36) at stratum 5
time correct to within 122 ms
polling server every 512 s
slave 节点 ntp 客户端配置
编辑配置文件/etc/ntp.conf
vi /etc/ntp.conf
drtrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server yeexun-19 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
请求服务器前,请先使用 ntpdate 手动同步一下时间
ntpdate -u cdh-1 #主节点 ntp 服务器
这里可能出现同步失败的情况,请不要着急,一般是本地的 ntp 服务器还没有正常启动,一 般需要等待 5-10 分钟才可以正常同步。 启动服务
service ntpd start
7 安装 perl【所有节点】
由于虚拟机系统为 centos6.5-leo,无 perl,需要先安装
为了 yum 顺利进行,配置/etc/resolv.conf,删除原来的 nameserver,添加
nameserver 192.168.1.1
nameserver 114.114.114.114
安装 perl 和 numactl
yum install -y perl
yum install -y numactl
安装 Cloudera Manager
解压 cloudera manager
tar zxvf cloudera-manager-el6-cm5.8.1_x86_64.tar.gz
cloudera manager 的目录默认位置在/opt 下,将解压后的 cm-5.8.1 和 cloudera 目录放到 /opt 目录下
cp -r cm-5.8.1 /opt
cp -r cloudera /opt
为 Cloudera Manager 5 建立数据库
添加 mysql-connector 到/opt/cm-5.8.1/share/cmf/lib 目录下
cp mysql-connector-java-5.1.26-bin.jar /opt/cm-5.8.1/share/cmf/lib/
在 mysql 中创建 CDH MANAGER 对应的 database 和 user 及 password
CREATE USER 'cm'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON *.* TO 'cm'@'localhost' ;
CREATE USER cm IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON *.* TO cm ; flush privileges;
在主节点初始化 CM5 的数据库
/opt/cm-5.8.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123qwe --scm-host localhost scm scm scm
Agent 配置
修改/opt/cm-5.8.1/etc/cloudera-scm-agent/config.ini 中的 server_host 为主节点的主 机名【cdh-1】同步 Agent 到其他节点
scp -r /opt/cm-* root@cdh-2:/opt
scp -r /opt/cm-* root@cdh-3:/opt
在所有节点创建 cloudera-scm 用户
useradd --system --home=/opt/cm-5.8.1/run/cloudera-scm-server/ - -no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
准备 Parcels,用以安装 CDH5
将 CDH5 相关的 Parcel 包放到主节点的/opt/cloudera/parcel-repo/目录中(如果没有该 目录,则手动创建)
相关的文件如下:
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha
manifest.json
启动脚本 启动服务端
/opt/cm-5.8.1/etc/init.d/cloudera-scm-server start
启动 Agent 服务【所有节点(包括 master)】 创建目录否则会启动失败
mkdir /opt/cm-5.8.1/run/cloudera-scm-agent
/opt/cm-5.8.1/etc/init.d/cloudera-scm-agent start
我们启动的其实是个 service 脚本,需要停止服务将以上的 start 参数改为 stop就可以了, 重启是 restart,查看状态是 status。 出现问题时,需要查看日志来排查问题 agent 和 server 的日志目录分别如下
#agent 端 agent 的日志目录
/opt/cm-5.8.1/log/cloudera-scm-agent/cloudera-scm-agent.log
#server 的日志目录
/opt/cm-5.8.1/log/cloudera-scm-server/cloudera-scm-server.log
出现问题根据里面的日志来排查问题
用 Cloudera Manager 配置集群
Cloudera Manager Server 和 Agent 都启动以后,就可以进行 CDH5 的安装配置了。 这时可以通过浏览器访问主节点的 7180 端口测试:http://主节点:7180 一下了(由于 CM Server 的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为 admin。
登录后出现用户许可条款和条件页面
点击继续,选择版本,继续
继续
为 CDH 群集安装指定主机,如果 agent 启动正确,则会自动出现配置的机器
各个 Agent 节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的 节点,点继续。 接下来,出现以下包名 CDH-5.8.0-1.cdh5.8.0.p0.42,说明本地 Parcel 包配置无误,直接点继续就可以了。
点击,继续,如果配置本地 Parcel 包无误,那么下图中的已下载,应该是瞬间就完成了, 然后就是耐心等待分配过程就行了。
验证主机正确性,可根据提示做出相应修改,比如: 配置 swap 及切片,编辑文件/etc/sysctl.conf
vi /etc/sysctl.conf
添加 vm.swappiness=0
关闭大的切片
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
选择需要安装的 CDH5 服务(选择所有服务)
群集设置-角色分配,保持默认即可
群集设置-测试数据库连接 由于前面卸载了 mysql-libs,影响到 hue 的测试,重新安装 mysql-libs
rpm -ivh compat-mysql51-5.1.73-1.el6.remi.x86_64 yum install libxslt -y
输入前期创建的 hive、hue、reportsmanager 和 oozieserver 的数据库,用户名和密码
群集设置-审核更改,保持默认
终于到安装各个服务的地方了,注意,这里安装 Hive 的时候可能会报错,因为我们使 用了 MySql 作为 hive 的元数据存储,hive 默认没有带 mysql 的驱动,通过以下命令拷贝一 个就行了:
cp mysql-connector-java-5.1.26-bin.jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/
oozie 安装可能出现缺 mysql jdbc 包
cp mysql-connector-java-5.1.26-bin.jar /var/lib/oozie
接下静静地等待即可
安装完成后,就可以进入集群界面看一下集群的当前状况了
用 Cloudera Manager 安装服务
1.安装 HDFS
选择添加服务,选择要安装的 NameNode 主机 以及 DataNode 主机。选择好要安装的 主机后点击继续
等待 CM 自动安装,没有错误点击继续即可
2.向集群中添加 YARN
选择添加的服务 YARN
选择要添加的 YARN
配置 YARN 的 Resourcemanager 和 NodeManager 这里选择 yeexun-1 做为 Resourcemanager,(主节点),选择后点击继续
审核 选择 NodeManager 的本地目录,完成后点击继续
等待 CM 自动安装 YARN,完成没有错误后点击继续
YARN 安装成功
3.安装 zookeeper
选择添加服务,选择要安装的 Zookeeper
为添加的 Zookeeper 选择 Server,点击继续
添加 Zookeeper 的数据目录(默认)即可,点击继续
等待 CM 自动安装 Zookeeepr
4 安装 Hbase
选择添加服务
选择安装的 Master,RegionServer。选择完成后点击继续。
使用默认的路径,点击继续。
等待 CM 自动安装好 Hbase。
5 安装 Hive
选择添加服务,添加 Hive
为 Hive 选择一组依赖,点击继续
配置Hive主机
选择 Hive 要连接的数据库,在 MySQL 中创建 Hive 数据库,创建用户 hive,给 hive 设置 权限。
创建 Hive 的数据仓库目录
等待 CM 自动添加。(在自动创建时可能会出现报错,因为 MySql 作为的元数据存储,hive 默认没有带 mysql 驱动,通过以下设置:
cp mysql-connector-java-5.1.26-bin.jar /opt/cloudera/parcels/CDH-5.8.0- cdh5.8.0.p0.42/lib/hive/lib/
cp mysql-connector-java-5.1.26-bin.jar /var/lib/hive/)
等待安装完成,点击继续
6 安装 OOzie
添加服务,创建 OOZie
为 Oozie 选择一组依赖关系
选择配置 Oozie Server 的主机
选择 Oozie 的数据库。在 Mysql 中创建 Oozie 数据库,创建 Oozie 用户,设置权限。 测试数据库连接是否成功。
等待 CM 自动安装,安装过程中可能会报错,找不到 mysql 驱动包 解决:cp mysql-connector-java-5.1.26-bin.jar /var/lib/oozie 完成后点击继续
7 安装 Sqoop
选择要安装的 Sqoop 服务,设置 Sqoop 的主机。
设置目录(默认)
等待 CM 自动安装
8 安装 Hue
添加服务,安装 Hue,为 Hue 设置安装的主机。
在 MySQL 里创建 hue 数据库,并且给用户设置权限。在这里可能会报错,因为千米那卸 载了 mysql-libs ,影响到 hue 的测试,要重新安装 mysql-libs rpm -ivh compat-mysql51-5.1.73-1.el6.remi.x86_64 yum install libxslt -y 然后测试数据库连接就可以了
.等待 CM 自动安装,完成后点击继续。
安装完成
9 安装 Flume
添加 Flume 服务,CM 会自动安装(过程较快)
10 安装 KafKa
添加安装 Kafka 服务。设置安装 Kafka 服务的主机。
在安装之前由于缺少 Kafka 包所以点击继续会报错,在这里我们先把包导入 cp /root/cdh5/packages/cdh5/KAFKA* /opt/cloudera/parcel-repo/ 然后对包进行分发
在点击继续之前我们要对 Java Heap Size of Broker 进行设置,在 kafka 的配置里面。设置为 1 G 防止内存溢出
然后点击继续,就可以等待 CM 自动安装 kafka 了。
11 安装 Spark
添加安装 Spark 服务。选择安装 Spark 的主机,点击继续。
等待 CM 自动安装 Spark 服务。完成后点击继续。