CDH和CM介绍及搭建

您所在的位置:网站首页 cm的功能是化学 CDH和CM介绍及搭建

CDH和CM介绍及搭建

2024-07-17 21:56| 来源: 网络整理| 查看: 265

[隐藏] 1CDH和CM简介 1.1什么是CDH1.2什么是CM1.3CM架构1.4心跳1.5CM 功能 1.5.1配置管理1.5.2进程管理1.5.3软件包管理1.5.4主机管理1.5.5资源管理1.5.6用户管理1.5.7安全管理1.5.8管理服务2CM 5.14 搭建 2.1环境的规划2.2主机环境准备2.3安装和配置元数据库2.4安装和配置CM2.5启动和验证CM2.6安装CDH 5.13.02.7无公网连接的安装说明3后记 1.CDH和CM简介 1.1.什么是CDH

CDH(Cloudera’s Distribution Including Apache Hadoop)是Hadoop发行版的一种,是一套目前比较完整的、充分测试的Hadoop及其相关项目的发行版。CDH的基础组件均基于apache license开源,无论是个人学习还是企业使用都比较有保障。

CDH提供以下特性:

灵活性:能够存储各种类型的数据,并使用各种不同的计算框架进行操作,包括批处理、交互式sql、文本搜索、机器学习和统计计算。

集成性:能够快速集成和运行一个完整的Hadoop平台,适用于各种不同的硬件和软件。

安全性:处理和控制敏感数据。

扩展性:能够部署多种应用,并扩展和扩充它们以满足你的需求。

高可用性:可以放心地用于关键的商业任务。

兼容性:可以利用你现有的IT基础设施和资源。

CDH的主要功能模块如下图所示:

image002

1.2.什么是CM

CM(cloudera Manager)是一种管理CDH集群的端到端的应用。CM通过对CDH集群的各部分提供精细的可视化和控制,建立了企业级部署的标准,增强了操作人员的能力以提升性能、提升服务质量、提高合规性、降低管理成本。

通过CM,技术人员可以很容易地部署和集中化操作CDH技术栈和其他可托管的服务。它使安装过程自动化,使部署时间从几个星期减少到几分钟;提供了一个集群范围、实时的主机和服务运行情况的视图;提供了一个单一的中央控制台,以对集群配置进行变更;并采用全方位的报告和诊断工具来帮助你优化性能和利用率。

1.3.CM架构

CM的核心是cloudera Manager Server。Server承载了管理员控制台(Admin Console Web Server)和应用逻辑,并负责安装软件、配置、启动、停止服务,以及管理运行有服务的集群。

Cloudera Manager Server与以下几个组件一同工作:

代理:在每个主机上安装,负责启动和停止进行、解包配置、触发安装、监控主机。

管理服务:由一组角色组成的服务,执行各种监视、告警、报告功能。

数据库:存储配置和监控信息。通常,多个逻辑数据库在一个或多个数据库服务器上运行。例如CMS和监控服务使用不同的逻辑数据库。

Cloudera仓库:CM提供的用于软件分发的仓库。

客户端:与服务器交互的借口,包括

管理控制台,管理员使用该基于web的界面以管理集群和CM。

API,开发者可使用API创建自定义的CM应用。

image004

1.4.心跳

心跳是CM的主要通信机制。默认情况下,代理每15秒发送心跳给CMS。然而为了减少用户等待时间,当状态发生变化时,频率会增加。

心跳的交换过程中,代理通知CMS其自身的活性。反过来,CMS使用该消息对应执行的操作进行响应。代理和CMS两者最终会达成一致,例如当 启动一个服务时,代理会尝试启动相关的进程;如果一个进程启动失败, CMS会将启动命令标记为失败。

1.5.CM 功能

状态管理:

CMS维护了集群的各种状态。状态可分为两类:模块和运行时,两者都存储于CMS的数据库中。

模块中包含集群、主机、服务、角色、配置。运行时包含进程、命令。

1.5.1.配置管理

CM在多个层面定义了配置,如:

服务层面,可定义整个服务实例层面的配置,如HDFS服务的默认副本因子。角色组层面,可定义某个角色组的配置,如DataNode的处理线程数量,可根据DataNodes的不同分组进行不同的配置。角色层面,可覆盖从角色组层面继承的配置。这种配置需要谨慎使用,因为会造成角色组中的配置分歧。如因为排错需求临时启用某个角色实例的DEBUG日志。主机层面,根据监控、软件管理、资源管理的不同有不同的配置。CM自身也有很多与管理操作相关的配置 1.5.2.进程管理 非CM管理的集群使用脚本进行角色进程的启动,但在CM管理的集群中这类脚本不起作用。CM管理的集群中,只能使用CM进行角色进程的启停。CM使用开源的进程管理工具名为supervisord,其会启动进程、重定向日志、通知进程失 败、为进程设置正确的用户ID等等。CM支持自动重启一个崩溃的进程。 如果一个进程在启动后频繁崩溃,还会被打上非健康标记。停止CMS和CM代理不会使正在运行的进程被中止。 1.5.3.软件包管理 CM支持两种软件分发格式:packages和parcels。package是一种二进制分发格式,包含编译的代码和元数据如包 述、版本、依赖项。包管理系统评估此元数据以允许包搜索、执行升级、确保包的所有依赖关系得到满足。CM使用本地操作系统支持的包管理程序。parcel也是一种二进制分发格式,包含CM需要使用的附加元数据。其与package的区别有:可安装同一个parcel的多个版本,并激活其中一个; parcel可安装到任何路径;通过parcel安装,CM会自动下载并激活和每 个节点操作系统版本匹配的parcel包,解决某些操作系统版本不一致问 题。 1.5.4.主机管理 CM 供了多种功能以管理Hadoop集群的主机。第一次运行CM管理员控制台时,可搜索主机并添加到集群,一旦选中了主机就可以为其分配CDH 角色。CM会在主机上自动部署作为集群托管节点的所有软件:JDK,CM 代理,CDH,Impala,Solr等等。服务部署并运行后,管理员控制台中的“Hosts”区域显示集群中托管 主机的总体状态。 供的信息包括主机上的CDH版本、主机所属的集群、 运行在主机上的角色的数量。Cloudera管理服务中的主机监控角色执行 健康检查并收集主机的统计信息,以允许你监控主机的健康和性能。 1.5.5.资源管理

CM允许使用两种资源管理方式:

静态资源池:使用Linux cgroups在多个服务间静态地进行资源隔离,如 HBase、Impala、YARN分别使用一定百分比的资源。静态资源池默认不启 用。动态资源池:用于某些服务内部的资源管理,如YARN的各种资源调度器; Impala也可对不同池中的查询动态分配资源。 1.5.6.用户管理 访问CM通过用户账户进行控制。用户账户标识如何对用户进行身份验证,并确定授予用户的权限。CM 供了多种用户认证机制。可以配置CM使用CM数据库认证用户,或使用某种外部认证服务。外部认证服务可以是LDAP服务器,或者指定的其 他服务。CM还支持使用安全断言标记语言(SAML)来实现单点登录。 1.5.7.安全管理 认证:认证是指用户或服务证明其有访问某种系统资源的权限。Cloudera集群支持操作系统账号认证、LDAP、Kerberos等认证方式。LDAP和Kerberos并不是互斥的,很多时候可以一起使用。授权:授权关注谁可以存取或控制指定的资源或服务。CDH目前支持以 下几种权限控制:传统的POSIX形式的目录和文件权限控制;HDFS扩展 的ACL细粒度权限控制;HBase可对用户和组设置各种操作的ACL;使用Apache Sentry进行基于角色的权限控制。加密:集群不同层面存储和传输的数据支持不同的加密方式。 1.5.8.管理服务

Cloudera Management Service实现了多种管理特性,包括活动监控、主机监控、服务监控、事件服务、告警发布、报表管理等。

2.CM 5.14 搭建 2.1.环境的规划 主机名IP地址操作系统硬件配置角色规划hadoop1-fblinux.com192.168.201.151Centos78核8G 100G硬盘CM、NN、RM、Hue、ZKHadoop2-fblinux.com192.168.201.152Centos78核8G 100G硬盘SNN、HS2、ZKHadoop3-fblinux.com192.168.201.153Centos78核8G 100G硬盘DN、NM、ZKHadoop4-fblinux.com192.168.201.154Centos78核8G 100G硬盘DN、NMHadoop5-fblinux.com192.168.201.155Centos78核8G 100G硬盘DN、NMHadoop6-fblinux.com192.168.201.156Centos78核8G 100G硬盘备用,实验节点扩容 2.2.主机环境准备

(1)配置hosts解析

1 2 3 4 5 6 7 # vim /etc/hosts 192.168.201.151 hadoop1-fblinux.com 192.168.201.152 hadoop2-fblinux.com 192.168.201.153 hadoop3-fblinux.com 192.168.201.154 hadoop4-fblinux.com 192.168.201.155 hadoop5-fblinux.com 192.168.201.156 hadoop6-fblinux.com

(2)关闭虚拟内存

1 # echo "vm.swappiness=1" >> /etc/sysctl.conf

(3)关闭透明大页(重启后生效)

1 2 3 4 5 6 7 8 9 # vim /etc/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 # chmod +x /etc/rc.d/rc.local

(4)关闭防火墙和selinux

1 2 3 # systemctl disable firewalld # vim /etc/selinux/config SELINUX=disabled

(5)配置时钟同步

配置chrony服务,因为我测试的服务器可以访问外网,则略过这步。

(6)重新挂载数据盘所在挂载点,添加noatime

1 2 # vim /etc/fstab /dev/xvdb1      /data/                                        ext4    defaults,noatime 0 0

(7)安装JDK1.8,并替换JCE文件(Kerberos等需要加密的组件会用到)

1、从oracle下载如下两个软件包

1 2 jce_policy-8.zip jdk-8u144-linux-x64.rpm

2、安装jdk

1 # yum -y install jdk-8u144-linux-x64.rpm

配置java home

1 2 3 # vim /etc/profile JAVA_HOME= /usr # source /etc/profile

替换jce文件

1 2 3 4 # unzip jce_policy-8.zip # mv UnlimitedJCEPolicyJDK8/*policy.jar /usr/java/jdk1.8.0_144/jre/lib/security/ mv :是否覆盖 "/usr/java/jdk1.8.0_144/jre/lib/security/local_policy.jar" ? y mv :是否覆盖 "/usr/java/jdk1.8.0_144/jre/lib/security/US_export_policy.jar" ? y

(8)安装mysql connector

1 2 3 4 5 # wget http://mirrors.sohu.com/mysql/Connector-J/mysql- connector-java-5.1.41.tar.gz # tar xf mysql-connector-java-5.1.47.tar.gz # cd mysql-connector-java-5.1.47 # cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/share/java/ # ln -s /usr/share/java/mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

(9)其余五台机器按照上述步骤进行环境配置

2.3.安装和配置元数据库

(1)安装mysql

1 2 3 # wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm # rpm -ivh mysql57-community-release-el7-10.noarch.rpm # yum -y install mysql-community-server mysql-community-client

(2)启动mysql并获取密码

1 2 3 # systemctl start mysqld # grep 'temporary password' /var/log/mysqld.log 2019-01-20T05:35:43.872496Z 1 [Note] A temporary password is generated for root@localhost: k5ulxcU&)PC:

(3)创建所需的表和账号

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 set password for root@ 'localhost' =password( '@Fblinux123' ); create database scm default character set utf8; CREATE USER 'scm' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON scm.* TO 'scm' @ '%' ; create database rman default character set utf8; CREATE USER 'rman' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON rman.* TO 'rman' @ '%' ;      create database hive default character set utf8; CREATE USER 'hive' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON hive.* TO 'hive' @ '%' ;   create database oozie default character set utf8; CREATE USER 'oozie' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON oozie.* TO 'oozie' @ '%' ; create database hue default character set utf8; CREATE USER 'hue' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON hue.* TO 'hue' @ '%' ; create database sentry default character set utf8; CREATE USER 'sentry' @ '%' IDENTIFIED BY '@Fblinux123' ; GRANT ALL PRIVILEGES ON sentry.* TO 'sentry' @ '%' ;  FLUSH PRIVILEGES; 2.4.安装和配置CM

(1)下载官方repo

1 2 cd /etc/yum .repos.d/ wget http: //archive .cloudera.com /cm5/redhat/7/x86_64/cm/cloudera-manager .repo

(2)修改baseurl地址中版本为5.14.0

1 2 # vim cloudera-manager.repo baseurl=https: //archive .cloudera.com /cm5/redhat/7/x86_64/cm/5 .14.0/

(3)执行安装操作

1 # yum -y install cloudera-manager-daemons cloudera-manager-server

注意:里面有一个包是700M,如果yum下载太慢,可使用迅雷下载到本地在上传到服务器进行安装

(4)修改配置文件,设置堆内存大小为4G,默认2G

1 2 # vim /etc/default/cloudera-scm-server export CMF_JAVA_OPTS= "-Xmx4G -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"

(5)初始化数据库

Cloudera已经提供了一个sh脚本用于配置GM连接元数据库。我们的安装规划下,元数据库和CM运行在同一个节点,且已经预先创建了SCM库和账号,因此命令很简单。

1 2 # /usr/share/cmf/schema/scm_prepare_database.sh mysql scm scm Enter SCM password:

初始化完成有如下提示:

All done, your SCM database is configured correctly!

2.5.启动和验证CM

启动CM

1 # systemctl start cloudera-scm-server

CM 启动时间较长,可以通过如下命令跟踪启动进度

1 # tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

看到如下字样说明CM启动成功

1 2 3 2019-01-20 14:25:43,906 INFO WebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4 2019-01-20 14:25:43,907 INFO WebServerImpl:org.mortbay.log: Started [email protected]:7180 2019-01-20 14:25:43,907 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

访问验证:访问CM服务器的7180端口,如果出现如下页面说明CM启动成功

image005

2.6.安装CDH 5.13.0

(1)使用初始密码admin/admin 登陆CM

(2)接受安装条款

image009

(3)选择express版,之后再次点击继续

image011

(4)选择被集群托管的节点

在搜索框中输入hadoop[1-5]-fblinux.com,点搜索

image013

(5)在接下来出现的界面中,点击”更多操作”,因为我们希望装5.13版本的CDH,默认没有搜到

用浏览器访问cloudera的仓库,寻找一下5.13.0的包。https://archive.cloudera.com/cdh5/parcels/5.13.0/

将这个地址填入CM界面的Remote Parcel Repository URLs下,点击新建一项。(如果你无法访问公网或网速较慢,也可以填写自建镜像的地址)

image017

回到前一个界面,别着急点,稍等片刻,等出现CDH-5.13.0-1.cdh5.13.0.p0.29这一项后,选中并继续。

image019

(6)接下来的页面,不要选择安装JDK,因为我们已经安装过JDK8,选择会回到JDK7。

image021

(7)接下去的界面继续提示是否要使用单用户模式安装,也不要选中。

image023

(9) 接下去的界面用于配置登录到每台主机的账号和密码,该账号需要有sudo权限。之间填入root账号即可。

image025

(10)会开始安装5个节点的agent,等安装完成后继续,如果在这一步卡很久,或者发生错误,通常是由于网速过慢,可回到主机选择的那步,重新执行,并选择自建镜像来进行安装。

image027

(11)下一页,会将CDH的包分发到每个节点并解压,全部结束后点击继续。

image029

(12)接着对每个节点进行检测,检测全部通过,说明可以正式开始安装(如果有个别黄色的警告,应该不影响安装)

image031

接下来选择集群服务的页面,我们选择“自定义“,选择hdfs、hive、hue、yarn、zookeeper几个作为本次安装的内容。

image033

(13)接下来我们进行角色划分,划分完后应该如下所示:

image035

(14)接下来设置使用的元数据库,库和用户我们已经创建好了,填写完后点击“测试连接”,全部通过后点继续

image037

(15)下一页是设置集群的默认参数,全部都可以取默认值

image039

(16)开始安装和启动服务

image041

(17)安装完成点击继续,即可看到集群管理页面,此时会有一些黄色警告,原因基本都是磁盘或内存空间不够的告警,对实验无影响。如果有红色的错误,请尝试解决。(如果是磁盘空间满,首先可清理/opt/cloudera/parcel-cache/ 目录下的所有文件)

image043

2.7.无公网连接的安装说明

前面的演示我们的集群节点是可以访问公网的。但是在某些企业的生产环境部署集群,可能不允许使用公务,或者就是为了提高部署速度,选择在数据中心假设一个内网镜像:

安装apache httpd在一台可以访问公网的电脑下载所需的操作系统iso、mysql和CM的rpm、CDH各组件的rpm和parcel,并上传到内网主机的/var/www/html/目录下在要执行安装任务的机器上编辑repo文件,使baseurl字段指向内网镜像地测试全分布安全集群的功能 3.后记

CM和CDH的介绍以及安装部署到这里就结束了,更多内容如认证授权,实战案例,我在后面的博文中会在进行输出

转载请注明:西门飞冰的博客-专注于Linux运维 » CDH和CM介绍及搭建



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3