基本环境
软件 | 版本 |
---|---|
操作系统 | 中标麒麟高级服务器操作系统软件V7.0U6(nsV7Update6-adv-lic-build4-x86_64.iso) |
Java | Oracle JDK 1.8 |
数据库 | mysql 5.7 |
准备工作
服务器配置
附:服务器配置
安装包准备
- CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
- CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
- manifest.json
- cm6.2.1-redhat7.tar.gz
- mysql-connector-java.jar
附,百度网盘下载地址 ,提取码:aj91
准备Cloudera Manager Yum库
- 安装 httpd
yum install -y httpd
- 启动 httpd 服务
systemctl start httpd
systemctl enable httpd
- 将
cm6.2.1-redhat7.tar.gz
上传到cdh主节点的/var/www/html
目录并解压- 配置yum源
cd /etc/yum.repos.d
vi cloudera-manager.repo
添加以下内容:
[cloudera-manager]
name=cloudera-manager-6.2.1
# cdh是该服务器的主机名
baseurl=http://cdh/cm6.2.1/
gpgcheck=0
enabled=1
yum clean all && yum makecache
安装Mysql
附:安装mysql
#CDH官方推荐的MySQL的配置内容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M
#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_ALL_TABLES
配置mysql驱动
上传
mysql-connector-java.jar
到/opt
目录
mkdir -p /usr/share/java/
cp /opt/mysql-connector-java.jar /usr/share/java/
mysql中创建cdh所需数据库
!!!注意,库名不要包含特殊字符,最好仅由字母与数字组成
服务名 | 数据库名 | 用户名 |
---|---|---|
Cloudera Manager Server | manager2cdh | root |
Activity Monitor | monitor2cdh | root |
Hue | hue2cdh | root |
Hive Metastore Server | hive2cdh | root |
Oozie | oozie2cdh | root |
其他配置
为了避免安装集群时出现异常,请执行以下命令配置环境参数
sysctl vm.swappiness=10
echo 'vm.swappiness=10'>> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
安装Server
安装 Cloudera Manager Server
yum install -y jdk cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
!!!过程中需要很多依赖包,要确保服务器配置
步骤中的yum源可用
安装成功的目录结构如下图,若有不同,重新执行以上命令:
配置本地Parcel存储库
将
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
,CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
,manifest.json
上传到/opt/cloudera/parcel-repo
下
执行:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
chmod 777 -R /opt/cloudera/parcel-repo
设置Cloudera Manager 数据库
执行:
/opt/cloudera/cm/schema/scm_prepare_database.sh -v --host 192.168.200.1 --scm-host 192.168.200.100 -P3306 mysql manager2cdh root
参数说明:
--host
:数据库主机名--scm-host
:cdh server主机名-P
:数据库端口号mysql
:数据库类型manager2cdh
:上面预创建的数据库名称root
:数据库连接用户名
不报错,且出现:All done, your SCM database is configured correctly!
即为成功
启动Server
systemctl start cloudera-scm-server
启动过程中可以观察:/var/log/cloudera-scm-server/cloudera-scm-server.log
当出现:INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
时,说明启动成功了
浏览器访问:http://192.168.200.100:7180
默认的账号密码为:admin/admin
安装集群
版本选取
欢迎页
,点击继续
接收条款
,勾选接受,点击继续
版本选择
,选择免费版,点击继续
集群配置
欢迎页
,点击继续
集群名称
,输入:项目名称_CDH,如:BYJW_CDH
主机配置
,输入主机网段,如:192.168.200.[100-102]
勾选需要安装集群的主机,点击继续
选择存储库
,这里选自定义存储库,配置上面我们准备好的Cloudera Manager Yum地址,这里是:http://cdh/cm6.2.1/
使用Parcel
,如果之前的【配置本地Parcel存储库】步骤操作无误的话,这里会自动选择【使用Parcel】,并加载出CDH版本,确认无误后点击【继续】
- 如果出现无法加载cdh版本的情况,尝试通过以下命令生成sha文件
cd /opt/cloudera/parcel-repo
mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha.bak
sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel | awk '{ print $1 }' > CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
chmod 777 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
安装JDK
,两个选项都勾选上,避免后续检查失败
SSH登录配置
,用于配置集群主机之间的SSH登录,填写root用户的密码,根据集群配置填写合适的【同时安装数量】值即可
安装Agent
,到这一步会自动进行节点Agent的安装,稍等一会儿,即可安装完
安装Parcel
,这一步同样是自动安装,分配步骤的速度主要取决于网络环境,耐心等待即可
主机检查(Inspect Hosts)
,点击Inspect Hosts
按钮等待检查完成即可
- 若状态为正常,但无法点击继续,可以选择最下方的选项:
I understand the risks, let me continue with cluster creation.
- 也可以点击
显示检查器结果
查看异常消息,根据异常消息百度解决问题,处理完毕后点击重新运行
选择服务类型
,选择自定义服务,HBase,HDFS,Hive,Hue,Impala,Yarn,Oozie,Zookeeper
角色分配
,根据主机的服务均衡性做一定的调整
数据库设置
,根据【mysql中创建cdh所需数据库】章节安装的数据库进行配置,配置完成后点击测试连接
,测试通过继续
审核更改
,(这一步很重要)这里主要根据分区情况,将数据目录和日志目录分配到空间比较充裕的分区中去,包括:- HDFS 根目录(hbase.rootdir)
- DataNode 数据目录(dfs.datanode.data.dir)
- NameNode 数据目录(dfs.namenode.name.dir)
- HDFS 检查点目录(dfs.namenode.checkpoint.dir)
- NodeManager 本地目录(yarn.nodemanager.local-dirs)
- 数据目录(dataDir)
- 事务日志目录(dataLogDir)
继续后,等待集群安装完成
安装客户端
问题集锦
时钟偏差
安装ntp服务:yum install -y ntp ntpdate
修改配置:
ntp服务节点
# 设置对内网主机提供NTP服务,集群网关是192.168.20.1,允许内网其他机器同步时间
restrict 192.168.20.1 mask 255.255.255.0 nomodify notrap
# 指定上层对时的外部服务器,优先选择阿里云的时钟服务
server time6.aliyun.com perfer
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
#允许上层时间服务器主动修改本机时间
restrict time6.aliyun.com nomodify notrap noquery
restrict 0.cn.pool.ntp.org nomodify notrap noquery
restrict 1.cn.pool.ntp.org nomodify notrap noquery
restrict 2.cn.pool.ntp.org nomodify notrap noquery
restrict 3.cn.pool.ntp.org nomodify notrap noquery
#外部时间服务器不可用时,设置以本地时间作为时间服务
server 127.127.1.0
fudge 127.127.1.0 stratum 10
ntp子节点
# 指定上层对时的外部服务器,192.168.20.30为配置了ntpd时钟服务端的节点IP
server 192.168.20.30 perfer
server time6.aliyun.com
#允许上层时间服务器主动修改本机时间
restrict 192.168.20.30 nomodify notrap noquery
restrict time6.aliyun.com nomodify notrap noquery
# 外部时间服务器不可用时,设置以本地时间作为时间服务
server 127.127.1.0
fudge 127.127.1.0 stratum 10
启用 ntp 服务
systemctl start ntpd
systemctl enable ntpd
初始时间同步
ntpdate -u time6.aliyun.com
同步系统时间到硬件
hwclock --systohc