0


cdh集群搭建(6.3)

如果你的虚拟机给的内存少于14G,不用往下看了,机器压力非常大,建议先装内存条。

我们做大数据的,机器就是要大硬盘,大内存,高核cpu,其他无所谓,如果要做机器学习,那你显卡还得很好。

cdh的好处,一键启动和关闭组件,可以拓展各种组件,可以直接查看某个组件的日志,以及监控状态。核心就是不需要你在去用命令启动,和关闭。最好的,我觉得是,比如你hbase出了问题,要去维护,你不需要手动先去关闭hdfs、hive等,你只用点一下关闭hdfs的按钮,他会自动帮你先去关闭哪些依赖的组件,如果你点的是关闭hbase集群,你不需要一台一台点,也不用自己写脚本,他也会帮你挨着关闭。启动也是一样。

新篇:

云服务器篇(阿里云,腾讯云,内外网双ip必看)

翻到最下面

前言

时隔2年,重新复习一遍

6.3是社区的免费版,再往后是收费版

文档老了,花了2天,解决完所有bug,先来一张图

又花了1天,把集群内部东西全部修复

我打算全部删除,重新来一次,文档要修改的非常细,这样我以后就可以3小时内搭完。


配置与安装要求

硬件要求:

官方建议,主节点内存32GB,2核心以上,从节点16GB,2核以上

虚拟机化测试,官方建议,社区版,最低要求每台8G,企业版最低要求,10G

经过测试,发现只有主节点要求高,从节点不需要太高

本人硬件:32GB内存,16核cpu的笔记本电脑。

虚拟机配置:

节点名称硬盘内存hadoop1150G12Ghadoop250G6Ghadoop350G6G
主节点内存要大于12G,(如果是三台机器的话,那么主节点的压力很大,建议内存是从节点的两倍)

从节点,我使用后发现,给的8G完全够了,所以这次给6G

hive安装的话,官方建议最低核数为4,所以建议主节点给4核,其他2核

cdh建议,datanode至少3个,主节点1个,从节点2个。如果datanode也放在主节点上,那么内存就不够了,就会全部预警。实际开发中,至少4台,但是我们内存有限就3台虚拟机,所以datanode还是只给2个

资源准备:

下载地址: Index of /test/cdh6

由于cdh在线安装会由于网络原因失败,自己建立本地httpd,进行安装。所以需要下载所有相关的资源。

cm资源准备:

他是cdh管理平台的相关安装包

cdh资源准备:

他是cdh的parcel包,里面包含各种大数据组件的安装包(如hdfs、hive、zookeeper、hbase、spark...)

什么hdfs,hive都在这个压缩文件里

mysql资源准备:

cm管理和监控 大数据组件,需要通过mysql进行监控,并且像hive(存储元数据)、hue这些组件需要依赖于外部mysql

我选择的mysql是外部安装(没有什么压力的节点),没有装在cdh的节点,这样就可以防止当某台节点过大,挂了,导致mysql挂,而mysql又是其他节点的元数据,引起都挂的情况

工具资源;

自己写的同步文件脚本,mysql-connector-java-5.1.47.jar(cdh与mysql通信需要这个),指定版本jdk(cdh对jdk要求很严,sun公司的jdk几乎都不支持)

虚拟机搭建以及修改网卡(其中的centos7):

vmware虚拟机安装教程-边搭边写_我要用代码向我喜欢的女孩表白的博客-CSDN博客

搭建3台,hadoop1(12g,150gb,4核),hadoop2(6g,50gb,2核),hadoop3(6g,50gb,2核)

若为正式环境,按自己需求配置,cdh6建议不少于5台datanode

集群基础环境搭建

安装步骤介绍

免密登录

hdfs和其他通信是通过ssh,如果不配置,则每次心跳感应,需要你输入密码

关闭selinux和swap

关闭selinux(cdh官方等都建议关闭它,它的作用是限制资源访问,比如给你的impala限制了资源,由于impala用户权限低,查询就会很慢,失去了它的作用)

关闭swap(避免交换内存,默认是开启,如果你内存不够,那么他就会先写到磁盘上,然后释放的时候,会将磁盘中的内存,加载了内存中,如果磁盘中的消耗的资源大于内存,结果就是宕机,关闭后,相当于是一种保护策略)

httpd安装与yum.repo配置(含cdh服务安装)

我通过本地yum,访问httpd源,进行安装,全部都是本地环境进行下载,所以快,cdh安装自定义源也是httpd,这一步也会对cdh进行安装,包含关闭防火墙,关闭后,所有端口都可以访问,就可以通过我的windows访问服务端的httpd,cdh页面,服务端也能访问mysql

hostname、network、host同步

不配置的话,在cdh页面安装时会出现agent心跳接收不到,而且hosts必须是faq写法(就是ip 域名 别名),如果域名和别名名字不一样,会出现警告

mysql安装与scm脚本执行

这步会提前创建好,各个大数据组件的mysql库,并且会执行scm脚本,检测方式是,如果成功,启动cm-server后,则会在scm库下出现各种cdh的日志监控表,这个成功了,才能通过7180接口,进入到cdh界面

cdh启动

启动cm-server还有cm-agent

页面组件安装

如果上面步骤都成功了,则可以进入可视化的网页进行部署了

正式开始安装

免密登录

通过ssh生成密钥(所有节点)

如果你是root账户的权限,没有root的密码,如果你有密码可以跳过这个操作


则创建一个账户,给一个无密码的sudo权限,切记一定要在root账户下操作,否则将会导致sudo异常。

su root 或者sudo -i 进入root权限

创建用户

useradd cdh

passwd cdh

输入密码(2次)

修改权限

visudo或者vi etc/sudoers

cdh ALL=(ALL) NOPASSWD:ALL


ssh-keygen

遇到提示全部按enter

发送密钥到其他节点

在hadoop1(就是101)节点 执行,他问你问题,你就yes,过程中需要输入其他节点的密码

ssh-copy-id 192.168.30.102

如果出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic).


sudo -i

vi /etc/ssh/sshd_config

配置改成

PasswordAuthentication yes

重启

systemctl restart sshd.service


ssh-copy-id 192.168.30.103

这样从hadoop1通过ssh到hadoop2和hadoop3就不需要密码

同样在hadoop2执行

ssh-copy-id 192.168.30.101

ssh-copy-id 192.168.30.103

在hadoop3执行

ssh-copy-id 192.168.30.101

ssh-copy-id 192.168.30.102

如果节点很多,建议写个脚本,最后单元测试下,看看是否能跳转成功,避免后续因为这个问题,找不到原因,力求,每步都是对的。

关闭selinux和swap(所有节点)

关闭selinux

先临时关闭

setenforce 0

在永久关闭

vi /etc/selinux/config

修改SELINUX为disabled,并且注释掉之前的enforcing

这里我用了同步脚本(ssync,作用就是将文件,复制到其他节点),由于里面都是相同内容,我才使用。使用同步脚本前,先看旁边的脚本说明

关闭swap(所有节点)

临时关闭

swapoff -a

永久关闭

vi /etc/fstab

注释掉swap这一行

登录到其他节点,执行临时关闭,并注释掉这一行不能使用同步脚本,因为每个节点的uuid不同)

httpd安装与yum.repo配置(含cdh服务安装)

上传资源

创建software目录

mkdir /software

将资源复制到这个目录下,由于编码问题,我复制过去,改成了英文

cm6,cdh6,tools 分别对应 cm管理平台资源,cdh大数据组件资源,cdh工具资源

分发脚本的修改

将ssync复制到根目录

cd /software/

cp ssync /

分发脚本步骤

配置节点ip特殊说明

vi /ssync

** 将/software资源通过ssync发送到其他节点**

将tools中的

sh /ssync /software/

关闭防火墙(所有节点)

#关闭防火墙
systemctl stop firewalld.service
#查看防火墙状态
systemctl status firewalld.service
#永久关闭防火墙(其实就是关闭后,设置开机不自动启动)
systemctl disable firewalld.service

windows本地防火墙也要关闭,集群要与本地mysql元数据通信(我是windows上的mysql作为集群元数据)

http服务搭建

安装httpd

选择任意一台机器安装,我选择的101节点

# 安装httpd,安装本地仓库和Cloudera Manager Server都依赖httpd
sudo yum -y install httpd
# 启动httpd
sudo systemctl start httpd
# 查看httpd状态
service httpd status
#开机自启
sytemctl enable httpd

修改httpd配置

vi /etc/httpd/conf/httpd.conf

修改Listen端口号,默认是80,改成9999,因为我80端口在使用。

增加.parcel(这样cdh的包也能通过yml解析到)

httpd的默认文件是/var/www/html

配置完成,重启服务,更新

sudo systemctl restart httpd

通过浏览器访问,查看是否成功

如果直接是httpd文件服务器页面,就ok,如果为Testing 123..(apache默认首页),请移步到最下方问题汇总进行解决

cdh本地存储库建立与cm安装

我们安装cdh都是离线安装,在线安装太慢,离线安装实际上也是模仿在线安装,只是把在线安装的httpd地址,改成了我们自己本地的httpd服务器。

建立cm库

httpd中的地址,我没有修改,所以文件必须放在/var/www/html默认目录下

cloudera-manager的安装包是存放在cm6目录下的

cdh大数据的相关组件是存放在cdh6目录下的

创建文件夹cm6

mkdir -p /var/www/html/cloudera-repos/cm6

进入/software目录,我上传资源的目录

--strip-components=1的意思是,直接解压内部的内容,到cm6的目录

如果不加,则会在外面创建一个目录,解压到创建的目录中,这样cdh会读取不到

-C 的意思是指定解压位置

cd /software/cm6

#解压cm压缩包,到httpd服务cm6文件夹

tar -zxvf cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6/ --strip-components=1

#修改权限

sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6

将此资源目录的2个文件也传过去

allkeys.asc 文件密钥

manifest.json 各兼容组件版本

cp allkeys.asc /var/www/html/cloudera-repos/cm6/

cp manifest.json /var/www/html/cloudera-repos/cm6/

建立cdh库

创建文件夹cdh6

mkdir -p /var/www/html/cloudera-repos/cdh6

进入cdh6资源目录

cd /software/cdh6

#将cdh资源目录的内容复制到httpd的cdh6目录中

cp * /var/www/html/cloudera-repos/cdh6/

#修改权限
sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6

记得,将目录中的

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
改成
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

创建cloudera-repo本地仓库位置

目录不要改变,cdh默认目录它,如果你要改变,还需要改cdh配置

这个,在cdh的页面设置parcel源的时候,指定本地地址就是它

sudo mkdir -p /opt/cloudera/parcel-repo

#将cdh资源目录下的内容复制过去

cd /software/cdh6

#将cdh资源目录的内容复制到httpd的cdh6目录中

cp * /opt/cloudera/parcel-repo

记得,将目录中的

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
改成
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

本地yum源配置

创建 /etc/yum.repos.d/cloudera-repo.repo 文件

vi /etc/yum.repos.d/cloudera-repo.repo

cloudera-repo.repo文件的内容如下,**<web_server> 是parcel仓库服务器的主机名或ip地址,如果不是80默认端口,还需要,多加个端口**号,我文章中httpd端口号为9999

[cloudera-repo]
name=cloudera-repo
baseurl=http://<web_server>/cloudera-repos/cm6/
enabled=1
gpgcheck=0

本地yum.repo中配置完cdh的目录后,需要分发到其他节点里

sh /ssync /etc/yum.repos.d/cloudera-repo.repo

安装jdk

注意:版本不能随便使用,cdh不兼容sun公司jdk,对版本要求比较苛刻

查看当前jdk
rpm -qa|grep jdk

卸载原有jdk
rpm -e --nodeps xxxx

假如你没有提前卸载,而是直接安装,如果原先的版本高于, 你现在安装的jdk版本,那你的jdk会虚假的安上去,实际上没有按上去,但是会被系统记录。你得删除原有的jdk,然后在覆盖安装rpm -Uvh才可以:

rpm -Uvh xxx.rpm --nodeps --force
然后更新环境变量
source /etc/profile

安装jdk(所有节点)

进入/software/tools资源目录

cd /software/tools

#安装

rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

配置环境变量

刚刚自动安装,目录在这 /usr/java/jdk1.8.0_181-cloudera

vi /etc/profile

里面在最后填写

export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera

export PATH=$PATH:$JAVA_HOME/bin

分发

sh /ssync /etc/profile

更新环境变量,并验证(所有节点)

source /etc/profile

java -version

安装Cloudera Manager

安装守护进程、和server以及agent

注意

server是只有101,主节点安装

agent是 所有节点,都安装

# 在cmserver服务器上安装Cloudera Manager Server
sudo yum -y install cloudera-manager-daemons cloudera-manager-server

# 在所有需要cm server监控的服务器上安装Cloudera Manager agent,101,102,103
sudo yum -y install cloudera-manager-daemons cloudera-manager-agent

Mysql配置

这里我已经在本地搭建过了mysql(传送门中的mysql是8.0,cdh6不支持8.0,只支持5.7,自己下载5.7的版本,安装步骤可以服用传送门中mysql, mysql8.0搭建传送门)

这里只说与cdh相关的部分

mysql跳过ssl验证

ssl验证,如果是http请求会被警告,而我本地没有ssl证书,那就是http请求

centos7中的是在conf中,而windows是在bin目录中自己建立的my.ini

创建cdh集群所需要的库

sql语句(其中scm是cm平台的核心)

# 创建Cloudera组件所需的数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

几个需要干的事

mysql外部时间与本机是同步(所有机器)

由于是虚拟机,关机后时间就不走了。所以同步一下

yum install ntpdate -y #安装
ntpdate ntp1.aliyun.com #同步阿里云
date #查看现在时间,看看是否改变

设置对外授权,其他ip也能访问mysql,以及更新配置

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;

cdh要能读到mysql连接的jar包

创建目录(cdh读取mysql连接的目录,不能随便改变)

mkdir /usr/share/java

从tools资源包中,复制mysql到这个目录中

cd /software/tools

cp mysql-connector-java-5.1.47.jar /usr/share/java/

改名

mv /usr/share/java/mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

分发到其他节点

sh /ssync /usr/share/java/mysql-connector-java.jar

执行scm数据库建立脚本

主节点执行

mysql第一个参数是代表数据类型,元数据库用哪种库

scm是第二个参数,代表哪个库

root是第三个参数,代表哪个用户

-h代表是否外部数据库,如果不写默认localhost,我的是外部数据库(没有压力的节点),因为如果是放在一台中,这个节点挂了,那么他的mysql也挂,其他的服务都依赖mysql,所以都会挂。

更多详情,请查看官方文档,以及sh脚本内部

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root -h 192.168.30.101

输入root的密码,执行完毕

脚本是否执行成功校验

打开mysql查看scm表是否有数据

没有数据

重启动scm-server

sudo systemctl restart cloudera-scm-server

sudo systemctl status cloudera-scm-server

查看,发现数据刷新成功,脚本只是写入,通过systemctl,才会真正把数据写到mysql

hostname、network、host同步

cm的server和agent是通过读取host进行识别和心跳的,如果hostname和network不同步的话,会导致cdh页面安装,agent心跳感知不到

官方的hosts配置的主机名必须是fqdn(ip 域名 主机名)必须写满

这里域名要和主机名保持一致,不然会报警告

(正常情况下主机名就是域名,为了方便这里我都写主机名),

并且hostname是唯一(节点之间不能重复)

修改hosts(每台节点)

vi /etc/hosts

加入ip 节点域名 节点名称

** 修改hostname(所有节点-不同节点,名称不同,如果192.168.30.101节点就是hadoop1)**

hostnamectl set-hostname hadoop1

cdh组件集群

cdh基本环境配置

启动cdh

主节点启动,server和agent

service cloudera-scm-server start

service cloudera-scm-agent start

其他节点全部启动agent

service cloudera-scm-agent start

进入页面192.168.30.101:7180

初始账号、密码都是admin


选择社区版本

集群名称

选择机器

【1-3】代表搜索1-3

点击继续

存储库设定

选择自定义存储库

和我们之前搭好的httpd对应

地址与httpd对应

Parcel包选择

CDH and other software 选择使用 Parcel包

更多选项里,删除所有远程parcel存储库的URL(下载不下来的,因为官方很慢)

选择我们对应的httpd地址,复制到下面的URL中(橙色部分)

配置成功没有问题的话,CDH版本下面会出现

继续安装,输入密码,他自动通过多线程安装

我这里密码一样,方便使用

非root用户,需要配置无密码sudo,如果你是root则可以跳过下面这段


sudo vi /etc/sudoers(每台机器)

root ALL=(ALL) NOPASSWD:ALL

service ALL=(ALL) NOPASSWD:ALL
#service是我的非root用户


如果多台机器root密码不同,需要修改成相同,才能安装,修改后要重启agent,

不需要重启server,重启完agent后,直接在cdh页面点击重试

上面步骤如果没有错误,就会像我一样,安装过程不会遇到问题

如果机器里面以前装过mysql需要注意,查看

yum的mysql.repo中是否设置成gpgcheck=0,修改为0后还要进行重启agent

之后他会自动进行下一步安装,此时你应该能听到,散热器发出的声音

检查主机

跟着他的点就行了(把页面的检查网络性能检查主机都点),我这是点击了,网页翻译后

遇到警告

显示检查器结果

第一个问题(每台机器)

按照他说的改,首先设置为小于10

每台机器执行(临时的)

sudo 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

重新运行检测

Parcel集群组件服务选择

先给大家看看,我的内存负荷

好,我们继续按照

我选择了spark,hive,zookeeper,hue(数据工程),当然后面你也可以自己加

我选择了datanode(所有节点,但是很丑,默认是3个节点,但是cdh你给3台主机,他只给你2个节点,真正的cdh是4台)

主服务器负荷太多,因为,没有内存,做真cdh4台了

点继续

数据库设置

hive元数据配置、hue、ooize

这里选择使用jdbc

填写账号密码,连接地

这个地方,以及其他的地方,写服务器中hosts的主机名称,如果写ip,他就会以本地去连接,写hosts他就会去服务器直接连接

jdbc:mysql://主机名称:3306/metastore?useSSL=false&useUnicode=true&&characterEncoding=utf-8

库要对应

注意,hive的库是metastore

红色的地方是容易写错的点

点击测试连接

hdfs配置,选择默认

目录记录

这个地方最好保留下来,方便你下次找不到,文件看日志的时候,可以看这个

(邮件告警我没有做,正常应该写一个脚本告警,然后脚本给某人发邮件),我下次写一个py脚本,然后放上去,给某人发邮件。以前写爬虫的时候做过。

datanode 目录 /dfs/dn

namenode 数据目录 /dfs/nn

hdfs检查点目录 /dfs/snn

hive仓库位置 /user/hive/warehouse

hive元数据端口 9083

hostMonitor目录 /var/lib/cloudera-host-monitor

serviceMonitor存储目录 /var/lib/cloudera-service-monitor

ooize 目录 /user/oozie

ooize 服务目录 /var/lib/oozie/data

nodeMnager(yarn) 目录 /yarn/nm

zk数据目录 /var/lib/zookeeper

zk事务目录 /var/lib/zookeeper

继续

等他安装

此时,如果你内存太小,会安装失败,此时,你将再次听到,散热器的声音

完成

进行排错

有的时候有很多红色,需要解决。

这次,我没有做宕机实验,上次直接关闭了虚拟机,模仿宕机,所以再次出现就有了很多红色,只有一些黄色需要解决,我挂起一下虚拟机,下次从这里进行排错

挂起虚拟机后,需要时间同步

# 安装NTP
yum -y install ntp

# 添加NTP远程时间同步服务器,通常安装后会自动配置,没有的话在自行添加
# vim /etc/ntp.conf

# 启动NTP
sudo systemctl start ntpd
# 设置NTP服务开机自动重启
sudo systemctl enable ntpd
# 同步节点的时间
# 命令格式(ntp_server为/etc/ntp.conf 配置文件中的NTP服务器地址):ntpdate -u <ntp_server>
ntpdate -u 0.centos.pool.ntp.org
# 同步系统时钟
hwclock --systohc

zk问题

zk至少要3台,我只给了1台,所以报这个警告,添加多个zk就好

解决

节点问题

他说分配有问题,这个直接点, Memory Overcommit Validation Threshold

设置成0.9就行

hdfs问题

点进去是这样

这个没有办法,CDH6对hdfs备份采取了更加强大的模式,有好几种,但是对节点要求最小的模式,也至少要5台,所以这个警告,我们无视,CDH5没有这种功能,所以不会警告

另一个警告

他说namenode至少要1G,所以我们改成1024 兆字节就好

cloudera Service

点进去改就行

内存够,就没有问题,但是内存不够,所以这些报警就忽略。

其中4个报警,3个是因为内存达到阈值,超过百分之90的配置就会警告(默认是百分之80)

还有1个是,hdfs的节点要求,至少5台,才能用这个默认模式的高效存储。

**至此,结束 **

问题汇总

httpd问题

httpd访问界面Testing123

这是apache 的默认界面,能访问代表你配置成功,但是他的页面覆盖了你的文件系统,需要不让他访问默认界面,再进行重启

httpd访问testing123,直接备份一份最好,不需要注释内容
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

再重启httpd
sudo systemctl restart httpd

重启http

systemctl restart httpd

成功


cdh安装问题

执行 sudo yum -y install cloudera-manager-daemons cloudera-manager-server

出现拒绝连接

httpd的默认接口不要修改,yum,读取本地默认为80端口。

有2个解决方法:

1)修改httpd为80,这我肯定是不会去修改的,为什么我也说过

  1. 修改cdh的yum.repo,让他指向你指定的端口

我采用的第二种方法

vi /etc/yum.repos.d/cloudera-repo.repo

加上端口号

重新执行

sudo yum -y install cloudera-manager-daemons cloudera-manager-server

安装成功


没有可用软件包 cloudera-manager-daemons。

没有可用软件包 cloudera-manager-agent。
错误:无须任何处理

原因是因为,你的yum里面没有配置,我是从节点,没有把主节点的clouder.repo复制过来,所以在从节点执行yum,他在自己的yum仓库中没有找到,所以会出现这个错误。

解决方式,将你配置了cloudera.repo的yum文件复制到,其他节点的yum仓库中

sh /ssync /etc/yum.repos.d/cloudera-repo.repo

再次执行,安装agent命令

sudo yum -y install cloudera-manager-daemons cloudera-manager-agent

正常安装

cdh scm_prepare_database.sh脚本执行后没有反应,mysql的scm库中没有相关表

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh

满足这几个就没有问题

首先mysql要能被连接,

关闭防火墙,

设置让任何用户ip都能通过密码访问,记得要刷新

本机与mysql节点时间要相同,

cdh要能读到mysql连接的jar包

最后显示脚本成功后,一定要重新启动cm-server,他是启动时,将sh中命令,执行表到数据库中。

cdh执行/opt/cloudera/cm/schema/scm_prepare_database.sh出现错误

**DbCommandExecutor ERROR Error when connecting to database.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection **

原因是,我没有建立scm库

sql执行

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

之后在执行还是错误,因为我连接的是-h 192.168.30.101

我忘记了我是外部数据库,外部数据库的节点是192.168.30.2(自己设置的vm8的网络适配器的ip,这样就算我换wifi,服务端照样可以访问)

改为-h 192.168.30.2

cdh界面,勾选集群,当前受管

进入集群->点击cloudera Manager删除机器

删除

勾选后,点击已选择的操作(千万不要点成了,从群集中删除,因为你没有集群,你要从cloudera中删除)

**Remove From cloudera Manager **

然后点击添加集群,就好了

Cdh中Parcel存储库界面,遭遇页面不能点击继续

1)由于修改了存储库的parcel(更多选项),他没有反应过来 ,点击返回上一级,在返回上一级,然后重新继续,就能加载出来了

2)是检查,httpd上的,后缀为sha的文件,必须把.sha1改成sha。

cd /var/www/html/cloudera-repos/cdh6

mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

3)是检查 /opt/cloudera/parcel-repo 是否.sha1没有改成sha

cd /opt/cloudera/parcel-repo

mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

最后重启cm-server,cm-agent

/var/www/html/xxxx中的sha1改为sha

/opt/cloudera/parcel-repo中的sha1修改为sha

弄完重启

节点

service cloudera-scm-server restart

service cloudera-scm-agent restart

再次进入,出现了

安装cm-agent出现
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql"

原因是因为这台机器里以前装了mysql,但是mysql.repo文件里面开启了校验:所以gpgcheck=0关闭校验
详情:解决GPG key retrieval failed: [Errno 14] curl#37 问题_Kun_Zhou_的博客-CSDN博客

遇到install时,一个节点卡死,很慢,一直等着激活

已分配是0

查看top,以为是内存问题,结果发现并不是,于是查看agent状态

service cloudera-scm-agent status

发现和其他成功节点不一样,他有错误

/opt/cloudera/cm-agent/lib/python2.7/site-packages/psutil/_pslinux.py:477: RuntimeWarning: dirty, writeback, mapped, commit_limit memor...ere set to 0
运行警告,内存不能设置为0

查看日志

File "/opt/cloudera/cm-agent/lib/python2.7/site-packages/flood/util/rpc.py", line 33, in resolveHostPort
return HostPort(socket.gethostbyname(w[0]), port)
gaierror: [Errno -2] Name or service not known
看到name我就想到了host

修改/etc/hosts(我之前把他注释掉了)

终于从0B开始走了

成功

云服务器搭建问题篇

云服务器,他有2个ip,内网和外网ip。

cdh界面的日志,看了找不到问题,主要看,服务器的日志

进去看日志

cd /var/log/cloudera-scm-server

1.etc/hosts中,必须全部配置内网ip,其他ip不要配置

2.安装时候,使用云服务器安装时,注意不要开vpn,除非这个vpn是云服务器的

3.如果多次安装了agent,失败了,需要删除guid

find / -name "cm_guid"

cd /var/lib/cloudera-scm-agent

rm -rf cm_guid

重启agent,重启server

service cloudera-scm-agent restart

service cloudera-scm-server restart



本文转载自: https://blog.csdn.net/qq_38403590/article/details/125847502
版权归原作者 我要用代码向我喜欢的女孩表白 所有, 如有侵权,请联系我们删除。

“cdh集群搭建(6.3)”的评论:

还没有评论