搭建CDH流程记录
- 如何搭建本地yum源
1.配置yum源这里使用 阿里源 http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
2.安装http软件
yum install httpd -y
3.配置httpd.conf
vi /etc/httpd/conf/httpd.conf
在 AddType application/x-gzip .gz .tgz 添加 .parcel
例: AddType application/x-gzip .gz .tgz .parcel
4.启动httpd服务
systemctl start httpd #启动服务
systemctl enable httpd #开机自启动
访问web页面,如果无法访问可能是防火墙没有关
但是此时并不能作为其他主机的yum源地址,还需要在当前文件夹下做如下操作
yum install createrepo
createrepo .
此时可以作为yum源供本地服务器下载文件
- 未在已配置的存储库中找到任何parcel需要在/opt/cloudera/parcel-repo/文件夹下放下如下文件才可被识别然后重启服务
systemctl restart cloudera-scm-server
- 无法连接数据库
解决方法:在mysql内执行下列语句
grant all privileges on *.* to root@'%' identified by 'root' with grant option;
flush privileges;
3.若以上的方法未能生效,尝试执行
#grant all privileges on *.* to 'root'@'cdh1' identified by 'root' with grant
grant all privileges on *.* to 'root'@'主机名' identified by 'root' with grant option;flush privileges;
如果如下页面总是出现多处错误(no GCs detected),可能是虚拟机分配的内存资源不够,多重试几次就可以,也可以加大虚拟机的内存大小
查看cloudera-scm-server报错日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
搭建成功后,各个节点的可用空间不足,下次搭建时需要注意给虚拟机分配足够的磁盘空间(至少30G)
- ntp时钟同步问题
安装了ntp服务总是无法时间同步,这里用的时钟同步源是ntp1.aliyun.com,总是无法时钟同步,索性就不使用外网时钟同步,使用本地时钟同步
找到其中一台作为修改ntp配置文件,这里使用master
vi /etc/ntp.conf
#没有联网只需在配置文件末尾添加以下两条即可,这个即可
server 127.127.1.0
fudge 127.127.1.0 stratum 10
修改/etc/sysconfig/ntpd 文件
增加内容如下
SYNC_HWCLOCK=yes
重启ntpd服务
systemctl restart ntpddate
其他机器配置,修改配置文件
a).修改配置文件:
[root@slave1 ]# vi /etc/ntp.conf
添加下面1条即可:
server master iburst
b).重启ntpd服务
[root@slave1 ]# systemctl restart ntpddate
c).配置定时任务 10 分钟与时间服务器同步一次
[root@slave1]# crontab -e
*/10 * * * * /usr/sbin/ntpdate master
最后时钟同步成功
- CDH启动Spark
尝试搭建CDH集群,跟着教程走了一遍,HDFS、Hive、Hue等这些用着都没问题,到后面使用spark的时候,发现这玩意没装好
-
CDH中Spark的路径在/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/spark
./sbin/start-master.sh开启master,访问master:8080 没问题,再来开启slaves -
在spark的conf目录下,新建slaves文件,加入内容
-
使用./sbin/start-slaves.sh命令,出现以下错误1 (JAVA_HOME is not set)
在spark的sbin目录下的spark-config.sh中缺少JAVA的路径设置
在spark的sbin目录下的spark-config.sh中添加JDK的路径即可,每个slave都要加此配置(/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/spark/sbin)
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
- 出现错误2,端口占用问题
原来是yarn和spark的worker端口冲突,都是7337,这时候查找一下没有被占用的端口,替换掉worker的7337端口即可
打开spark目录下的conf/spark-defaults.conf,设置spark.shuffle.service.port=7447 ,两台slaves机器的配置文件都要修改然后再次尝试启动slaves并没有报错,然后打开master:8080,从节点启动成功
- 重新启动slaves
访问8080端口,发现成功启动work
参考链接
- CDH搭建
- CDH搭建三部曲,搭建yum源,安装前期配置,前台的安装配置
- 免费版CDH环境搭建(附带免费下载地址)
- CDH6.2安装配置Spark