cdh集群搭建(6.3)
6.3是社区的免费版,再往后是收费版,目前官方已经取消了地址,大家可以从我下面给出的地址中获取,云服务器12月到期,我不打算继续续费(一年2000,2MB下载速度,大家觉得下的慢,可以联系我,提供赞助,只要钱够,想要多快的服务器,阿里都提供)我打算全部删除,重新来一次,文档要修改的非常细,这样我以后就可以3小时内搭完。硬件要求官方建议,主节点内存32GB,2核心以上,从节点16GB,2核以上。文档
如果你的虚拟机给的内存少于14G,不用往下看了,机器压力非常大,建议先装内存条。
我们做大数据的,机器就是要大硬盘,大内存,高核cpu,其他无所谓,如果要做机器学习,那你显卡还得很好。
cdh的好处,一键启动和关闭组件,可以拓展各种组件,可以直接查看某个组件的日志,以及监控状态。核心就是不需要你在去用命令启动,和关闭。最好的,我觉得是,比如你hbase出了问题,要去维护,你不需要手动先去关闭hdfs、hive等,你只用点一下关闭hdfs的按钮,他会自动帮你先去关闭哪些依赖的组件,如果你点的是关闭hbase集群,你不需要一台一台点,也不用自己写脚本,他也会帮你挨着关闭。启动也是一样。
目录
如果你的虚拟机给的内存少于14G,不用往下看了,机器压力非常大,建议先装内存条。
我们做大数据的,机器就是要大硬盘,大内存,高核cpu,其他无所谓,如果要做机器学习,那你显卡还得很好。
执行 sudo yum -y install cloudera-manager-daemons cloudera-manager-server出现拒绝连接
没有可用软件包 cloudera-manager-daemons。没有可用软件包 cloudera-manager-agent。错误:无须任何处理
cdh scm_prepare_database.sh脚本执行后没有反应,mysql的scm库中没有相关表
cdh执行/opt/cloudera/cm/schema/scm_prepare_database.sh出现错误
新篇:
云服务器篇(阿里云,腾讯云,内外网双ip必看)
翻到最下面
前言
时隔2年,重新复习一遍
6.3是社区的免费版,再往后是收费版
文档老了,花了2天,解决完所有bug,先来一张图
又花了1天,把集群内部东西全部修复
我打算全部删除,重新来一次,文档要修改的非常细,这样我以后就可以3小时内搭完。
配置与安装要求
硬件要求:
官方建议,主节点内存32GB,2核心以上,从节点16GB,2核以上
虚拟机化测试,官方建议,社区版,最低要求每台8G,企业版最低要求,10G
经过测试,发现只有主节点要求高,从节点不需要太高
本人硬件:32GB内存,16核cpu的笔记本电脑。
虚拟机配置:
节点名称 | 硬盘 | 内存 |
---|---|---|
hadoop1 | 150G | 12G |
hadoop2 | 50G | 6G |
hadoop3 | 50G | 6G |
主节点内存要大于12G,(如果是三台机器的话,那么主节点的压力很大,建议内存是从节点的两倍)
从节点,我使用后发现,给的8G完全够了,所以这次给6G
hive安装的话,官方建议最低核数为4,所以建议主节点给4核,其他2核
cdh建议,datanode至少3个,主节点1个,从节点2个。如果datanode也放在主节点上,那么内存就不够了,就会全部预警。实际开发中,至少4台,但是我们内存有限就3台虚拟机,所以datanode还是只给2个
资源准备:
由于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,这我肯定是不会去修改的,为什么我也说过
2) 修改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
更多推荐
所有评论(0)