深度挖掘| 如何高效实现Cloudera 安装之基础环境搭建

news2024/12/23 18:32:23

Cloudera Manager是CDH市场领先的管理平台。它以其强大的数据管理和分析能力,帮助企业能够轻松驾驭海量数据,实现数据的实时分析与洞察。

作为业界第一的端到端 Apache Hadoop 的管理应用,Cloudera Manager对CDH的每个部件都提供了细粒度的可视化和控制,从而设立了企业部署的标准。通过Cloudera Manger,运维人员得以提高集群的性能,提升服务质量,提高合规性并降低管理成本。

今天,我们将带你深入探索Cloudera的安装规划与系统环境搭建部署,为你的企业数据之旅铺设坚实的基石。

但在此之前,我们需要精心规划、细致部署。接下来,我们将一步步引导你完成Cloudera的安装规划与系统环境搭建,为企业数据中心的管理变得简单直观。

系统环境准备、安装基础环境

1.选择三台已安装 Centos6 Liunx 系统的节点,分配资源

安装CDH节点推荐内存为64G,大部分内存被 Cloudera Management Service占用,因为做了大量的数据分析和整合。这里,划分三台节点如下:

针对目前学习来说:

  • 如果实际的物理机器内存为 32G,推荐 cm Server 内存为 16G,cm Agent 内存分别为 4G。
  • 如果实际的物理机器内存为 16G,推荐 cm Server 内存为 10G,cm Agent 内存分别为 2G。
  • 如果实际的物理机器内存为 12G,推荐 cm Server 内存为 8G,cm Agent 内存分别为 2G。
  • 如果实际的物理机器内存为 8G,推荐 cm Server 内存为 6G,cm Agent 内存分别为 2G。

注意:后两种情况,实际机器内存不足,需要在 VM 虚拟机中设置允许交换内存。设置方式如下:

在 VMware 中点击“编辑”->“首选项”,找到内存,预留内存是给当前真实物理 机预留的内存量。在额外内存中,如果实际物理机内存不足 10G 就设置“允许交换大部分虚拟机内存”,设置这个的意思是当虚拟机内存不足时,可以允许内存与磁盘交换数据,从而获取更多的内存执行当前运行的程序。

截止到这里,以上只是准备好的三台划分好内存和核心的空节点。

注意: 实际物理机器安装Vmware 的磁盘至少还要预留 50G 磁盘空间。

2.配置IP

在每台节点上配置ip,打开 /etc/sysconfig/network-scripts/ifcfg-eth0编辑内容如下:

1. DEVICE=eth0
2. TYPE=Ethernet
3. ONBOOT=yes
4. NM_CONTROLLED=yes
5. BOOTPROTO=static
6. IPADDR=192.168.179.201 
7. NETMASK=255.255.255.0 
8. GATEWAY=192.168.179.2 
9. DNS1=192.168.179.2
10. DNS2=8.8.8.8

重启网络服务使 ip 生效:

1. service network restart

三台节点配置的ip分别为:

  1. 192.168.179.201
  2. 192.168.179.202
  3. 192.168.179.203

注意:每台节点克隆后需要删除每台节点/etc/udev/rules.d/70-persistent-net.rules文件,清除mac地址。重启每台节点即可。

3.配置每台节点的hostname

修改每台节点/etc/sysconfig/network中的HOSTNAME,分别为:cm1,cm2,cm3。设置好每台节点的hostname之后重启每台节点即可生效。

4.配置节点ip、hostname映射

在每台节点/etc/hosts文件后追加如下内容,配置ip与hostname之间的映射。

1. 192.168.179.201 cm1
2. 192.168.179.202 cm2
3. 192.168.179.203 cm3

5.关闭防火墙

在每台节点上执行如下命令,关闭防火墙,并设置开机不启动:

1. [root@cm3 ~]# service iptables stop
2. [root@cm3 ~]# chkconfig iptables off
3. [root@cm3 ~]# chkconfig iptables --list
4. iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

6.关闭SELinux

SELinux就是Security-Enhanced Linux的简称,安全加强的 linux。传统的linux权限是对文件和目录的 owner, group和 other 的 rwx 进行控制,而 SELinux 采用的是委任式访问控制,也就是控制一个进程对具体文件系统上面的 文件和目录的访问,SELinux 规定了很多的规则,来决定哪个进程可以访问哪些 文件和目录。虽然 SELinux 很好用,但是在多数情况我们还是将其关闭,因为在 不了解其机制的情况下使用 SELinux 会导致软件安装或者应用部署失败。

在每台节点/etc/selinux/config中将SELINUX=enforcing改成SELINUX=disabled 即可。

7.配置yum源

这里我们选择使用本地 yum源。需要在 VM中设置下连接光驱,步骤如下图:

在 cm1,cm2,cm3 节点上配置本地 yum源: 每台节点创建/mnt/cdrom 目录:

1. mkdir -p /mnt/cdrom

每台节点执行如下命令,将光盘设备/dev/sr0 挂载到/mnt/cdrom 目录:

1. [root@cm1 ~]# mount /dev/sr0 /mnt/cdrom/
2. mount: block device /dev/sr0 is write-protected, mounting read-only

每台节点执行命令:df -h 查看是否挂载成功:

1. df -h

上面的 mount 命令挂载后在机器重启后会失效,为了可以实现开机自动挂载,可以在每台节点的/etc/fstab 文件的最后面加入下面语句:

1. /dev/sr0 /mnt/cdrom iso9660 defaults 0 0

下面可以创建本地 yum 源,在每台节点的/etc/yum.repos.d 目录下创建 local.repo 文件,内容如下:

1. [local]
2. name=local repo
3. baseurl=file:///mnt/cdrom 4. enable=1
5. gpgcheck=1
6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

以上内容中baseurl是指 Yum源的地址,该路径下有个 repodata目录,就是yum安装源目录。file://表示 yum源为文件。

如果只想让 local.repo 生效,可以在每台节点的/etc/yum.repos.d 目录下 创建一个backup目录,将其他的以“.repo”结尾的文件都移动到backup目录中。

1. mkdir -p /etc/yum.repos.d/backup
2. mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/

在每台节点上执行以下命令,更新 yum 源:

1. yum clean all
2. yum makecache

8.配置ssh免密钥登陆

在 CDH 中需要任意两个节点之间都可以免秘钥登录。节点两两免秘钥的根本原理如 下:假设 A 节点需要免秘钥登录 B 节点,只要 B 节点上有 A 节点的公钥,那么 A节点就可以免密登录当前 B 节点。

第一、需要在每台节点上安装 ssh 客户端,否则,不能使用 ssh 命令(最小化安装 Liunx,默认没有安装 ssh 客户端):

1. yum -y install openssh-clients

第二、在每台节点执行如下命令,在每台节点的“~”目录下,创建.ssh 目录,注意:不要手动创建这个目录,因为有权限问题。

1. cd ~
2. ssh localhost
3. #这里会需要输入节点密码# 4. exit

第三、在每台节点上执行如下命令,给当前节点创建公钥和私钥:

1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

第四、将cm1,cm2,cm3的公钥copy到cm1 上,这样,cm1,cm2,cm3 节点都能登录cm1节点。命令如下:

1. 在cm1上执行如下命令,需要输入密码:
2. [root@cm1 .ssh]# ssh-copy-id cm1 #会在当前~/.ssh 目录下生成 authorized_keys 文件,文件中存放当前 cm1 的公钥#
3. 在cm2上执行如下命令,需要输入密码: 5. 在cm3上执行如下命令,需要输入密码:

5. 在cm3上执行如下命令,需要输入密码:
6. [root@cm3~]#ssh-copy-idcm1#会将cm3的公钥追加到cm1节点的authorized_keys 文件中#

最后、将cm1 节点上~/.ssh/authorized_keys 拷贝到cm2和cm3节点的 ~/.ssh/目录下,执行如下命令:

经过以上步骤,节点两两免密完成。

9.节点同步时间

在 cm1,cm2,cm3 每台节点上执行如下命令,安装 ntp 服务及配置定时任务:‍

1. yum-yinstallntp#安装ntp服务#
2. rm -rf /etc/localtime #删除现有时区#
3. ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改上海时区# 
4. /usr/sbin/ntpdate -u pool.ntp.org #同步时间#
5. date #查看时间#
6. #crontab -e 写入如下定时内容:#
7. */10 * * * * /usr/sbin/ntpdate -u pool.ntp.org >/dev/null 2>&1 #同步时
间定时任务#
8. service crond restart #重启定时任务#
9. crontab -l #查看定时任务#
10.
11. chkconfigntpdon#设置ntpd开机启动,不然后期安装CDH时会有警告。 
12. servicentpdstart#启动ntpd服务

10.安装JDK

给每台节点安装jdk,这里我们安装的CDH版本为5.4,在官网https://www.cloudera.com/documentation/enterprise/release-n otes/topics/rn_consolidated_pcm.html 下有介绍 版本对应的jdk 版本,可以使用 jdk7,也可使用 jdk8,但是对应的 jdk 小版本有要求,具体如下:

这里我们选择 jdk8版本中的 1.8u181版本安装。在每台节点安装 jdk,在每台节点中创建/software目录,将 jdk8安装包通过ftp工具上传到/software 目录下,每台节点执行如下命令安装 jdk:

1. [root@cm1 ~]# mkdir -p /software
2. [root@cm1 ~]# rpm -ivh /software/jdk-8u181-linux-x64.rpm

以上命令执行完成之后,会在每台节点的/usr/java 下安装 jdk。在每台节点配置 jdk的环境变量:

1. vim /etc/profile
2. #在每台节点中配置profile文件,在最后追加内容如下:#
3. export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
4. export PATH=$JAVA_HOME/bin:$PATH
5. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

执行完成以上命令之后,在每台节点上执行 “source /etc/profile”使配置 生效。

11.安装mysql数据库

在 cm1 中安装 mysql 数据库,执行命令:yum install –y mysql-server执行完成之后,启动 mysql:service mysql start。登录 mysql 执行如下语句:

1. [root@cm1 java]# mysql
2. mysql> use mysql;
3. mysql> select user,password from user;
4. mysql> delete from user;
5. mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'123456'WITH
       GRANT OPTION;
6. mysql> flush privileges;

执行完成以上命令之后,在每台节点上执行 “source /etc/profile”使配置 生效。

1. [root@cm1 ~]# chkconfig --add mysqld
2. [root@cm1 ~]# chkconfig --level 345 mysqld on 
3. [root@cm1 ~]# chkconfig --list

12.安装第三方依赖包

在每台几点上安装第三方依赖包,每台节点执行如下命令:‍

1. yum install -y chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

至此,安装Cloudera Manager的基础环境准备完成。


以上就是今天分享的全部内容。

如果你想了解更多关于:Cloudera系统环境准备、基础环境安装、集群部署以及应用组件安装等全方位的技术的问题,可以联系我

感谢你的阅读,如果喜欢我的文字,可以持续关注我,会陆续为你更新更多干货小知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2 std_msg 报错!

编译ros2时候报错如下: CMake Error at CMakeLists.txt:11 (find_package): By not providing "Findstd_msg.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "…

80V转5V4A同步降压WT6037

80V转5V4A同步降压WT6037 WT6037 被定义为一款高压同步降压转换器,其设计可在 10V 至 90V 的宽泛工作电压区间内稳定运行。该转换器尤其适用于需承受宽电压输入范围的电池组系统,诸如 12V 至 72V 的电池组,以及 60V 至 90V 的降压应用场景。…

Python编码系列—Python建造者模式:构建复杂对象的优雅之道

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

Spring-cloud-gateway报错问题总结

1. 访问接口出现 There was an unexpected error (typeService Unavailable, status503).Unable to find instance for order 假设我们有服务 spring-appication-name: order 但命名路由id 也为order 就会出现这类错误 因为 gateway 有默认路由

Mysql | 知识 | 理解是怎么加锁的

文章目录 一、怎么加行级锁的?二、唯一索引加锁2.1 唯一索引等值查询1、记录存在的情况2、记录不存在的情况 2.2 唯一索引范围查询a. 针对「大于」的范围查询b. 针对「大于等于」的范围查询的情况。c. 「小于」范围查询,记录「不存在」表中的情况d. 「小…

JMeter压力测试

下载地址 第一步:修改配置,并启动软件 进入bin目录,修改jmeter.properties文件中的语言支持为language=zh_CN,然后点击jmeter.bat 启动软件。 第二步:添加线程组 第三步:添加Http取样

STL之Vector容器

容器 容器的分类 序列式容器(Sequence containers) - 每个元素都有固定位置--取决于插入时机和地点和元素值无关 - vector、deque、list、stack、queue 关联式容器(Associated containers) - 元素位置取决于特定的排序准则,和插入顺序无关 - set、multiset、ma…

ARADEX伺服驱动器电源维修G565 D565/60 M5ref

伺服驱动器维修常见故障:无显示、缺相、过流、过压、欠压、过热、过载、接地、参数错误、有显示无输出、模块损坏。我们本着诚信待人的宗旨,凭借娴熟的技术和丰富的维修经验,为国内外诸多企业修了各种不同的伺服电机、驱动器和电源。 短路保…

SpringBoot - 广场舞团

专业团队,咨询就送开题报告,欢迎留言私信 摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各…

Web 安全基础教程:从零基础入门到精通

一、Web 安全概述 (一)Web 安全的定义与重要性 1.定义 Web 安全是指保护 Web 应用程序免受各种网络威胁,确保 Web 服务的保密性、完整性和可用性。在当今数字化时代,Web 应用广泛存在于各个领域,从电子商务到社交媒…

Vue2 qrcode+html2canvas 实现二维码的生成和保存

1.安装 npm install qrcode npm install html2canvas 2.引用 import QRCode from qrcode import html2canvas from html2canvas 效果&#xff1a; 1. 二维码生成&#xff1a; 下载二维码图片&#xff1a; 二维码的内容&#xff1a; 实现代码&#xff1a; <template>…

Linux进程优先级

&#x1f4dd;目录 &#x1f31f; 查看进程信息&#x1f31f; PRI and NI 风过无痕 忘川如斯 如日方升 策引千问 &#x1f31f; 查看进程信息 ps -l命令 UID : 代表执行者的身份PID : 代表这个进程的代号PPID &#xff1a;代表这个进程是由哪个进程发展衍生而来的&#xff0c…

二维码模组扫码器C#实现串口自动监听功能

C# Demo&#xff0c;调用二维码模块的tx_windows_hidpos.dll扫码库&#xff0c;支持QR-M20 、QR-M10、QR-M30等二维码型号。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text; using…

超级好用的化妆神器,一键迁移妆容,觉得别人化妆真好看,看我一键迁移到自己的脸上!(附工作流)

这两天开源社区又出了一个比较有趣的ComfyUI 插件&#xff0c;功能很简单&#xff0c;可以实现妆容的一键迁移。 操作也很简单&#xff0c;只需要上传一张带有妆容的人物照片&#xff0c;再上传一张想要迁移妆容的照片&#xff0c;就可以把参考人物的妆容迁移到想要迁移的人物…

深入分析计算机网络性能指标

速率带宽吞吐量时延时延带宽积往返时间RTT利用率丢包率图书推荐内容简介作者简介 速率 连接在计算机网络上的主机在数字信道上传送比特的速率&#xff0c;也称为比特率或数据率。 基本单位&#xff1a;bit/s&#xff08;b/s、bps&#xff09; 常用单位&#xff1a;kb/s&#x…

大模型能否真正理解上下文?

人工智能咨询培训老师叶梓 转载标明出处 尽管对LLMs的评估涵盖了自然语言处理&#xff08;NLP&#xff09;的各个领域&#xff0c;但对它们理解上下文特征的语言能力的探讨却相对有限。为了填补这一空白&#xff0c;乔治城大学和苹果公司的研究者们共同提出了一种新的上下文理解…

HW行动指南,前辈教你如何真正靠护网赚到钱!

‍正文&#xff1a; HW行动&#xff0c;攻击方的专业性越来越高&#xff0c;ATT&CK攻击手段覆盖率也越来越高&#xff0c;这对于防守方提出了更高的要求&#xff0c;HW行动对甲方是一个双刃剑&#xff0c;既极大地推动了公司的信息安全重视度和投入力量&#xff0c;但同时…

【目标检测数据集】水泥搅拌车数据集2165张VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2165 标注数量(xml文件个数)&#xff1a;2165 标注数量(txt文件个数)&#xff1a;2165 标注…

【LeetCode】每日一题 2024_9_14 从字符串中移除星号(模拟)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 今天的题目曾经的我做过了 . . . 又是复习的一天 题目&#xff1a;从字符串中移除星号 代码与解题思路 func removeStars(s string) string {// 本题的核心&#xff1a;生成的输入保证总是可以执行题面中…

ImportError: DLL load failed while importing _ssl: 找不到指定的模块的解决方法

ImportError: DLL load failed while importing _ssl: 找不到指定的模块的解决方法 现象解决办法 现象 在命令行中&#xff0c;可以正常导入_ssl模块&#xff0c;如下&#xff1a; Python 3.9.0 (default, Nov 15 2020, 08:30:55) [MSC v.1916 64 bit (AMD64)] :: Anaconda, …