封面图片

大数据

离线安装CDH

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/

如图下载: image.png

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

心跳检测错误

  1. 停止server 和 agent
  2. 删除agent节点中/var/lib/cloudera-scm-agent/下的cm_guid 和 uuid文件
  3. 清除mysql中scm库中HOSTS表中数据
  4. 启动server
  5. 启动agent

登陆CM Server完成集群安装

登录地址是http://主节点ip:7180 默认用户密码为admin/admin

注意点

  1. 数据库配置时,如果mysql安装不是在集群中,则主机名称一栏填写:ip:port
  2. 首次运行命令时,创建hive表失败,提示缺少数据库驱动包,则把mysql驱动包拷贝到server主机中的/opt/cloudera/parcels/CDH/lib/hive/lib下

问题

  1. hue检查连接时,密码校验方式错误,参考:https://www.cnblogs.com/zhurong/p/9898675.html
  2. jdk安装路径问题,一定是安装在/usr/java

cdh界面配置问题:

  1. HDFS 纠错码

进入hdfs界面,搜索dfs.namenode.ec.system.default.policy 选择适合的策略。保存重启

2023年03月23日
后一篇:CDH集成Kerberos

更多文章

在初学者眼中,世界充满了可能;专家眼中,世界大都已经既定。--铃木俊隆