搭建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源地址,还需要在当前文件夹下做如下操作
yum install createrepo
createrepo .
此时可以作为yum源供本地服务器下载文件
- 未在已配置的存储库中找到任何parcel 需要在/opt/cloudera/parcel-repo/文件夹下放下如下文件才可被识别 需要在/opt/cloudera/parcel-repo/文件夹下放下如下文件才可被识别 然后重启服务 然后重启服务
systemctl restart cloudera-scm-server
- 无法连接数据库
  解决方法:在mysql内执行下列语句 解决方法:在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)
搭建成功后,各个节点的可用空间不足,下次搭建时需要注意给虚拟机分配足够的磁盘空间(至少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端口即可 原来是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



















