CentOS7离线安装CDH5.15

CentOS7离线安装CDH5.15


一、准备工作

!!!注意:以下操作除MySQL的安装外所有点都需要执行,且需要root权限!!!

(一)关闭防火墙、SELINUX、IPv6

1. 修改主机名及hosts
1.1. 修改主机名
sudo hostnamectl set-hostname cdh001
1.2. 修改hosts
sudo vim /etc/hosts

# 增加:
192.168.77.57 cdh001
192.168.77.58 cdh002
192.168.77.59 cdh003
2. 关闭防火墙
2.1. 临时关闭
sudo systemctl stop firewalld.service
2.2. 关闭开机自启
sudo systemctl disable firewalld.service
3. 关闭SELINUX
3.1. 修改配置文件
sudo vim /etc/selinux/config

# 修改:
SELINUX=disable
3.2. 重启生效
4. 关闭IPv6
4.1. 编辑配置文件
sudo vim /etc/sysvtl.conf

# 增加:
net.ipv6.conf.all.disable_ipv6=1
sudo vim /etc/sysconfig/network

# 增加:
NETWORKING_IPV6=no
4.2. 编辑网卡配置
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 修改或增加:
IPV6INIT=no
4.3 执行sudo sysctl -p命令生效

(二)配置集群时间同步

1. 所有节点安装ntp服务
sudo yum -y install ntp
2. 配置Server
2.1. 修改ntp配置文件
sudo vim /etc/ntp.conf

# 修改:
# Hosts on local network are less restricted.
restrict 192.168.77.0 mask 255.255.255.0 nomodify notrap

# 注释:
#server 0.contos.pool.ntp.org iburst
#server 1.contos.pool.ntp.org iburst
#server 2.contos.pool.ntp.org iburst
#server 3.contos.pool.ntp.org iburst

# 增加:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
2.2. 修改ntpd配置文件
sudo vim /etc/sysconfig/ntpd

# 增加:
SYNC_HWCLOCK=yes
3. 配置其他节点
3.1. 修改ntp配置文件
sudo vim /etc/ntp.conf

# 注释:
#server 0.contos.pool.ntp.org iburst
#server 1.contos.pool.ntp.org iburst
#server 2.contos.pool.ntp.org iburst
#server 3.contos.pool.ntp.org iburst

# 增加:
server 192.168.77.57
4. 开启ntp服务
4.1. 启动服务
sudo systemctl start ntpd
4.2. 配置开机自启
sudo systemctl enable ntpd

(三)配置集群间ssh免密登录

!!!注意:为防止出错,所有节点之间都要配置!!!

1. 生成秘钥
ssh-keygen -t rsa
# 根据提示连续三次回车
2. 发送秘钥到目标节点
ssh-copy-id 主机名
3. 登录目标节点
ssh 主机名
# 第一次连接需要输入密码
4. 切换到root用户重复以上操作

(四)安装Java

1. 卸载原生的Open JDK
1.1. 查询已安装的JDK
sudo rpm -qa | grep -i jdk
1.2. 卸载JDK
sudo yum remove -y copy-jdk-config…
2. 安装Oracle JDK
2.1. 上传下载的tar包并解压
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/openv
3. 配置环境变量
3.1. 修改/etc/profile
sudo vim /etc/profile

# 增加:
#JAVA_HOME
export JAVA_HOME=/usr/openv/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
# 环境变量生效
source /etc/profile
3.2. 为CM创建软连接
  • CDH不会自动使用系统环境变量中的JAVA_HOME,而是使用Bigtop进行管理,如果不是在默认位置安装的jdk,就需要创建软连接工CDH使用。
sudo ln -s /usr/openv/jdk1.8.0_181 jdk1.8

(五)安装MySQL

1. 卸载已安装的MySQL
1.1. 查看已安装的MySQL
sudo rpm -qa | grep -i mysql
1.2. 卸载已安装的MySQL
sudo rpm -e postfix-2.10.1-6.el7.x86_64
sudo rpm -e mariadb-libs-5.5.56-2.el7.x86_64-nodeps
……
2. 安装MySQL

!!!注意:所有节点都需要安装shared-compat组件!!!

sudo rpm -ivh MySQL-client-5.6.45-1.el7.x86_64.rpm
sudo rpm -ivh MySQL-shared-compat-5.6.45-1.el7.x86_64.rpm
sudo rpm -ivh MySQL-server-5.6.45-1.el7.x86_64.rpm
3. 配置MySQL
3.1. 启动MySQL服务
# 启动服务
sudo systemctl start mysql.service
# 查看临时密码
sudo cat /root/.mysql_secret
# 登录数据库
mysql -uroot -p临时密码
3.2. 修改密码
set password=password('123456');
-- 创建cdh用户,并允许远程连接
create user cdh@'%' identified by '123456'
3.3. 配置远程连接
-- 允许所有节点远程连接:
use mysql;
update user set host='%' where user='root';
-- 刷新权限:
flush privileges;
3.4. 创建CM的数据库
create database hive DEFAULT utf8 COLLATE utf8_general_ci;
create database amon DEFAULT utf8 COLLATE utf8_general_ci;
create database hue DEFAULT utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT utf8 COLLATE utf8_general_ci;


二、安装Cloudera Manager

1. 解压安装CM

# 创建安装路径:
mkdir /usr/openv/cdh-5.15.2
# 解压CM:
tar -zxvf cloudera-manager-centos7-cm5.15.2_x86_64.tar.gz -C /usr/openv/cdh-5.15.2

2. 安装第三方依赖

sudo yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl

3. 配置MySQL驱动

# 复制驱动包到/usr/share/java并改名
sudo cp mysql-connector-java-5.1.14-bin.jar /usr/share/java/mysql-connector-java.jar
# 复制驱动包到cm-5.15.2/share/cmf/lib并改名
cp mysql-connector-java-5.1.14-bin.jar cm-5.15.2/share/cmf/lib/mysql-connector-java.jar

4. 修改Agent配置

vim cm-5.15.2/ect/cloudera-scm-agent/config.ini

# 修改:
server_host=cdh001

5. 分发文件到其他节点

5.1. 分发脚本
#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0))
then
    echo no args;
    exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环分发
for((host=001; host<=003; host++))
do
    echo -------------- cdh$host --------------
    rsync -av $pdir/$fname $user@cdh$host:$pdir
done
5.2. 分发文件
# 赋予脚本执行权限
chmod +x xsync

# 分发文件
./xsync cdh-5.15.2

6. 所有节点创建CM用户

sudo useradd --system --home=cm-5.15.2/run/cloudera-scm-server/ --no-create-home --bash=/bin/false --comment 'Cloudera SCM User' cloudera-scm

7. 初始化CM数据库

#.../share/cmf/schema/scm_prepare_database.sh mysql -h<mysql-host> -u<mysql-user> -p<mysql-pwd> --scm-host <scm-host> <scm-user> <scm-dbname> <scm-pwd>
sudo cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql cm -h cdh001 -uroot -p123456 –-scm-host cdh001 scm scm scm

8. 准备Parcel文件及安装路径

  • 上传CDH的三个文件到cdh-5.15.2/cloudera/parcel-repo路径下
  • 去掉…….sha1文件名中的.sha1
8.1. 所有节点创建parcels文件夹
mkdir cdh-5.15.2/cloudera/parcels
8.2. 修改parcel-repo和parcels的所有者
sudo chown cloudera-scm:cloudera-scm parcel-repo parcels

9. 启动CM

9.1. 主节点
sudo cm-5.15.2/etc/init.d/cloudera-scm-server start
sudo cm-5.15.2/etc/init.d/cloudera-scm-agent start
9.2. 其他节点
sudo cm-5.15.2/etc/init.d/cloudera-scm-agent start
9.3. 查看端口
  • 7180端口被占用则代表服务启动成功
sudo netstat -anp | grep 7180


三、安装服务

(一)Web页面安装CDH组件

1. 登录Web页面
  • 地址:ServerHost:7180
  • 用户名:admin
  • 密码:admin
2. 选择CM版本
  • 我们选择免费版
3. 选择主机
  • 选择全部三台主机
4. 选择parcel方式安装
  • 此处默认看不到上传的parcel,点击更多设置,将parcel文件的路径改为服务器上的实际路径,然后所有节点重启服务
5. 等待CDH部署到所有节点并激活
6. 主机检查
  • 按提示修改服务器配置即可
7. 选择需要安装的组件
  • HDFS、YARN、Hive、Zookeeper、HBase、Sqoop等按需选择
8. 配置主机角色
  • 选择各台主机分别部署哪些服务
9. 配置数据库
  • 所有节点都要安装MySQL的shared-compat组件,否则此处会连接不到数据库
10、使用默认配置至安装结束

(二)Parcel方式安装Spark2

1. 下载地址
2. 上传文件
  • 将在csd页面下载的jar包上传到……cloudera/csd文件夹下,修改所有者为cloudera-scm
  • 将剩余的3个文件上传到主机的……cloudera/parcel-repo文件夹下,并将…….sha1文件改名为…….sha,修改所有者为cloudera-scm
3. 集群部署
3.1 配置路径
  • CM主页:管理->设置,搜索本地,修改csd、parcel-repo、parcels路径,所有节点重启server和agent服务
3.2 激活
  • CM主页:主机->parcel,选择Spark2,分配->激活
3.3 添加服务
  1. CM主页:添加服务,选择Spark2
  2. 选择依赖关系
  3. 分配主机,Gateway所有主机都要安装
  4. 默认配置至安装结束

(三)Parcel方式安装LZO

1. 上传文件
  • 将下载的3个文件上传到主机的……cloudera/parcel-repo文件夹下,并将…….sha1文件改名为…….sha,修改所有者为cloudera-scm
2. 集群部署
2.1 激活
  1. CM主页:主机->parcel,检查新parcel
  2. 选择GPLEXTRAS,分配->激活
2.2 修改HDFS配置
  • 搜索压缩编码解码器,添加:
com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec
2.3 修改YARN配置
  1. 搜索MR程序classpath,添加:
……/CDH/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib
  1. 搜索MR程序运行环境,添加:
;……/CDH/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native

(四)Parcel方式安装Kafka

1. 上传文件
  • 将在csd页面下载的KAFKA-1.2.0.jar上传到……cloudera/csd文件下,修改所有者为cloudera-scm
  • 将剩余的3个文件上传到主机的……cloudera/parcel-repo文件夹下,并将…….sha1文件改名为…….sha,修改所有者为cloudera-scm
2. 集群部署
2.1 激活
  1. CM主页:主机->parcel,检查新parcel
  2. 选择KAFKA,分配->激活
2.2 添加服务
  1. CM主页:添加服务,选择KAFKA
  2. 分配主机
  3. 默认配置至安装结束
  4. 如果报错,可能需要修改KAFKA内存配置
    • KAFKA配置页面修改Java Heap Size of Broker项下内存最大值的配置


四、安装过程中的一些问题及解决办法

(一)Server启动问题

ERROR main:org.hibernate.engine.jdbc.spi.SqlExceptionHelper: Table 'cm.CM_VERSION' doesn’t exist
#
# 缺少表cm.CM_VERSION,不影响使用,可忽略
ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn’t exist
#
# 手动创建文件夹[/var/lib/cloudera-scm-server]
ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read/write permission to the server storage directory [/var/lib/cloudera-scm-server]
#
# 手动修改文件夹[/var/lib/cloudera-scm-server]的所有者
ERROR ParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unable to retrieve remote parcel repository manifest
#
# 服务器未联网,无法从cm官网获取manifest,不影响使用,可忽略

(二)Agent启动问题

MainThread agent ERROR Failed to connect to previous supervisor.
#
# 1)确保集群NTP同步服务有效后重启agent
# 2)服务器重启后在启动agent有时也会报此错误,此时杀掉supervisor进程,重启agent
MainThread parcel ERROR Failed to activate alternatives for parcel ……
MainThread parcel ERROR Failed to deactivate alternatives for parcel ……
#
# 1)查看/etc/alternatives/、/usr/bin/路径下是否缺少对应的软连接,并手动创建
# 2)脚本命令连接至:parcels/CDH/bin
# 3)conf路径连接至:parcels/CDH/etc/组件名/conf.
MonitorDaemom-Reporter throttling_logger ERROR sending messages to firehose: mgmt-HOSTMONITOR-……
#
# 前一项错误未处理agent进程也不会dead,但在Web安装组件时会报此错误,处理完即可解决
Monitor-GenericMonitor throttling_logger ERROR fetching metrics at ‘http://host:60030/jmx’
#
# 检查主机名、hosts、agent的server配置是否一致

五、组件相关配置

(一)HDFS权限报错

  • CDH默认用户hdfs:supergroup为HDFS的最高管理用户,普通用户启动spark、kylin等对HDFS有写需求的服务时会报对HDFS没有写权限的错,此时可通过将用户添加到supergroup组来解决权限问题
1. 添加supergroup组
sudo groupadd supergroup
# 验证是否成功
grep supergroup /etc/group
2. 将用户添加到supergroup组中
sudo usermod -a -G supergroup 用户名
# 验证是否成功
id 用户名
3. 将上述信息同步到HDFS
sudo -u hdfs hdfs dfsadmin -refreshUserToGroupsMappings

(二)Hue相关问题

!!!Hue页面首次登陆可任意填写用户名密码,但需要注意的是此时的用户将作为Hue的超级管理员账号!!!

1. Load Balancer无法启动
# 安装httpd和mod_ssl后重启Load Balancer
sudo yum -y install httpd mod_ssl
2. 配置Hue查看HBase
2.1. 开启HBase Thrift服务
  • HBase配置页面搜索Thrift,启用服务,重启
2.2. 修改HBase配置(core-site.xml)
  • HBase配置页面搜索core-site.xml,作如下修改
<property>
	<name>hadoop.proxyuser.hue.hosts</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.hue.groups</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.hbase.hosts</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.hbase.groups</name>
	<value>*</value>
</property>
2.3. 修改Hue配置(hue_safety_value)
  • HBase配置页面搜索hue_safety_value,添加如下内容
[hbase]
hbase_conf_dir={{HBASE_CONF_DIR}}
thrift_transport=buffered

(三)Hive相关问题

1. Hive中文注释乱码
1.1. 进入MySQL,查看hive库默认编码
show create database hive;
1.2. 修改默认编码为Latin1
alter database hive default character set latin1;
1.3. 修改hive元数据
use hive;
alter table COLUMNS_V2 modify column COMMENT varchar(4000) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
  • 新建表可解决乱码问题,旧表可使用alter命令修改注释内容
2. Hive服务内存不足
  • CDH默认的Hive Metastore Server和Hiveserver2内存不足,可适当调高
  • Hive配置页面搜索Java堆栈大小,修改对应配置,重启服务
3. 配置Hive支持update和delete
3.1. 修改配置
  • Hive->配置->hive-site.xml->服务高级配置
<property>
	<name>hive.txn.manager</name>
	<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
	<name>hive.compactor.initiator.on</name>
	<value>true</value>
</property>
<property>
	<name>hive.compactor.worker.threads</name>
	<value>1</value>
</property>
  • Hive->配置->hive-site.xml->客户端高级配置
<property>
	<name>hive.support.concurrency</name>
	<value>true</value>
</property>
<property>
	<name>hive.enforce.bucketing</name>
	<value>true</value>
</property>
<property>
	<name>hive.exec.dynamic.partition.mode</name>
	<value>nonstrict</value>
</property>
<property>
	<name>hive.txn.manager</name>
	<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
3.2. update和delete功能的限制
  • 建表必须使用ORC格式
  • 必须创建分桶表
  • 建表语句需包含tblproperties('transactional'='true')
-- 示例
create table [表名]
(col1 type1, col2 type2, ……coln typen)
clustered by [分桶字段]
into [分桶数] buckets
stored as ORC
tblproperties('transactional'='true')
;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7离线安装PostgreSQL的步骤如下: 1. 首先,在一台联网的CentOS 7机器上下载所需的PostgreSQL安装包。可以在官方网站(https://www.postgresql.org/)上找到最新的发布版本。选择适用于CentOS 7的RPM安装包,并下载到本地。 2. 将下载好的RPM安装包以及其所有依赖的RPM安装包打包成一个tar.gz压缩包,方便在离线环境中使用。 3. 将这个压缩包复制到目标机器上。 4. 在离线环境的CentOS 7机器上,解压缩这个打包好的压缩包。 5. 在解压缩的目录中,打开终端,并以root用户身份执行以下命令以安装PostgreSQL及其依赖: ``` rpm -ivh *.rpm ``` 其中,`*.rpm`是指安装包所在的目录下所有RPM安装包的通配符。 6. 安装完成后,需要进行一些基本的配置,例如创建数据库管理员用户、启动数据库服务以及设置开机自启动等。具体的配置步骤可以参考PostgreSQL官方文档。 注意事项: - 离线安装PostgreSQL时,需要确保所下载的RPM安装包与目标机器的CentOS 7版本和硬件架构相匹配,否则可能导致安装异常或不成功。 - 离线安装时,需提前了解PostgreSQL所需的所有依赖,并确保在目标机器上已经安装了这些依赖的RPM包,否则安装过程将会失败。可以通过在联网环境中运行以下命令查看依赖关系: ``` yum deplist *.rpm ``` 以上是CentOS 7离线安装PostgreSQL的简要步骤,具体操作可能会因实际情况而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值