IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 大数据平台架构与原型实现-读书笔记3 -> 正文阅读

[大数据]大数据平台架构与原型实现-读书笔记3

第三章 基础设施

一、集群规划

1.1 集群规模与节点配置

? ? ? ?安装一个标准的生产环境,建议的集群物理架构如图:

  • ?首先,为了避免实时处理和批处理相互影响,他们两个是独立的HDFS+Yarn的集群,在CDH中可通过一组主节点管理多套集群。
  • 其次,流计算节点上只需要安装NodeManager,不需要安装DataNode,因为流计算节点只负责计算,不存储数据,在进行流计算时不存在数据存储与计算资源的“共生”问题,但批处理集群上,NodeManager一定要和DataNode共生。

1.2 节点角色分配

? ? ? ?按照“3~20 Worker Hosts with High Availability”规模分配角色,详细划分如下:

  • Master节点主要承载NameNode和YARN ResourceManager,两个服务器需要启动HA,所以需要两个Master节点组成双主架构,为保证双主节点的稳定性和负载均衡,不建议在安装其他主服务。
  • Utility节点安装其他组件的主服务,如Hive Metastor、Oozie等;Cloudera Manger也安装在Utility节点上,Cloudera Manager占用的资源相对较大,在集群规模较小时刻安排在Utility上与其他服务共享,以后随着规模扩展,也可考虑将其迁移到单独节点上。
  • Gateway节点专门供各类应用程序部署和提交作业,所以上面安装各个组件的Client;Gateway的主要负载并不是客户端服务,而是应用程序的客户端本身,如在Gateway节点上使用Client模式提交的Spark作业,则Driver的负载会落在Gateway上;Hue也被建议安排在Gateway节点,Hue有时也会被建议放在Utility节点。(如Hue用户较少,仅由运维或管理员使用,可将Hue视为某种Master服务;如Hue被作为大数据平台的一个终端开放给很多用户使用,则应安装在Gateway节点,方便日后扩容)。

二、创建实例和组网(以阿里云平台操作为例)

2.1 登录云控制台

? ? ? ?在开始创建实例之前,首先要未集群建立一个专用的虚拟网络(VPC),然后将后续创建的实例加入这个网络,尽管在云服务器上ECS会创建默认VPC,但还建议建设一个专有的VPC。

2.2 创建专有网络

  • 专有网络

? ? ? ?取名为:bpd-cluster-vpc

? ? ? ?IPv-4网段选择:10.0.0.0/8

  • 交换机

? ? ? ?虚拟交换机名称:bpd-cluster-vsw(代表bpd-cluster-vpc下的一个子网)

? ? ? ?IPv-4网段:10.0.0.0/24

2.3 创建安全组

? ? ? ?新建安全组名称:bdp-cluster-sg,专有网络选择“bpd-cluster-vpc”,即将安全组和新建的VPC关联在一起。安全组配置规则分为“入方向(inbound即从外部访问云服务器)”和“出方向(outbound即从与服务器访问外部地址)”如下:

  • 直接将“入方向”和“出方向”上各设定一条规则,允许所有IP地址访问所有端口
  • 更加安全做法在“入方向”只开通22端口用于SSH登入,在只开通22端口情况下可通过SSH Tunnel建立端口转发,将远程主机上端口映射到本地,来访问各种web管理页面和连接Mysql、Redis等数据库;入方向还配置ICMP协议规则允许ping服务器。

? ? ? ?在“出方向”上开通80和443端口用户安装软件,安装结束后关闭这两个端口。

2.4 创建实例

(1)第一步:基础配置

  • 计费模式:选择“按量计费”,在不使用集群时将节点关停会大大节省费用,适合个人学习和研究使用。
  • 地域:一定要与之前创建的虚拟交换机(bpd-cluster-vsw)在同一区域,否则创建出来的实例无法被之前创建的虚拟交换机所管理。
  • 实例:如用于学习和研究,选择能够支撑集群运行的最小配置即可,实际开发要根据实际负载选型配置更加强劲的实例类型。
  • 镜像:CentOS首选
  • 存储:云平台上实例会自带一个系统盘,同时会根据实际需要加挂一到多个数据盘。

(2)第二步:网络和安全组配置

  • 网络:选择bpd-cluster-vpc虚拟专用网络和bpd-cluster-vsw虚拟交换机
  • 公网宽带:勾选“分配公网IPv-4地址”,以便后续能通过公网登录。
  • 安全组:选择bpd-cluster-vpc虚拟专用网络和bpd-cluster-vsw虚拟交换机后,会自动应用配套的安全组bdp-cluster-sg,无需再配置。

(3)第三步:系统配置

  • 登入凭证:关于使用SSH登录服务器配置,选择“自定义密码”给root账号设定一个密码;
  • 实例名称:实例创建后再云控制台上显示名称,可自行制定;
  • 主机名:服务器的机器名

(4)第四步:分组设置

? ? ? ?由于目前集群单一,实例也比较少,不需要特定分组设置

(5)第五步:确认订单

? ? ? ?把前面所有的配置汇总显示出来供用户再次核对,无误后点击“创建实例”按钮。

? ? ? ?当实例状态为“运行中”后,可从本机通过SSH远程登录这些节点IP地址是实例列表中给出的公网IP地址,SSH用户为root,密码是“第三步”系统配置中填写的root密码;如登录成功,则为集群创建的7台服务器都已就绪。

2.5 申请弹性公网IP地址

? ? ? ?新建实例虽获得了公网IP,但它们的IP地址是浮动,每次重启后会变化,CDH在安装过程中会重新多次,建议为实例申请弹性公网IP(弹性公网IP地址需付费),节点重启后公网IP地址不变。

三、安装集群

? ? ? ?安装集群分为四个环节:

  • 首先,对每个节点做一些必要的前期处理
  • 然后,安装一个MySQL集群,因为后续很多服务都需要使用关系型数据库存储数据
  • 接下来,安装Cloudera Manager,通过Cloudera Manager来安装CDH
  • 最后,针对某些核心服务在进行必要的高可用配置,整个集群就可以交付使用了

? ? ? ?将在三个Master节点上安装NameNode、ResourceManager等主服务及MySQL集群,在Workder节点上安装DataNode、NodeManager等从服务,在Gateway节点上安装所有服务的客户端软件,原型星梦缘也部署到这个节点,并在这个节点上提交作业。

3.1 软件清单

安装项名称版本
操作系统CentOS7.6
JDKOracle JDK8u221
大数据平台管理Cloudera Manager5.15.2
大数据平台CDH5.15.2
关系型数据库MySQL5.7.26
MySQL集群方案Galera25.18
Web服务器Nginx1.17.9
缓存服务器Redis5.0

3.2 环境预配置

(1)修改机器名

IP地址正式域名(FQDN)新机器名
10.0.0.86master1.clustermaster1
10.0.0.87master2.clustermaster2
10.0.0.88utility1.clusterutility1
10.0.0.89gateway1.clustergateway1
10.0.0.90worker1.clusterworker1
10.0.0.91worker2.clusterworker2
10.0.0.92worker3.clusterworker3

(2)配置SSH免密登录

? ? ? ?SSH支持身份认证:基于密钥文件的认证方式,即通过工具生成一对密钥文件,一个是公钥,交由被请求服务器保存,另一个是私钥,由请求放持有,每次请求方访问被请求方时会出现自己持有的私钥,被请求方将得到私钥和自己持有的公钥放在一起验证,如果匹配就认证通过,这就是SSH基于密钥文件的身份认证。通过密钥文件进行远程登录不再需要输入任何密码,这就是常说的“免密登录”。

(3)禁用SELinux

? ? ? ?SELinux允许用户通过设置一些策略来控制访问,但会导致CDH安装和运行期间出现一些问题,Cloudera官方不保证CDH一定可以在SELinux下正常运行,所以关闭是必要的。

(4)禁用防火墙

(5)开启时间同步服务

? ? ? ?云平台上创建的实例来说,时间同步服务都是开启的,集群节点不需要专门配置;如果物理机上安装且不能连接外网情况下,必须要配置时间同步服务,否则很多服务会因为时间不同步而失败。

(6)在Hue节点上安装Python2.7

(7)修改时区

? ? ? ?云平台上很多Linux镜像都是默认的UTC时区,需要手动将操作系统时区设置为中国时区。

(8)安装JDK

? ? ? ?安装Cloudera Manager时可自动安装一个JDK,建议自行安装Oracle官网的JDK

(9)更新系统,安装必备工具

(10)重启节点

(11)在其他节点上重复上述操作

? ? ? ?“修改机器名”需要在所有节点上全部执行,然后在重复2~9步骤

3.3 安全redis

? ? ? ?对于大数据平台而言,缓存是一层基础服务,如使用redis,应构建一个单独集群。自由学习,指选择在gateway节点安装一个redis实例,确保相应程序能运行即可。

3.4 安装Galera(MySQL集群)

? ? ? ?Galera是Codership公司开发的一套免费开源的高可用方案,Galera Cluster指集成了Galera插件的MySQL集群,是一种“Share+Nothing+数据冗余”的MySql高可用方案,当有客户端要写入或读取数据时,可以连接集群中的任一实例,当数据写入某一个节点时,集群会将写入的数据同步到其他节点上。

(1)生成yum repo文件

(2)安装Galera

(3)配置Swap分区

? ? ? ?避免内存不足导致mysqld服务崩溃,Galera建议最好配置Swap分区。

(4)配置Galera集群

(5)启动Galera集群

(6)启用负载均衡

? ? ? ?搭建一个负载均衡服务,让负载均衡服务连接到三个节点,然后对外暴露一个虚拟IP地址,所有客户通过这个虚拟IP地址连接到数据库,在经过负载均衡服务将请求路由到一个节点。当某个节点失效时,负载均衡服务可保证跳过失效节点,将请求路由到正常节点,从而实心高可用。

3.5 搭建本地CDH Repository

(1)下载CDH? Repository

(2)安装并配置Nginx

(3)生成Repository描述文件

3.6 安装Cloudera Manager Server

? ? ? ?安装CDH集群需要首先安装Cloudera Manager,这是CDH的管理平台,CDH集群时通过Cloudera Manager安装的。

(1)配置Public Repository

(2)安装Cloudera Manager Server

(3)创建CDH各服务使用的数据库

(4)安装MySQL JDBC Driver

(5)初始化Cloudera Manager Server的数据库配置

(6)启动Cloudera Manager Server

3.7 安装 CDH

(1)为CDH集群安装指定主机

(2)选择存储库

(3)JDK安装选项

(4)启用单用户模式

(5)提供SSH登录凭据

(6)安装Agent

(7)安装Parcel

(8)检查主机的正确性

(9)选择服务

(10)自定义角色分配

(11)数据库设置

(12)审核更改

3.8 高可用配置

(1)启用HDFS的HA

(2)启用Yarn的HA

3.9 安装Spark2

3.10 启动Spark SQL

(1)下载开源版本的Spark2

(2)复制与SparkSQL相关的缺失文件

(3)修改load-spark-env.sh

(4)创建/opt/cloudera/parcels/SPARK2/bin/spark2-sql文件

(5)通过alternatives创建快捷方式

(6)在所有节点上重复上述操作

四、安装单节点集群

? ? ? ?单节点集群通常为个人使用,硬件配置最好不要小于8C、32GB内存。建议将机器取名为node1.cluster,因为原型项目中提供了一个面向单节点集群的profile,在整个profile中的服务器的机器名为node1.cluster。安装过程只有两点不同:

  • 所有服务只能安装在一个节点上;
  • 没有任何HA服务,没有负载均衡配置。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:24:49  更:2021-08-28 09:26:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:07:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码