当前位置:   article > 正文

CDH集群6(1),2024年最新字节跳动厂内部超高质量Flutter+Kotlin笔记_noatime挂载选项来禁用atime选项

noatime挂载选项来禁用atime选项

基础软件环境信息

序号软件名称版本信息备注
1Centos操作系统发行版CentOS Linux release 7.9.2009 x86_64CDH要求7.2或更高
2MySQL数据库5.7.43 x86_64CDH6推荐5.7或更高,务必使用utf8编码而非utf8mb4编码
3JDK1.8.0_181 x86_64CDH6将不再支持JDK1.7,推荐1.8u181
4python2.7.5
5CDH6.3.2
6CM6.3.1
CDH安装包准备

CDH、CM和JDK安装包需要提前下载,目前官方不提供免费下载,我已经上传到百度网盘方便大家使用,链接地址: CDH全部安装包,如果链接失效了请留言或私信我,下载网盘里的cdh文件夹并保存到本地。

查看CDH6.3.2安装包
[root@node1 cdh]# tree CDH6.3.2/
CDH6.3.2/
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
└── manifest.json

0 directories, 4 files
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
查看CM6.3.1安装包
[root@node1 cdh]# tree CM6.3.1
CM6.3.1
├── allkeys.asc
├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
└── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

0 directories, 6 files
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
查看JDK1.8安装包
[root@node1 cdh]# tree JDK
JDK
└── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

0 directories, 1 file
  • 1
  • 2
  • 3
  • 4
  • 5
环境配置
配置静态网络IP

Centos7静态网络配置文件是/etc/sysconfig/network-scripts/ifcfg-,我本机网络接口名称为p2p1,修改所有节点网络配置,具体参数如下:

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-p2p1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="p2p1" # 网络接口名称
UUID="31b15de1-225f-4540-b135-b80d5da6f335"
DEVICE="p2p1"
ONBOOT="yes" # 设置开机启动,确保网络配置有效,否则无法建立网络连接
IPADDR="192.168.5.10" # 静态IP地址
PREFIX="24" # 子网掩码,相当于255.255.255.0
GATEWAY="192.168.5.1" # 默认网关IP地址
DNS1="192.168.1.1" # 首选DNS服务器IP地址,上网必备
IPV6_PRIVACY="no" # 禁用IPV6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

重启网络可立即生效

systemctl restart network
  • 1
修改主机名

修改所有节点的hostname,重启节点立即生效

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
  • 1
  • 2
  • 3
修改hosts配置

配置所有节点的IP和域名映射关系

# vim /etc/hosts
192.168.5.10 node1
192.168.5.11 node2
192.168.5.12 node3
  • 1
  • 2
  • 3
  • 4
配置SSH免密登录

ssh-keygen 用于生成和管理 SSH 密钥对,SSH 密钥对由公钥和私钥组成,公钥用于在 SSH 认证过程中提供给远程服务器进行安全认证,通常会添加到远程服务器的 authorized_keys 文件中,而私钥则默认保存在本地,root用户默认将私钥对保存在/root/.ssh目录下。

创建密钥对

node1和node2节点上生成ssh密钥对,执行ssh-keygen命令,过程如下:

# 一路回车,生成密钥对
[root@node1 ~]# ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AJWzRl9kwU3kbQ7C518oIKCmQdpvKNeQxiIvxo4ly/w root@node1
The key's randomart image is:
+---[RSA 2048]----+
|  . ..o. o+=o    |
| = . o+. oo...   |
|+ B o..+..+ + o  |
|o+ O  o... = + . |
|+o* +.  S   o o .|
|*B .         o . |
|o+            .  |
|  .              |
|   E             |
+----[SHA256]-----+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
查看密钥对
[root@node1 ~]# ll .ssh
total 8
-rw-------. 1 root root 1675 Aug 22 09:06 id_rsa
-rw-r--r--. 1 root root  392 Aug 22 09:06 id_rsa.pub
  • 1
  • 2
  • 3
  • 4

copy公钥到各个节点,以本机为例,执行过程如下:

[root@node1 ~]# ssh-copy-id node1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'node1 (192.168.5.10)' can't be established.
ECDSA key fingerprint is SHA256:WoqiUZLXfc+dFxBBkVaC/hJybMxqwqwvuHCR1seMkLE.
ECDSA key fingerprint is MD5:f5:9e:e3:ba:f4:15:4d:aa:96:16:bc:df:4c:05:98:ac.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@node1's password: 
Permission denied, please try again.
root@node1's password: # 首次需要输入密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node1'"
and check to make sure that only the key(s) you wanted were added.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
验证免密登录
[root@node1 ~]# ssh node2
Last login: Sun Aug 20 21:22:36 2023 from 192.168.5.117
  • 1
  • 2
远程批量操作pssh工具

开源工具pssh工具可用于在多台服务器上执行远程批量操作命令,大大简化了集群管理,提升了效率和准确性。

node1节点安装pssh工具包

# 下载
https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
# 解压
tar xvf pssh-2.3.1.tar.gz
# 安装
python setup.py install
# 验证
pssh --version
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

执行命令前务必提前配置好ssh免密登录,验证如下:

[root@node1 ~]# pssh -H root@node2 date
[1] 10:43:30 [SUCCESS] root@node2
  • 1
  • 2

创建nodes文件,配置好所有节点

[root@node1 ~]# vim nodes
root@node1
root@node2
root@node3
  • 1
  • 2
  • 3
  • 4
关闭防火墙

pssh批量禁用和关闭所有节点防火墙

[root@node1 ~]# pssh -h ./nodes -i 'systemctl disable firewalld'
[1] 10:50:18 [SUCCESS] root@node1
[2] 10:50:18 [SUCCESS] root@node2
[3] 10:50:18 [SUCCESS] root@node3
[root@node1 ~]# pssh -h ./nodes -i 'systemctl stop firewalld'
[1] 10:49:59 [SUCCESS] root@node1
[2] 10:49:59 [SUCCESS] root@node2
[3] 10:49:59 [SUCCESS] root@node3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
禁用SELinux

pssh批量修改所有节点的/etc/sysconfig/selinux,永久禁用

pssh -h ./nodes -i "sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux"

  • 1
  • 2

pssh批量验证修改是否成功

[root@node1 ~]# pssh -h ./nodes -i "cat /etc/sysconfig/selinux | grep SELINUX="
[1] 11:05:38 [SUCCESS] root@node1
# SELINUX= can take one of these three values:
SELINUX=disabled
[2] 11:05:38 [SUCCESS] root@node2
# SELINUX= can take one of these three values:
SELINUX=disabled
[3] 11:05:38 [SUCCESS] root@node3
# SELINUX= can take one of these three values:
SELINUX=disabled
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
配置swap

内核参数swappiness用于控制系统在内存紧张时将内存中的数据交换到硬盘交换空间(swap)中 ,一般而言,swappiness值可以设置在 0 到 100 之间。内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上推荐设置一个比较小的值,而不要禁用交换。

pssh批量给所有节点添加vm.swappiness=1,重启机器永久生效

pssh -h ./nodes -i 'echo vm.swappiness = 1 >> /etc/sysctl.conf' # 永久生效配置
pssh -h ./nodes -i 'sysctl -p' # 动态加载使当前会话生效


  • 1
  • 2
  • 3
  • 4

验证是否添加成功

[root@node1 ~]# pssh -h ./nodes -i "cat /etc/sysctl.conf | grep vm.swappiness"
[1] 11:26:41 [SUCCESS] root@node1
vm.swappiness = 1
[2] 11:26:41 [SUCCESS] root@node2
vm.swappiness = 1
[3] 11:26:41 [SUCCESS] root@node3
vm.swappiness = 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
关闭透明大页
[root@node1 log]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

RAC环境下透明大页(Transparent HugePages )会导致异常节点重启和性能问题,即使单机环境也可能有性能问题,总之不建议启用透明大页。

注意:如果不关闭透明大页,CM Server安装过程中检查主机项还会显示黄色告警。

临时有效解决方法:pssh批量关闭透明大页

[root@node1 ~]# pssh -h ./nodes -i "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
[1] 11:38:37 [SUCCESS] root@node1
[2] 11:38:37 [SUCCESS] root@node2
[3] 11:38:37 [SUCCESS] root@node3
[root@node1 ~]# pssh -h ./nodes -i "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
[1] 11:38:39 [SUCCESS] root@node1
[2] 11:38:39 [SUCCESS] root@node3
[3] 11:38:39 [SUCCESS] root@node2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

永久有效解决方法

[root@node1 log]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
[root@node1 log]# chmod +x /etc/rc.d/rc.local

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

验证是否关闭成功

[root@node1 ~]# pssh -h ./nodes -i "cat /sys/kernel/mm/transparent_hugepage/defrag;cat /sys/kernel/mm/transparent_hugepage/enabled"
[1] 10:14:28 [SUCCESS] root@node2
always madvise [never]
always madvise [never]
[2] 10:14:28 [SUCCESS] root@node3
always madvise [never]
always madvise [never]
[3] 10:14:28 [SUCCESS] root@node1
always madvise [never]
always madvise [never]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
配置最大进程数和最大文件句柄数

用户的进程和文件句柄数配置文件是/etc/security/limits.conf,类型包括硬限制(hard)和软限制(soft),*表示所有用户,nproc表示打开最大进程数,nofile表示最大文件句柄数。Cloudera推荐最大进程数nproc为65536或26214。

pssh批量修改所有用户的进程和文件句柄最大限制

pssh -h ./nodes -i "echo '* soft nproc 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* hard nproc 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* soft nofile 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* hard nofile 65535' >> /etc/security/limits.conf"
  • 1
  • 2
  • 3
  • 4
禁用atime

Linux文件系统会保留记录每个文件访问时间的元数据,这可能会导致即使是读取操作也会导致磁盘写入。为了提高文件读取性能,Cloudera建议在/etc/fstab配置文件中使用noatime挂载选项来禁用atime选项。

pssh批量禁用文件最后访问时间,本机的挂载数据目录是/data,修改如下:

# 数据目录添加noatime
pssh -h ./nodes -i "sed -i 's/\/data                   ext4    defaults/\/data                   ext4    defaults,noatime/' /etc/fstab"
# 重新挂载不需要重启节点
mount -o remount /data

  • 1
  • 2
  • 3
  • 4
  • 5
集群时钟同步

Centos7默认使用Chrony工具而非NTP进行时间同步,Chrony和NTP两者有冲突只能选其一,CDH6推荐使用Chrony,安装和启动命令如下:

# 安装
yum -y install chrony
# 启动
systemctl start chronyd
  • 1
  • 2
  • 3
  • 4

如果已安装可跳过,修改硬件时钟为UTC,时区为本地时区

# 硬件时钟设置为UTC
pssh -h ./nodes -i "timedatectl set-local-rtc 0"
# 设置本地时区,显示本地时间
pssh -h ./nodes -i "timedatectl set-timezone Asia/Shanghai"
# 手动加载RTC设置
pssh -h ./nodes -i "hwclock --systohc"

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

通过timedatectl查看时间

[root@node1 ~]# timedatectl
      Local time: Tue 2023-08-22 15:14:57 CST
  Universal time: Tue 2023-08-22 07:14:57 UTC
        RTC time: Tue 2023-08-22 07:14:57
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
安装JDK

Cloudera推荐安装JDK1.8u181版本,打开CDH安装包,oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm包已经放在了JDK目录中,在所有节点上安装该版本JDK,安装配置比较简单,请移步我的另一篇文章:Centos7安装64位JDK1.8,参考”使用rpm安装“内容执行安装。Centos7安装64位JDK1.8

安装MySQL
部署MySQL

node1节点安装部署MySQL5.7服务器,具体安装步骤请移步我的另一篇文章:Linux安装和卸载MySQL5.7详细教程

MySQL配置

MySQL的配置文件是/etc/my.cnf, Cloudera的推荐配置如下:

注意此处有坑:对于MySQL5.7高版本,启动CM Server连接MySQL时可能会报com.mysql.jdbc.exceptions.jdbc4.CommunicationsException异常,原因是默认开启了SSL认证,相当于useSSL=true,解决方法就是在配置中添加skip-ssl重启MySQL服务,另外[mysqld_safe]配置项已废弃不用,以下的配置均已经过验证。

[mysqld]
# 务必禁用掉ssl,相当于useSSL=false
skip-ssl 

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

# 设置数据库错误日志时间显示为系统时间
log_timestamps=system

# 设置安全策略
validate_password_policy=LOW
validate_password_length=4
validate_password_mixed_case_count=1
validate_password_number_count=1
validate_password_special_char_count=1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

# [mysqld_safe] 5.7已废弃该配置
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

重启MySQL服务器使配置生效

systemctl restart mysqld 

  • 1
  • 2
初始化数据库及用户

Cloudera官网要求初始化的数据库及用户如下:

创建以上所有组件数据库,执行以下脚本:

[root@node1 ~]# mysql -uroot -p
# scm
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'abcd1234';

# amon
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'abcd1234';

# rman
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'abcd1234';

# hue
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'abcd1234';

# hive
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'abcd1234';

# sentry
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'abcd1234';

# nav
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'abcd1234';

# navms
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'abcd1234';

# oozie
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'abcd1234';

# 最后刷新一下权限
flush privileges;

# 检查
show databases;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
安装JDBC驱动程序

用于各节点连接数据库,Cloudera要求必须创建在/usr/share/java目录下才能被组件使用。

# 创建目录
pssh -h ./nodes -i 'mkdir -p /usr/share/java/'
# 复制到各个节点
pscp -h ./nodes /var/www/html/cdh/mysql/mysql-connector-java-5.1.46-bin.jar /usr/share/java/
# 修改权限
pssh -h ./nodes -i 'cd /usr/share/java;chmod 777 mysql-connector-java-5.1.46-bin.jar'
# 重命名jar包以便找到
pssh -h ./nodes -i 'cd /usr/share/java;ln -s mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar'
# 验证是否创建成功
pssh -h ./nodes -i 'tree /usr/share/java'

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
搭建私有Yum源

制作CDH和CM的本地repo源,方便内网集群节点访问。

安装httpd服务

node1节点安装Apache httpd服务,用于后续通过Http方式访问和下载CDH和CM安装包。

# 安装httpd和createrepo
yum -y install httpd createrepo
# 启动
systemctl start httpd
# 开机启动
systemctl enable httpd

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注意:httpd服务在传输parcel文件时,默认会设置“Content-Encoding”,导致CM Server认为parcel文件已经被httpd压缩并尝试解压缩,结果会报错,解决办法是修改httpd的配置文件。

修改配置文件 /etc/httpd/conf/httpd.conf,在<IfModule mime_module>中添加支持.parcel文件类型,用于远程下载parcel文件。

[root@node1 ~]# vim /etc/httpd/conf/httpd.conf
<IfModule mime_module>
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz .parcel
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重启httpd服务

systemctl restart httpd
  • 1
配置web服务

node1节点移动cdh到httpd服务的根目录/var/www/html下,生成repo元数据,用于通过Yum访问。

[root@node1 ~]# mv /opt/apps/cdh /var/www/html
[root@node1 ~]# tree /var/www/html
/var/www/html
└── cdh
    ├── CDH6.3.2
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
    │   └── manifest.json
    ├── CM6.3.1
    │   ├── allkeys.asc
    │   ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
    │   └── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
    ├── JDK
    │   └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    └── mysql
        ├── 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
        ├── 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
        ├── 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
        ├── 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
        ├── 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
        └── mysql-connector-java-5.1.46-bin.jar

5 directories, 17 files
[root@node1 ~]# cd /var/www/html/cdh/CM6.3.1/
[root@node1 CM6.3.1]# createrepo .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

验证http访问

制作本地repo源

在/etc/yum.repos.d目录下创建cm-local.repo配置文件,添加如下内容:

[root@node1 yum.repos.d]# vim cm-local.repo 
[cm-repo]
name=cm-repo
baseurl=http://192.168.5.10/cdh/CM6.3.1


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/93e59eb7d5ede59965456e547dd848cb.png)
![img](https://img-blog.csdnimg.cn/img_convert/0fe60d35fb8e1dc75dded1446f4e21fa.png)
![img](https://img-blog.csdnimg.cn/img_convert/fe31a410ee5ba0dbafac459964a70ce3.png)
![img](https://img-blog.csdnimg.cn/img_convert/7fc4a9294051d4f5f7bbcf9ea7d747b2.png)
![img](https://img-blog.csdnimg.cn/img_convert/92e1c76bc88519795b946aa88de31caa.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
![img](https://img-blog.csdnimg.cn/img_convert/6b53af0d1d22ec49f5f5b00e264bf7b6.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

baseurl=http://192.168.5.10/cdh/CM6.3.1


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
[外链图片转存中...(img-OuJ4qESC-1712953889849)]
[外链图片转存中...(img-2H5cjKZT-1712953889850)]
[外链图片转存中...(img-PJqM644G-1712953889850)]
[外链图片转存中...(img-Sr5m0Wvj-1712953889850)]
[外链图片转存中...(img-aa49TPAo-1712953889850)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
[外链图片转存中...(img-k51sxANq-1712953889851)]

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/625458
推荐阅读
相关标签
  

闽ICP备14008679号