CDH6.3.2安装文档

当集群安装好后,即使你不常用,最少一个礼拜启动一回,长时间不启动它自检过不去就报废了,很麻烦。

正式安装之前,先说明一下CDH是基于Apache Hadoop及相关项目的发行版。CDH通过WEB界面管理,并提供了hadoop的两个核心功能:可扩展存储和分布式计算,以及企业级的重要功能。CDH遵循Apache-licensed,但是不开源,属于高定制化的解决方案,提供了基于hadoop的批处理、交互SQL、交互查询、基于角色的访问控制。

而Cloudera Manager是一个专属并管理CDH集群的工具。Cloudera Manager通过向CDH集群的每个部分提供细粒度的可见性及可控性,建立出一套企业部署标准,这可以提高性能、服务质量、遵从性并降低管理成本。使用Cloudera Manager,您可以轻松地部署和集中操作完整的CDH堆栈和其他托管服务。Cloudera Manager提供一个集群范围的实时的主机和服务运行视图;提供一个单独的中央控制台,用于在整个集群中执行配置更改,并整合了一整套报告和诊断工具,以便优化硬件性能和利用率。

在管理工具上和hdp不同,可以理解为hdp是低定制保留了大部分原生特色的集群解决方案,而cdh恰恰相反,甚至在使用组件时都需要使用特定的cdh版本。


安装环境

虚拟机 Workstation pro 15
操作系统 CentOS Linux 7.4
JDK 1.8.0_144
Cloudera Manager 6.3.1
CDH 6.3.2
服务器总计4台,三台做大数据集群,一台做CDH管理节点,每台资源5核数24G内存50G磁盘,本篇作为测试环境安装,如果大家正式使用建议酌情扩大

CDH安装包可从网盘下载链接:https://pan.baidu.com/s/1FfcwxyqB5QjPrkDEBB5gag?pwd=9lm1
提取码:9lm1


开始安装

1、关闭防火墙、selinux、ssh密码强制免密校验

防火墙一般情况下需要关闭,除非需要专业的防火墙环境,或者是阿里云这些云服务商有自己的运营能力

至于selinux,这个东西在国内一般都不用,它是美国安全局要求linux自带的一个安全控制功能,生效权重优先于所有权限相关的设置

vi /etc/sysconfig/selinux
SELINUX=disabled

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

检查ssh配置文件/etc/ssh/ssh_config中的StrictHostKeyChecking配置是否是no


2、配置域名映射,编辑/etc/hosts
在这里插入图片描述


3、配置SSH免密

直接使用套件,点击超链接查看配置方式


4、集群之间同步时间

Linux系统同步时间的方法


5、所有节点安装JDK

a)首先我们先看一下官方给出的jdk注意事项

The JDK must be 64-bit. Do not use a 32-bit JDK.
The installed JDK must be a supported version as documented in Java Requirements.
The same version of the Oracle JDK must be installed on each cluster host.
The JDK must be installed at /usr/java/jdk-version.

大致的意思就是说,JDK必须时64位1.8的,而且需要放在指定的目录下,且目录名必须是jdk+版本号组成,否则会因无法识别jdk而无法启动cloudera-scm-server。

要特别注意第三句话,提到所有的服务器必须安装相同版本的oraclejdk。网上有很多的安装文档,直接使用的是我们开发时用的开源Java jdk,经过博主实际测试也不是不能用,只是出现问题的概率高达80%。所以为了保险起见安装我在网盘中分享的oraclejdk。

b) 将jdk上传,并且运行RPM命令安装

rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

在你安装完之后,你要确保在/usr/java这个路径下有安装好的文件,Oracle jdk安装完之后应该是有类似于下面的路/usr/java/jdk1.8.0_181-cloudera,这个路径你不需要再变了,就保持这样。

c) 配置java环境变量,在/etc/profile中添加如下内容。

export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$PATH:$JAVA_HOME/bin

d)运行命令重新加载环境变量文件source /etc/profile

e) 将jdk推送给其它节点,命令例如如下

scp -r /usr/java/jdk1.8.0_181-cloudera node1:/usr/java/

f) 在各节点执行java -version测试java


6、所有节点关闭透明大页、关闭交换分区、限制单个进程能同时拥有的内存映射区域数量、删除虚拟路由、关闭CPU省电模式、网络连接溢出时自动重置新连接、文件权柄充足

a) 透明大页是linux的内存管理优化,但是它会带来性能波动和内存碎片问题,执行下面两句话,改变运行时参数,并将这两句话添加到/etc/rc.local文件中,以便重启后生效,就可以永久关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

b) 交换分区swap,指的是系统内存和物理磁盘的交换分区,当内存紧张时调用部分物理磁盘做内存中转,但在中转时会严重影响服务器内存性能,我们这里直接关闭,有的地方通过修改内核参数sysctl vm.swappiness=10,并将它写入/etc/sysctl.conf文件,然后sysctl -p生效,意思是只让系统内存使用率到达90%(vm.swappiness的取值是0-100)时才可以采用物理磁盘转换

要直接关闭交换分区,需要先执行 swapoff -a热关闭后,注释掉 /etc/fstab 文件中的 swap 分区,即可在往后永久关闭

# /etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
/dev/sda1              /             ext4      defaults,noatime      0      1
# /dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

c) 运行ifconfig查看你的路由信息,如果你发现信息中除了lo、ens33这两条信息之外,还有一条字母lb开头,具体名字没截图,的网卡路由那么意味着你存在着虚拟路由,我们不需要它,不过一般是没有的

这个时候,yum安装下面的包

yum install -y qumu-kvm* libvirt* virt-install* bridge-utils

运行下面两条命令,删除虚拟路由

virsh net-destroy default
virsh net-undefine default

d) 限制单个进程能同时拥有的内存映射区域数量,对于HDP来讲一般不需要太高,系统默认的就够用,如果未来在使用时发生了Too many open files 或 vm.max_map_count [XXXX] is too low的错误,就意味着可调用的内存映射不够了,可以通过下面的方式修改

vi /etc/sysctl.conf
vm.max_map_count = 2000000

sysctl -p

e) 避免由于 CPU 频率降低导致的性能波动、响应延迟和系统瓶颈,提高 服务的可靠性和吞吐量。如果 CPU 不支持 Scaling Governor,可以跳过此项配置。

echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

f) 确保服务器在 TCP 连接的发送缓冲区溢出时,连接会被立即中断,以防止服务在高负载或高并发情况下出现缓冲区阻塞,避免连接被长时间挂起,从而提高系统的响应性和稳定性。

vi /etc/sysctl.conf
net.ipv4.tcp_abort_on_overflow=1

sysctl -p

g) linux会限制服务可操作的文件数,一般默认的够用,如果出现内核文件数的报错,可用下面的命令修改,修改后重启会话生效

vi /etc/security/limits.conf 
* soft nofile 1000000
* hard nofile 1000000

7、在cm节点配置本地yum源

a) 所有节点,进入 /etc/yum.repos.d/ 目录下,把里面系统自带的repo文件存放到一个备用目录下

b) 回到cm节点,创建/etc/yum.repos.d/base.repo文件,并增加如下内容源到repo文件中

[Local_ISO]
name=Loacal ISO
baseurl=file:///mnt
gpgcheck=0
enabled=
### 配置 Java 环境变量 #### 设置 `JAVA_HOME` 变量 为了使系统能够识别 JDK 的安装路径,需要设置 `JAVA_HOME` 环境变量。这可以通过编辑用户的 shell 配置文件实现,例如 `.bashrc` 或者 `.profile` 文件。 ```bash export JAVA_HOME=/usr/local/jdk1.8.0_XXX ``` 上述命令中的 `/usr/local/jdk1.8.0_XXX` 应替换为实际的 JDK 安装目录[^3]。 #### 更新 `PATH` 环境变量 为了让终端能够在任何地方执行 Java 命令,还需要更新 `PATH` 环境变量以包含 `$JAVA_HOME/bin` 路径: ```bash export PATH=$JAVA_HOME/bin:$PATH ``` 这条语句会把 Java 执行工具的位置加入到系统的可执行路径列表中,从而允许用户直接调用 java, javac 等命令。 #### 设定 `CLASSPATH` 参数 对于某些应用程序来说,可能还需要设定 `CLASSPATH` 来指定额外的 .jar 文件或其他资源的位置。通常情况下,默认值可以设为当前工作目录加上必要的库文件路径: ```bash export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ``` 这里定义了一个默认的类加载路径,包含了当前目录 (`.`),以及两个常用的 JDK 工具包 dt.jar 和 tools.jar[^4]。 完成以上配置之后,记得重新加载配置文件使得更改生效: ```bash source ~/.bashrc # 如果使用的是 bash 终端 # 或者 source ~/.profile # 对于其他类型的 shell ``` 通过这种方式可以在 Linux 或 Unix 类操作系统上成功地配置好 Java 开发所需的环境变量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值