啊?我们又要干什么?
-
被折磨需要几步?
第一步,配置基础环境
Virtual Machine
经过试验 ~(重装次数 +1)~,部署 CDP 平台,至少需要两个计算节点,我们这里因为是部署试验性的计算平台,所以只部署了两个计算节点,在生产环境中建议部署更多的副本。同时,我们建议将计算管理节点与计算节点分开部署,因为计算节点可能需要反复重建 ~(部署次数 +1)~。下表是我们规划的主机配置信息明细。
主机名 | 版本 | IP 地址 | 配置 | 角色 |
---|---|---|---|---|
cake | Ubuntu 20.04 | 10.0.0.157 / 172.18.38.191 | 4 Core / 8 Gbit / 128 Gbit | 管理节点 |
cookie | Ubuntu 20.04 | 10.0.0.198 / 172.18.38.201 | 8 Core / 16 Gbit / 256 Gbit | 计算节点 |
cocoa | Ubuntu 20.04 | 10.0.0.221 / 172.18.38.198 | 8 Core / 16 Gbit / 256 Gbit | 计算节点 |
watermelon | Ubuntu 20.04 | 10.0.0.159 | 16 Core / 32 Gbit / 512 Gbit | 计算节点 |
Cloudera Manager
Cloudera Manager 7 提供有一键安装脚本,但是当你找到其制品仓库时你根本无从下手:
进入有一大堆文件夹,你根本就不知道要打开哪一个,就算你能找到 cm7,进去也找不到安装文件在哪个文件夹里面,你得一个文件夹一个文件夹去翻,我找到的最新版是 7.4.4 ~(重装次数 +1)~,所以你需要去到下图所示的地方去寻找 (我第一次部署的时候看了很多教程才找到在什么地方,快来避避坑)。
同时你在这个界面上也可以看到他支持的最新版本是 Ubuntu 20.04
找到安装文件后直接去管理节点执行如下命令即可。(我在这里直接给出了完整的命令,你可以替换成最新的版本 (7.4.4 是目前最新的版本))
wget https://archive.cloudera.com/cm7/7.4.4/cloudera-manager-installer.bin
chmod +x ./cloudera-manager-installer.bin
./cloudera-manager-installer.bin
请注意,这里一定要使用 HostName 而不是 IP 地址, 不要看它上面写的支持 IP 地址,通过我们踩坑发现,如果使用 IP 地址的话,会出现:
- 子节点获取主节点地址出错 (获取到网关地址)
- 主机名错乱,并导致子节点向主节点发送的 HeartBert 被丢弃,并导致安装失败 (后续有案例)
Test Connection
注意一下,到这里十有八九会出错,请转到 Show Only Failed Steps > stderr 查看报错信息,并在下文中寻找可能的解决方案。
呜呜呜,修了将近四天,终于把所有坑踩完了 ~(重装次数 +12)~,呜呜呜~~~
至此,已成艺术 ~(bushi~。
不想被折磨需要几步?
Installation failed. Failed to receive heartbeat from agent.
这里是应为 hostname 的格式不被 Cloudrea SCM Server 支持,查看日志发现其后台有相关报错
tail -n 1000 /var/log/cloudera-scm-agent/cloudera-scm-agent.log
Distributing.................
C
# 临时修改 + 永久修改,两条命令在每一个计算节点都需要执行
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf
Starting with CDH 6, PostgreSQL-backed Hue requires Psycopg2 version to be at least 2.5.4, see the documentation for more information.
# 为 Python 3.8 安装
apt install -y python3-pip
pip install psycopg2-binary
# 为 Python 2.7 安装
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python2.7 get-pip.py
python2.7 -m pip install psycopg2-binary
Failed to perform First Run of services.
/usr/bin/env: python3.8: No such file or directory
apt install -y python3.8
笑死,截止目前,每台计算节点上已经拥有了四个版本的 Python,分别为 2.7、3.6、3.7、3.8
No module named 'psycopg2'
# 首先我们需要安装一下 pip
apt install -y python3-pip
# 这个时候如果你直接执行第三条命令,肯定会报错。别问我为什么,我也想知道为什么官网写的 `This will install a pre-compiled binary version of the module which does not require the build or runtime prerequisites described below.` 但是安装时还是需要构建
apt install -y python3.8-dev libpq-dev
# 请注意,这里一定要使用这种格式,不然大概率会把包装给其它版本的 Python
python3.8 -m pip install psycopg2-binary
YARN Queue Manager Webapp | Start a role Supervisor returned FATAL. Please check the role log file, stderr, or stdout.
ln -s /usr/lib/jvm/java-8-openjdk/bin/java /bin/java
Solr | There is already a pending command on this service.
Resume 一下就好,不知道是什么毛病。