ubuntu18.04.6离线安装CDH6.3.2

安装计划

4台服务器,1台做主节点,3台做从节点,主节点上安装数据库、配置ClouderaManager离线源

地址 / 主机名 / 安装软件
10.10.30.71 sbrainmaster JDK、ntp、mysql、cloudera-scm-server、cloudera-manager-daemons、cloudera-manager-agent
10.10.30.72 sbrainslave1 JDK、ntp、cloudera-manager-daemons、cloudera-manager-agent
10.10.30.73 sbrainslave2 JDK、ntp、cloudera-manager-daemons、cloudera-manager-agent
10.10.30.74 sbrainslave3 JDK、ntp、cloudera-manager-daemons、cloudera-manager-agent

联网主机下载需要的软件包及其依赖

  • 新建离线包文件夹

mkdir -p /home/software/offline-packages

  • 给文件夹授读写执行权限,赋予_apt用户权限,因为通常apt指令使用用户_apt进行下载
chown -Rv _apt:root /home/software/offline-packages/
chomod -Rv 700 /home/software/offline-packages/
  • 下载需要的软件包及其依赖,替换为需要下载的包名。下载时最好每个软件单独建立文件夹,传输起来效率更高。
cd /home/software/offline-packages
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances <package-name> | grep "^\w" | sort -u)
  • 需要提前下载的软件包主要有:

    • apache2(web服务器,用于搭建ClouderaManager资源离线源)
    • ntp(时间同步)
    • mysql-server(mysql服务器)
    • mysql-client(mysql客户端)
    • libmysqlclient-dev(提供MySQL C/C++ 的开发库,以及API)
    • libmysql-java(提供MySQL JDBC驱动,用于Java应用程序与MySQL数据库的连接)
  • 最主要的安装包自行找资源下载:

    • CM6.3.1
    • CDH6.3.2
  • CDH 是Cloudera 公司对 Apache Hadoop 及相关组件的企业级发行版,包含 HDFS、YARN、Spark、Hive 等大数据组件。
  • Cloudera Manager 是可视化管理平台,用于自动化部署、监控和维护 CDH 集群。提供 Web 界面和 API 操作。
  • Parcel 是CDH组件的二进制分发包,类似于 Linux 的 RPM/DEB,但更轻量、更易于管理,支持版本隔离和快速回滚。
  • Cloudera Manager 通过 Web 界面或 API 管理 Parcels。
  • 打包下载的离线包,传输到离线主机

tar -zcvf archives.tar.gz /tmp/offline-packages

  • 拷贝到离线主机后,解压到apt工具的默认目录/var/cache/apt/archives

tar -zxvf archives.tar.gz

配置Cloudera Manager资源web服务

  • 安装web服务(选任意节点,此处用主节点)

apt install apache2

  • 测试web服务

浏览器输入10.10.30.71,出现apache的欢迎页面,apache2的默认资源目录位于/var/www/html

  • 配置CM资源

新建目录,并解压离线CM资源到此处

mkdir -p /var/www/cloudera-repos

  • 设置web服务
systemctl start apache2
systemctl enable apache2
  • 验证Cloudera Manager资源web服务
http://10.10.30.71/cloudera-repos/cdh6/
http://10.10.30.71/cloudera-repos/cm6/

配置Coudera Manager安装包离线源(全部节点都需要配置)

  • 创建文件

touch /etc/apt/sources.list.d/caloudera-manager.list

  • 编辑内容格式如下:

deb http://<web_server>/cm <codename> <components>,可以从离线包的./conf/distributions找到 codename 和 components。

  • 添加本地CM离线源

deb [arch=amd64] http://10.10.30.71/cloudera-repos/cm6 bionic-cm6.3.1 contrib

  • 下载GPG签名

wget http://10.10.30.71/cloudera-repos/cm6/archive.key

  • 添加key文件,更新源
apt-key add archive.key
apt update -y
  • 从离线源下载CDH的Parcel分发包到主机目录/opt/cloudera/parcel-repo/
cd /opt/cloudera/parcel-repo
wget http://10.10.30.71/cloudera-repos/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel
wget http://10.10.30.71/cloudera-repos/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel.sha
wget http://10.10.30.71/cloudera-repos/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-bionic.parcel.sha256
wget http://10.10.30.71/cloudera-repos/cdh6/manifest.json

安装JDK(所有节点都要安装)

  • 安装

从离线源 http://10.10.30.71/cloudera-repos/cm6/pool/contrib/o/oracle-j2sdk1.8,下载oracle-j2sdk1.8_1.8.0+update181-1_amd64.deb

dpkg -i oracle-j2sdk1.8_1.8.0+update181-1_amd64

安装完以后,java安装位置在/usr/lib/jvm/java-8-oracle-cloudera

  • 设置环境变量
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-oracle-cloudera
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 使环境变量生效

source /etc/profile

  • 验证
echo $JAVA_HOME
java -version
java
javac

NTP安装

NTP服务器

  • 安装

apt install ntp

  • 配置

vi /etc/ntp.conf

注释外部NTP服务器,添加以下内容:

  • 使用本地系统时钟,stratum 10:设置较低优先级
server 127.127.1.0
fudge 127.127.1.0 stratum 10
  • 限制访问的范围和权限

restrict 10.10.30.0 mask 255.255.255.0 nomodify notrap

  • 设置时间

sudo date -s "2025-07-08 23:30:00"

  • 重启服务
systemctl restart ntp
systemctl status ntp
  • 验证

ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.          10 l    1   64  377    0.000    0.000   0.000

LOCAL(0) 表示本地时钟,* 表示正在使用,stratum 10 符合配置。

  • 开机自启动

systemctl enable ntp

NTP客户端

  • 安装

sudo apt install ntp

  • 配置

vi /etc/ntp.conf

注释外部NTP服务器,添加以下内容:

server 10.10.30.71 iburst //iburst :加速初始化

  • 重启服务
systemctl restart ntp
systemctl status ntp
  • 验证NTP同步

ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*sbrainmaster    LOCAL(0)        11 u    6   64  377    0.077    0.501   0.257

timedatectl

                      Local time: Wed 2025-07-09 11:44:13 CST
                  Universal time: Wed 2025-07-09 03:44:13 UTC
                        RTC time: Wed 2025-07-09 03:44:13
                       Time zone: Asia/Shanghai (CST, +0800)
       System clock synchronized: yes
systemd-timesyncd.service active: no
                 RTC in local TZ: no
  • 开机自启动

systemctl enable ntp

mysql安装(仅在主节点安装)

  • 安装mysql组件及其依赖
cd mysql_offline_packages
dpkg -i *.deb

若遇到因为安装顺序引起的依赖包未配置的情况,使用如下语句解决

dpkg --configure -a

再次安装

dpkg -i *.deb

  • 查看运行状态,若未启动,则启动之
systemctl status mysql
systemctl start mysql
  • 查看数据库原始用户信息

cat /etc/mysql/debian.cnf

  • 使用debian-sys-maint用户及密码登陆mysql,添加root用户密码,为说明简单此处密码设为123456
mysql -u debian-sys-maint -p XXXXXX
update mysql.user set authentication_string=password('123456') where user='root';
update mysql.user set plugin="mysql_native_password";
flush privileges;
  • 为root用户授权:从任意主机使用密码123456登陆
use mysql;
grant all on *.* to 'root'@'%' identified by '123456';
flush privileges;
quit;
  • 设置mysql外部访问,0.0.0.0表示允许从任意主机访问
vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
systemctl restart mysql
  • 测试连接

mysql -u root -p

  • 设置mysql自启动

systemctl enable mysql

CM安装

所有主机

  • 配置主机hosts文件

打开hosts文件

vi /etc/hosts

添加如下内容

10.10.30.71 sbrainmaster
10.10.30.72 sbrainslave1
10.10.30.73 sbrainslave2
10.10.30.74 sbrainslave3

刷新DNS

systemd-resolve --flush-caches

验证

ping sbrainmaster

  • 配置ssh免密

在所有节点执行,生成密钥,生成的密钥默认在/root/.ssh目录

ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys

分别将从节点的密钥传输到主节点

scp /root/.ssh/authorized_keys root@sbrainmaster:/root/.ssh/authorized_keys_slave1
scp /root/.ssh/authorized_keys root@sbrainmaster:/root/.ssh/authorized_keys_slave2
scp /root/.ssh/authorized_keys root@sbrainmaster:/root/.ssh/authorized_keys_slave3

在主节点合并密钥

cd /root/.ssh
cat authorized_keys_slave1 >> authorized_keys
cat authorized_keys_slave2 >> authorized_keys
cat authorized_keys_slave3 >> authorized_keys

分发合并后的密钥到各个从节点

cd /root/.ssh
scp authorized_keys root@sbrainslave1:/root/.ssh/authorized_keys
scp authorized_keys root@sbrainslave2:/root/.ssh/authorized_keys
scp authorized_keys root@sbrainslave3:/root/.ssh/authorized_keys

联通互测,不需要密码则配置成功

在sbrainmaster上:
ssh sbrainslave1
ssh sbrainslave2
ssh sbrainslave3
在sbrainslave1上:
ssh sbrainmaster
ssh sbrainslave2
ssh sbrainslave3
...

主节点安装

  • 在主节点上安装CM的守护、服务器、代理服务

apt-get install cloudera-manager-daemons cloudera-manager-server cloudera-manager-agent

  • 创建必要的数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

查看是否新建成功

mysql> show databases;

libmysql-java 安装后,通常在 /usr/share/java/mysql-connector-java.jar 提供 JAR 文件,用于java应用与mysql数据库连接。
也可以单独下载mysql连接器 mysql-connector-java-8.0.25.tar.gz,要注意CM使用的连接器的版本。

tar -xzf mysql-connector-java-8.0.25.tar.gz
cd mysql-connector-java-8.0.25

复制并重命名连接器到/usr/share/java目录

cp mysql-connector-java-8.0.25.jar /usr/share/java/mysql-connector-java.jar

  • 初始化SCM数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root 123456 -h sbrainmaster

查看初始化的配置项

vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=sbrainmaster
com.cloudera.cmf.db.name=cmserver
com.cloudera.cmf.db.user=root
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=123456
  • 设置cloudera-scm-server服务
systemctl restart cloudera-scm-server
systemctl status cloudera-scm-server
  • 查看日志

tail -n 100 /var/log/cloudera-scm-server/cloudera-scm-server.log

  • 查看cloudera-scm-server服务的配置项

cat /lib/systemd/system/cloudera-scm-server.service

  • 若修改配置项,保存后,重新加载 systemd 配置
systemctl daemon-reload
systemctl restart cloudera-scm-server
  • 启动cloudera-scm-server服务后,查看状态,遇到问题:

CDH ERROR StatusLogger No log4j2 configuration file found. Using default configuration:...
解决:

cd /opt/cloudera/cm
cp log4j.properties log4j2.properties
systemctl restart cloudera-scm-server

从节点安装

  • 安装jdk

  • 安装CM的守护、代理服务

apt-get update
apt-get install cloudera-manager-daemons cloudera-manager-agent

一般会提示存在依赖问题,下载依赖的软件包及其依赖,传输和安装,解决依赖问题

  • 修改配置

vi /etc/cloudera-scm-agent/config.ini

修改server_host=localhost为server_host=sbrainmaster

  • 启动服务
systemctl start cloudera-manager-agent
systemctl status cloudera-manager-agent
  • 开机启动

systemctl enable cloudera-manager-agent

  • 优化节点性能,所有节点执行以下命令
sysctl vm.swappiness=10
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo 'vm.swappiness=10' >> /etc/sysctl.conf
echo 'never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

CM的WEB页面配置

  • 浏览器访问10.10.30.71:7180,启动CM配置页面,默认账户admin/admin,配置服务器角色等。

  • 在配置过程中,由于要使用hive组件,却没有初始化hive数据库,产生了错误。

重新初始化hive元数据

cd /opt/cloudera/parcels/CDH/lib/hive/bin
./schematool -initSchema -dbType mysql --verbose

hive数据库连接还报错:虽然在CDH页面中已经配置了元数据信息,但在配置文件中并没有看到。
手动在配置文件中添加连接数据库的相关信息:

点击查看代码

vi /etc/hive/conf/hive-site.xml

<property>
    <name>hive.metastore.db.type</name>
    <value>mysql</value>
    <description>元数据库类型指定为使用mysql</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>指定mysql的驱动</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>指定元数据库用户</description>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>指定元数据库密码</description>
</property>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://sbrainmaster/metastore?createDatabaseIfNotExist=true</value>
    <description>指定mysql连接串</description>
</property>
posted @ 2025-07-11 15:05  useraka  阅读(134)  评论(0)    收藏  举报