CDH是一个管理Hadoop生态组件的工具,安装和管理都更便捷。很多情况下又需要对CDH进行离线安装。
修改主机名
vim /etc/hostname
修改主机hosts映射文件
vim /etc/hosts
输入hostname,查看主机名是否修改成功,不成功使用reboot进行重启。
查询hosts文件中是否有::1
,如果有,则注释掉ipv6配置。
防火墙
停止防火墙
systemctl disable firewalld
systemctl stop firewalld
或者添加信任域
firewall-cmd --add-source=192.168.20.0/24 --permanent --zone=trusted
firewall-cmd --add-source=192.168.30.0/24 --permanent --zone=trusted
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all
关闭Selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
时钟同步
所有服务器以一台服务器作为时钟服务器,在所有服务器更改文件:
vim /etc/chrony.conf
#注释掉其他所有时钟同步服务器
#添加文件内容:
server master iburst
#master服务器上再添加如下内容:
allow 192.168.20.0/24
启动服务:
systemctl restart chronyd
systemctl enable chronyd
查看服务状态:
chronyc sources
使用ntpd时钟同步服务(第二种方式)
查看本机ntpd服务状态
systemctl status ntpd
指定一台主机为ntpd服务器,其他服务器请求该服务器获取时间。
配置
vim /etc/ntp.conf
172.18.12.52 作为server,请参考如下配置
[root@hadoop1 ~]# cat /etc/ntp.conf
# 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 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
# 172.18.12.52作为server
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
172.18.12.69 作为client,请参考如下配置,其他client亦参考此配置
[root@hadoop3 ~]# vi /etc/ntp.conf
# the administrative functions.
restrict 172.18.12.69 nomodify notrap nopeer noquery
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 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
# 172.28.52.66-172.18.12.69 作为client
server 172.18.12.52
Fudge 172.18.12.52 stratum 10
主机参数修改
禁用透明大页面压缩:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
同时将上述2个命令写入/etc/rc.local。 优化交换分区:
echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p
python环境
查看python版本
python -v
Python的版本要求为: 2.6.x, 2.7.x
安装数据库MySQL
启动mysql:
systemctl start mysqld
systemctl enable mysqld
获取MYSQL的root初始临时密码,在日志文件 /var/log/mysqld.log
grep 'temporary password' /var/log/mysqld.log
更改root用户初始密码:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
创建数据库
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE rmon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
在MYSQL中创建集群所用的统一登陆用户授权:
mysql> CREATE USER 'cdh'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON *.* TO 'cdh'@'%';
Query OK, 0 rows affected (0.00 sec)
# 如果安装的是mysql 8,则需要将mysql 8 密码校验插件同步到hue服务器,或者更改cdh用户的密码校验规则为mysql 5的规则。
mysql> flush privileges;
为了在安装时,进行数据库连接测试,将Mysql驱动包mysql-connector-java-8.0.16.jar拷贝到每台服务器下的目录: /usr/java/ 将驱动包重命名为mysql-connector-java.jar
安装JDK
安装rpm格式的包,该方式会将jdk安装到/usr/java下,而cdh的脚本会去该目录下查找执行命令。
制作本地YUM源
制作ISO YUM源
删除系统原有repos:
rm -rf /etc/yum.repos.d/*.repo
上传ISO文件并挂载系统iso包成虚拟设备: iso文件下载标准版的就行,需要跟centos系统版本对应上。 如果版本没有对应,可能会出现安装依赖时,提示版本不一致! centos 7 的下载地址:
http://isoredirect.centos.org/centos/7/isos/x86_64/
如图下载:
mkdir /iso
mount -o loop ./CentOS-7-x86_64-DVD-1611.iso /iso
启动httpd服务:
cd /iso
python -m SimpleHTTPServer 7900
每台服务器上增加以下内容到文件: /etc/yum.repos.d/centos.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl= http://ip:7900
gpgcheck=1
enabled=1
gpgkey= http://ip:7900/RPM-GPG-KEY-CentOS-7
安装Clouder Manger
在master主机上安装CM Server和CM Agent 在安装cm agent时,需要通过yum 安装缺失的依赖。 缺少依赖提示:
错误:依赖检测失败:
bind-utils 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
libxslt 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
cyrus-sasl-plain 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
cyrus-sasl-gssapi 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
fuse 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
portmap 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
fuse-libs 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
httpd 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
mod_ssl 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
openssl-devel 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
python-psycopg2 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
MySQL-python 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
libpq.so.5()(64bit) 被 cloudera-manager-agent-6.3.1-1466458.el7.x86_64 需要
使用yum进行安装依赖
yum install bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libpq.so.5
注意: 在安装依赖出现版本不一致的情况下,请考虑替换ios文件版本跟系统版本一致。 出现zlib open-ssl等依赖版本不一致时,不要删除重新安装,会出现问题。
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
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
在其他节点安装:
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
初始化CM 的配置数据库
主节点执行一下操作:
cd /opt/cloudera/cm/schema/
./scm_prepare_database.sh -h master01 -P 3306 mysql scm cdh 123456
参数说明: -h MysqlHost -P MysqlPort dbType dbName dbUser dbPasswd
如果提示缺少mysql驱动包则执行以下操作:
cp mysql-connector-java.jar /opt/cloudera/cm/lib/
移动Parcel文件
移动三个文件到/opt/cloudera/parcel-repo/下
启动CM Server/ Agent
在主节点上:
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
在所有节点上:
systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent
查看日志
日志文件在/var/log/cloudera-scm-server
和/var/log/cloudera-scm-agent
下
心跳检测错误
- 停止server 和 agent
- 删除agent节点中
/var/lib/cloudera-scm-agent/
下的cm_guid 和 uuid文件 - 清除mysql中scm库中HOSTS表中数据
- 启动server
- 启动agent
登陆CM Server完成集群安装
登录地址是http://主节点ip:7180 默认用户密码为admin/admin
注意点
- 数据库配置时,如果mysql安装不是在集群中,则主机名称一栏填写:ip:port
- 首次运行命令时,创建hive表失败,提示缺少数据库驱动包,则把mysql驱动包拷贝到server主机中的/opt/cloudera/parcels/CDH/lib/hive/lib下
问题
- hue检查连接时,密码校验方式错误,参考:https://www.cnblogs.com/zhurong/p/9898675.html
- jdk安装路径问题,一定是安装在/usr/java
cdh界面配置问题:
- HDFS 纠错码
进入hdfs界面,搜索dfs.namenode.ec.system.default.policy 选择适合的策略。保存重启