准备
- 建议最少4台物理机或者虚拟机(一个控制节点,3个数据节点),4核16G,硬盘500G,挂载根目录
- 如果用于学习,可以4核8G,如果是生产部署,推荐8核32G以上
- 系统为CentOS7.6,使用root用户登录
- CDH版本为6.2.0
节点说明规划:
cdh1 主节点
cdh2 从节点
cdh3 从节点
cdh4 从节点
基础配置
对这个平台我说一下自己的理解:平台分为两部分: CDH + CM
前期我们需要先装 CM ,安装完成后,启动server和agent,在7180上面安装离线包CDH,两个东西相辅相成,前期准备工作:
1.挂载磁盘操作请参考这篇文章 : https://blog.csdn.net/Alex_81D/article/details/105043847
2.改host、jdk、免密 那些跟安装hadoop集群的前期操作是一样的,这里不再多说,可参考博主这篇文章配置准备工作
https://blog.csdn.net/Alex_81D/article/details/102964892
3、jdk建议做软连接 ln -s /piflow/soft/jdk1.8.0_11 /usr/java/
4、数据库配置:建议提前创建以下几个数据库,编码格式建议用这个编码,避免不必要的错误
这里提前做个答疑:关于安装mysql库的问题:
几乎每篇帖子都会写道安装mysql库,其实也可以不安装mysql库,用你自己之前有的,改一下配置文件就好,参考 步骤8
这篇文章主要是安装CDH的操作过程:
1.下载cloudera 6.2.0(注:目前cm6.2.0 已经更新为安装6.2.1,这个需提前下载好)
ClouderaManager下载地址
https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/
下载这四个文件:
CDH6.2.0安装包地址:https://archive.cloudera.com/cdh6/6.2.0/parcels/
下载这四个文件:
先放在自己的目录下,我的目录为 /piflow/soft
2.安装mysql驱动(所有节点)
在官网上下载mysql-connector-java-5.1.47.tar.gz,解压出 mysql-connector-java-5.1.47.jar
在所有节点上,执行:
mkdir -p /usr/share/java
cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
3.安装Httpd服务(manager)
- yum install httpd
- service httpd start
- systemctl enable httpd.service 设置httpd服务开机自启
4.导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)manager节点
rpm --import https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPM-GPG-KEY-cloudera
离线安装用这个命令 : rpm --import RPM-GPG-KEY-cloudera
5.安装cloudera-manager-server(主节点)
切换到CM放包的那个位置,
cd /piflow/soft/cdh/CM
yum install cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
离线安装:
rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
6.安装cloudera-manager-agent(所有数据节点) rpm安装
cd /piflow/soft/cdh/CM
yum install cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
离线安装:
rpm -ivh cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
7.防止出现莫名错误,事先安装以下插件(所有节点)
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --skip-broken --nogpgcheck
8.配置cloudera-scm-server数据库连接 (主节点)
在cdh1节点(主节点)上,编辑/etc/cloudera-scm-server/db.properties,配置数据库,示例如下:(这块写你自己的库,事先创好库)
vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=cmf 库名
com.cloudera.cmf.db.user=YOUR_DB_USER_NAME #用户名
com.cloudera.cmf.db.password=YOUR_DB_USER_PASSWORD #密码
com.cloudera.cmf.db.setupType=EXTERNAL
注意:请保证mysql中有一个名为 cmf 的空数据库(注意数据库编码)
9.parcel初始化
在cdh1节点上,新建parcel目录:(这个可以用自己的路径,比如我就是自己挂载的盘,把CDH的离线包放到目录里面就行,在登录到CM后,更改这个配置,重启server就可以了)
mkdir -p /opt/cloudera/parcel-repo
#并复制parcel到该目录:(把cdh那4个包全挪过来)
mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel /opt/cloudera/parcel-repo
mv CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
mv manifest.json /opt/cloudera/parcel-repo
10.config配置(agent上面修改)
在cdh2、cdh3、cdh4节点上,编辑/etc/cloudera-scm-agent/config.ini文件,将server_host修改为cdh1
vi /etc/cloudera-scm-agent/config.ini
11.启动server(主节点)
在cdh1节点上,执行:
service cloudera-scm-server start
server的启动是否成功查看命令: service cloudera-scm-server status
server 启动的默认日志地址: tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
12.启动angent
在cdh2、cdh3、cdh4节点上,执行:
service cloudera-scm-agent start
日志: tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
agent 的启动是否成功查看命令: service cloudera-scm-agent status
每个机器agent 都启动成功后,
打开浏览器,访问cdh01:7180(启动比较慢,需要1-2分钟)
默认用户名/密码: admin/admin
13.安装cloudera
按照步骤安装即可(建议选择社区版安装)
这个位置可以更改到自己指定的位置,但是需要重启server,如果控不了ip机器,可以删除库里的数据
成功后的界面,这块有比较多的不良,一个一个解决吧
========================================================================================================================================
错误记录:
kafka配置:
kafka 启动报错:删除目录文件底下的内容
kafka 启动角色报错:
可检测该文件下的内容,填上即可,重启服务
修改日志地址:
将日志存储位置更改到指定位置,避免日志文件过多造成存储盘爆满,检查spark 、hdfs、yarn,搜索 /var ,然后更改到自己创建的目录下
注意hdfs不要改这个路径: dfs.domain.socket.path
Unix域套接字路径,可通过dfs.domain.socket.path设置。该路径必须安全地阻止无优先级进程进行中间人攻击(MITM攻击,man-in-the-middle attack)。每个套接字路径必须是root拥有或者DN用户拥有,不能使用人人都可以写或者用户组可写方式的路径-->
Exception in secureMain java.io.IOException: The path component: '/piflow' in '/piflow/hdfsdata/run/hdfs-sockets/dn' has permissions 0775 uid 1002 and gid 1002. It is not protected because it is group-writable and not owned by root. This might help: 'chmod g-w /piflow' or 'chown root /piflow'. For more information: https://wiki.apache.org/hadoop/SocketPathSecurity
原因是因为修改为自己的路径后,存在不安全隐患,需改为默认
========================================================================================================================================
参考文档:
https://www.cnblogs.com/wuning/p/12022284.html
https://www.bilibili.com/video/BV1W7411P7Gx?from=search&seid=8068661875795323981