目录
6. 将 /etc/cloudera-scm-agent/config.ini 分发到其他节点
=====到这里 cloudera Manager 已经安装完成 后面是对软件的安装=====
使用 pip 安装 psycopg2(每一个节点都要执行这些操作)
问题1:Error: pg_config executable not found.:
要新建几个虚拟机进行测试,或者之前在安装 hadoop 的时候拍摄的有快照,恢复到安装之前,然后再进行 cloudera manager 的安装,否则系统会提示,无法进行正常的安装操作。
cdh 官网下载地址
https://cn.cloudera.com/downloads.html
下载这三个文件
下载cloudera manager
在官网下载的时候有问题,无法正常的下载
https://cn.cloudera.com/downloads.html
由于cdh 选择的是6.1.0,所以这里也选择6.1.0版本
正常下载地址:
https://archive.cloudera.com/cm6/
我尝试了下载 xxx.tar.gz 文件,里面保存的仍然是,上面的那些 rpm 安装包。。。。。
整体架构
环境配置
在进行配置的时候,要根据自己电脑的配置,对虚拟机的配置进行调整。
我电脑是4核8线程,16G的内存, 在给虚拟机分配资源的时候,需要预留一些给 windows 系统,至少留2G内存2个处理器,否则的话,windows 和 虚拟机都会非常的卡,无法进行操作。
处理器 | 内存 | managementService | 代理人 | 服务器 | |
yang100 | 4 | 4 | 1 | 1 | 1 |
杨101 | 2 | 2 | 1 | ||
yang102 | 2 | 2 | 1 | ||
yang103 | 2 | 2 | 1 |
hadoop 全分布式安装: https://blog.csdn.net/yang_zzu/article/details/108171482
这个文章基本上的准备工作都有了
1. 修改主机名称
2. 进行秘钥认证
进行秘钥认证的时候,在每一个节点生成自己的秘钥
这种方式生成的秘钥是没有密码的秘钥,生产环境肯定会设置一个复杂的密码
ssh-keygen -t rsa
将其他节点生成的 公钥 分发到 主节点
scp id_rsa.pub root@yang100:`pwd`/id_rsa_yang101.pub
此时主节点拥有全部的 公钥
将所有的的公钥,追加到 authorized_keys 文件中
cat id_rsa_yang101.pub >> authorized_keys
authorized_keys 文件中就有其他全部节点的 秘钥
将主节点的 authorized_keys 文件分发到其他节点,这样节点之前就可以实现秘钥认证的无密码登录
scp authorized_keys root@yang101:`pwd`
3. 进行时间同步
安装 ntp 软件
yum install ntp -y
进行时间同步
ntpdate -u ntp.api.bz
系统时间同步到硬件
hwclock --systohc
4. jdk 安装
5. mysql安装
安装mysql 服务
使用yum 提示 yum install -y mysql-server 没有可用的安装包,只能手动安装
源码安装:https://blog.csdn.net/yang_zzu/article/details/104352726
docker容器安装:https://blog.csdn.net/yang_zzu/article/details/104469902
6.关闭防火墙
7.关闭selinux
查看 selinux 的状态
getenforce
a.临时关闭:
输入命令 setenforce 0,重启系统后还会开启。
b.永久关闭:
输入命令 vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
将文件分发到其他节点
重启电脑后会生效
8.下载第三方包
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
9.创建进程用户cloudera-scm
创建用户
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
上面的操作除了 mysql 数据库外,其他的步骤所有的集群都要进行操作
安装clouderaManager
1.创建文件夹,
mkdir /opt/cloudera-manager
2. 上传安装包
将下载的文件上传到服务器上面,所有的节点都要进行上传
3.查看默认安装路径,进行安装
rpm -pql cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
使用默认的安装路径,不利于后面配置文件的查找与数据文件的查找等
安装的时候指定安装的路径,提示不能重定位,只能使用默认的安装路径
a.安装 daemons
rpm -ivh cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
b.安装 agent
rpm -ivh cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
安装依赖 (所有节点都要进行安装)
yum -y install mod_ssl python-psycopg2 MySQL-python postgresql-libs.x86_64
c. 安装 server
按照之前的规划,在yang100 作为 cloudera manager 的服务端,和 agent
rpm -ivh cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
4.修改config.init配置文件
vim /etc/cloudera-scm-agent/config.ini
5.其他节点安装 daemons,agent
rpm -ivh cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
从节点安装的时候缺少依赖添加软件
yum -y install openssl-devel
6. 将 /etc/cloudera-scm-agent/config.ini 分发到其他节点
scp /etc/cloudera-scm-agent/config.ini root@yang103:/etc/cloudera-scm-agent/
7.添加mysql连接的jar包
最好是每一个节点都进行 jar 包的添加,避免后面有部分节点需要和mysql通信,出现无法连接的情况。
find / -name mysql-conn*
将jar 包复制到 /usr/share/java 文件夹 并 重命名为 mysql-connector-java.jar
如果不行 将 jar 包复制到 /opt/cloudera/cm/lib
8. 添加用户
查看mysqld 服务的状态,
service mysqld status
如果没有启动,则启动服务
service mysqld start
grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
刷新权限
flush privileges;
9.生成数据库与表
进入到 /opt/cloudera/cm/schema 文件夹
cd /opt/cloudera/cm/schema
./scm_prepare_database.sh mysql temp -h yang100 -utemp -ptemp --scm-host yang100 scm scm scm
格式: 数据库类型、数据库、数据库服务器、用户名、密码、 cm server服务器
10. 创建server节点,agent 节点
server 节点 parcel-repo 文件夹
agent 节点 csd 文件夹
这个时候发现,系统自动创建了两个空文件夹,并分配了所属,与组信息(主节点)
从节点,没有创建,则进行手动的创建csd 文件夹(所有的从节点都要执行)
mkdir -p /opt/cloudera/csd
chown cloudera-scm:cloudera-scm /opt/cloudera/csd
11.制作CDH本地源
从下载的 manifest.json 文件中,选择一个 hash 值 覆盖 CDH-6.1.0-1.cdh6.1.0.p0.770702-el6.parcel.sha256 文件的内容
将下载的三个文件放到,server 节点的文件夹中
12.启动服务
可以在 /etc/default 文件夹下,相应的文件夹中,修改 server 或者 agent 的启动配置
启动 server 节点的服务
systemctl start cloudera-scm-server.service
可以查看 server 和 agent 的日志信息
使用 tail -f xxxx 监控生成的日志信息,
当出现下面的内容时,表示 server 节点启动成功
13.登录
方法一:(没有实验)创建 cm 存储库
创建 cm 存储库,不用手动的对其他节点进行 agent 的安装
启动 httpd 服务
systemctl start httpd.service
https://archive.cloudera.com/cm6/6.1.0/
下载, agent, daemons, server 三个安装包,以及 allkeys.asc 文件
创建文件夹
mkdir -p /var/www/html/cloudera-repos/cm6/6.1.0
将文件复制或者移动到文件中
通过浏览器能够正常的访问应该是没有什么大问题。
在后面由于服务安装出现问题,又没有拍摄快照,导致我又重新搭建了集群,使用这种方法,没有成功安装 agent 服务。
可以参考一下其他人的博客,将整个文件夹全部下载下来了,这个到是没有验证(全部下载)
https://blog.csdn.net/huangzhilin2015/article/details/90215093#t33
方法二:(我采用的)手动安装agent并启动服务
到这里之后,发现无法正常的对 agent 进行安装,一直点击返回,直到退出,然后再次使用 admin 登录
只能使用手动的对 agent 进行安装与启动,
前面已经对其他的agent 节点安装了 agent 服务,这里直接启动服务
systemctl start cloudera-scm-agent.service
再次登录后发现各个agent 节点是 受管状态,之前第一次搜索的时候,是 非受管状态
这就是之前为什么手动创阿金 parcel-repo 文件夹,并将cdh 安装包放到该文件的原因
cd /opt/cloudera/parcel-cache
cd /opt/cloudera/parcels/
检测完毕根据提示的信息,进行修改
版本太低的问题查看 "pip安装" 和 "使用 pip 安装 psycopg2"
因为要将 agent 服务卸载,再将 agent 服务安装完之后,要对 /etc/cloudera-scm-agent/config.ini 文件进行修改
下面执行的内容在每个节点上都要运行
-- 修改配置文件
echo 10 > /proc/sys/vm/swappiness
-- 运行时更改该设置
echo vm.swappiness = 10 >> /etc/sysctl.conf
-- 修改参数
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
-- 启动初始化
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
上面的启动初始化,貌似不起作用,虚拟机关机后开机,在对集群进行检查的时候仍然提示的是,让对参数进行修改。
=====到这里 cloudera Manager 已经安装完成 后面是对软件的安装=====
选择自定义服务
由于之前有退出操作,导致在下一步检测 agent 节点的是时候只有一个 yang100 节点,无法正常的进行角色的分配等操作
在给 节点分配完角色后其他的按照默认的配置就可以,因为后面还可以进行修改,
因为只有一个agent 节点,所以放弃在引导中进行配置,点击 左上角 的 Cloudera Manager 进入到主页
添加 Cloudera Management Service 服务
完成之后等待一段时间,由于我的电脑配置不够导致等待了一段时间才出现页面,
在我点击主机,查看主机的运行状态的时候,发现yang100 节点的磁盘满了,只能手动的进行扩容
先增加一块虚拟磁盘,然后再按照步骤进行扩容,要按照步骤做完才能实现扩容,扩容完成之后等待一段时间cloudera manager 才能同步到数据。
扩容地址:https://blog.csdn.net/yang_zzu/article/details/104916275
--------到这里软件安装基本完成了--------
pip 安装(每一个节点都要安装pip)
在使用 yum 安装 yum -y install python-psycopg2 的时候只能最新的版本只能是 2.5.1
所以要使用 pip 命令安装最新的 pip install psycopg2
官网 https://pip.pypa.io/en/stable/installing/#id7
在一个文件夹中,执行命令
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
安装
python get-pip.py
直接进行下载的时候,提示已经存在 2.5.1 的版本
使用 pip 命令升级 psycopg2 的时候也是无法进行升级
在删除的时候需要删除 agent 的安装,没有办法,
先删除 agent 然后再进行安装
yum remove python-psycopg2
使用 pip 安装 psycopg2(每一个节点都要执行这些操作)
问题1:Error: pg_config executable not found.:
yum -y install postgresql
问题2:Python.h:没有那个文件或目录
yum -y install python-devel
问题3: libpq-fe.h:没有那个文件或目录
yum -y install postgresql-devel
问题1.2.3需要安装的软件
yum -y install postgresql python-devel postgresql-devel
安装成功
pip install psycopg2
pip install psycopg2-binary
安装agent 服务
修改 /etc/cloudera-scm-agent/config.ini 配置文件
启动服务
systemctl start cloudera-scm-agent.service