HDP 企业级大数据平台
一 前言
阅读本文前需要掌握的知识:
- Linux基本原理和命令
- Hadoop生态系统(包括HDFS,Spark的原理和安装命令)
由于Hadoop生态系统组件众多,导致大数据平台多节点的部署,监控极其不方便,因此一些Hadoop厂商提供了企业发行版,例如CDH,HDP等。这些Hadoop企业发行版将Hadoop生态系统的开源组件整合到了一个平台之上,并做了一些定制,提供了安装,部署,监控等工具,大大方便了平台运维人员。
CDH是Cloudera公司向企业客户提供的基于Apache Hadoop生态系统构建的大数据分析平台。
HDP是Hortonworks公司基于Hadoop生态系统开源组件构建的大数据分析平台。
我们选用HDP搭建企业级大数据平台,下面会着重分析说明原因。
二 大数据平台说明
目前企业级Hadoop发行版,免费版本主要有Hadoop Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)和Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。
2.1 CDH与HDP比较
CDH | HDP | |
---|---|---|
相同点 | 1.相对于Intel Hadoop 和IBM Hadoop的发行版而言,两者都是免费版。 | 2.相对于Apache 开源社区版本,更易于维护,管理,且稳定性高。 |
不同点 | 文档详细,但区分免费版和企业版,企业版只有试用期 | HDP版本是比较新的版本,目前最新版(HDP2.6.0)与apache基本同步,因为Hortonworks内部大部分员工都是apache代码贡献者。 |
2.2 HDP大数据平台说明
我们的大数据平台基于HDP2.6.0版本搭建,HDP 2.6.0 Hadoop生态系统主要组件版本如下:
2.3 企业级大数据平台架构
根据我们目前的业务场景,我们主要选用Ambari(Hadoop生态系统管理监控),Hdfs(分布式文件系统),HBase(分布式列数据库),Yarn(资源调度管理),Kafka(分布式消息组件),Spark(分布式内存计算引擎),Zookeeper(分布式服务组件)等组件作为我们大数据平台的基础。下面主要简单介绍我们搭建的企业级大数据平台主要组件(详细内容请查看官方文档):
- HDFS 事实上已经成为大数据存储层的标准,经过多年的发展,目前基本功能(如高可用,异构存储)已经非常稳定。
- HBase 是基于Hdfs的分布式列数据库。可以作为存储层的辅助,我们的业务场景用到了。
- Yarn是Hadoop生态系统的资源调度组件,我们使用Spark作为计算引擎,集群每隔节点上的资源如何合理分配?如果共享底层的存储数据?都离不开Yarn。
- Spark 作为我们大数据平台的分布式计算引擎,其核心是RDD(弹性分布式数据集),RDD有两类操作Transformation和Action,基本可以满足我们常用的数据分析场景。
Ambari 是我们大数据平台的管理和监控组件,主要由两部分组成:Ambari Server 和 Ambari Agent组成。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装Hadoop生态系统的组件;Agent 会定时地发送集群各个机器每个组件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 Web界面上,方便用户了解到集群的各种状态,并进行相应的维护。
企业级大数据平台.png
三 大数据平台安装部署
3.1 集群规划
我们的集群初期规划为6个节点,1个Ambari节点(负责整个集群监控和管理),1个NameNode/Master节点(HDFS,Spark,HBase的主节点),1个SecondaryNameNode节点(HDFS的备份节点),3个DataNode/Work节点(HDFS,HBase的数据节点)
3.1.1 硬件规划
我们的物理机安装Centos-7-x86_64-Minimal(Centos 7.3 最小版)系统,由于使用Spark做分析引擎,对内存的要求比较高,具体规划如下:
主机名称 | 操作系统 | 内存 | 硬盘 |
---|---|---|---|
ambari | Centos-7-x86_64-Minimal | 4G | 200G |
bigdata1 | Centos-7-x86_64-Minimal | 16G | 500G |
bigdata2 | Centos-7-x86_64Minimal | 16G | 500G |
bigdata3 | Centos-7-x86_64-Minimal | 16G | 500G |
bigdata4 | Centos-7-x86_64-Minimal | 16G | 500G |
bigdata5 | Centos-7-x86_64-Minimal | 16G | 500G |
物理机安装完Centos系统后,使用下面命令查看内存
## 查看系统内存
free -h
除过Ambari节点,集群其他各节点物理机Centos系统硬盘分区如下:
/boot 1024M
/ 50G ##根目录
/home 20G ##用户目录
/usr 20G ##安装软件
/data 400G ##存放数据
swap 8G
3.1.2 软件规划
主机名称 | 安装HDP组件 | JPS启动进程 |
---|---|---|
ambari | JDK/PostgreSQL/Ambari | AmbariServer |
bigdata1 | JDK/Zookeeper/Hadoop/HBase | Namenode/QuoqumPeerMain/Hmaster/ History Server/Kafka |
bigdata2 | JDK/Zookeeper/Hadoop | Resourcemanager/SecondaryNameNode |
bigdata3 | JDK/Zookeeper/Hadoop/HBase | QuoqumPeerMain/Nodemanager/Hregionserver |
bigdata4 | JDK/Zookeeper/Hadoop/HBase | QuoqumPeerMain/Nodemanager/Hregionserver |
bigdata5 | JDK/Zookeeper/Hadoop/HBase | QuoqumPeerMain/Nodemanager/Hregionserver |
3.2 准备工作
- HDP 2.6.0以上的版本,支持Ambari 2.5.x版本部署安装。
- 在所有节点安装Oracle JDK 8。
## 注意去官方下载jdk需要header头
cd /usr/local
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie"
http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
## 解压 jdk文件,修改文件名
tar zxf jdk-8u144-linux-x64.tar.gz
mv jdk-8u144-linux-x64 java
## 配置java环境变量
vi /etc/profile
添加下面内容:
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
## 环境变量生效
source /etc/profile
- 建议配置每个机器节点上的yum为阿里yum,以提高下载速度。由于centos 默认的yum镜像是国外的,速度慢,可以配置国内的阿里yum。
## 备份 默认yum镜像文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
## 下载阿里CentOS-Base.repo镜像文件 到/etc/yum.repos.d/
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
## 执行命令生成缓存
yum makecache
- 所有节点配置主机名
## 打开hosts文件
vi /etc/hosts
192.168.0.100 ambari
192.168.0.101 bigdata1
192.168.0.102 bigdata2
192.168.0.103 bigdata3
192.168.0.104 bigdata4
192.168.0.105 bigdata5
## 注意不要移除hosts文件中这两行
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
## 检查主机名
hostname -f
## 设置主机名,例如设置192.168.0.100机器的主机名为ambari
hostname ambari
- 配置集群各节点间的时间同步
## 每个机器安装时间同步工具,并启动ntp服务,Hbase之间数据同步需要配置时间同步
yum install -y ntp
systemctl enable ntpd
- 配置各节点间SSH无密码访问
# 每个节点生成ssh的key,执行后会有多个输入提示,不用输入任何内容,全部直接回车即可
ssh-keygen
#拷贝到其他节点
ssh-copy-id -i /.ssh/id_rsa -p 22 root@ambari
ssh-copy-id -i /.ssh/id_rsa -p 22 root@bigdata1
ssh-copy-id -i /.ssh/id_rsa -p 22 root@bigdata2
ssh-copy-id -i /.ssh/id_rsa -p 22 root@bigdata3
ssh-copy-id -i /.ssh/id_rsa -p 22 root@bigdata4
ssh-copy-id -i /.ssh/id_rsa -p 22 root@bigdata5
#验证是否设置成功
ssh bigdata1
- 暂时关闭各节点防火墙和SELinux
## 关闭防火墙
systemctl disable firewalld
service firewalld stop
## 关闭SELinux
setenforce 0
- 设置每个节点的文件打开数
## 查看linux默认打开文件数
ulimit -Sn
ulimit -Hn
## 设置文件打开数为10000个
ulimit -n 10000
3.3 安装部署
3.3.1 在Ambari节点安装Ambari
- ambari节点配置ambari repo文件
## root用户登陆ambari节点,下载ambari repo文件
wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
## 查看ambari节点的yum源,可以看到我们刚才配置的ambari源和最开始配置的aliyun 源
yum repolist
## 返回结果如下
repo id repo name status
!ambari-2.5.1.0 ambari Version - ambari-2.5.1.0 12
!base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 9,363
!extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 450
!updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 2,146
repolist: 11,971
- 安装ambari-server
## 安装ambari-server
yum install ambari-server
- 配置ambari server
注意ambari依赖于数据库,默认内嵌PostgreSQL,我么选用默认内嵌的postgresql数据库
# 在ambari节点执行下面命令
ambari-server setup
下面是配置执行流程,按照提示操作
(1) 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 账号。输入:root
Enter user account for ambari-server daemon (root):root
Adjusting ambari-server permissions and ownership...
(3)设置JDK。输入:3
Checking JDK...
Do you want to change Oracle JDK [y/n] (n)? y
[] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[] Custom JDK
==============================================================================
Enter choice (1): 3
(4)如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/usr/local/java
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME:/usr/local/java
Validating JDK on Ambari Server...done.
Completing setup...
(5)数据库配置。选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
(6)选择数据库类型。输入:1
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==============================================================================
Enter choice (1): 1
(7)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost): ambari
Port ():
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
- 启动Amabri
## 启动ambari服务
ambari-server start
## 成功启动后在浏览器输入Ambari地址:http://{ambari节点IP地址}:8080/
3.3.2 安装HDP
之前我们大数据测试平台的安装都是用命令行,单独安装Hadoop生态系统的组件,现在我们利用Ambari 图形界面安装,都是一路Next操作,由于安装时未截图,我去网上找了一些安装界面,做个注释说明
- 浏览器打开网站 http://{ambari节点IP地址}:8080/,登录Ambari,默认管理员账户登录, 账户:admin 密码:admin
- 安装向导界面
- 设置集群名称
- 配置HDP 公共源(选择HDP2.6)
选择RedHat7,HDP 2.6.0 yum地址如下
HDP-2.6: http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.0.3
HDP-UTILS-1.1.0.21:http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7
- 设置集群hosts列表,配置ambari节点私钥文件
## Target Host配置集群各节点
192.168.0.101 bigdata1
192.168.0.102 bigdata2
192.168.0.103 bigdata3
192.168.0.104 bigdata4
192.168.0.105 bigdata5
# Host Registraion information
填写ambari节点私钥,SSH user Account账户设置为root
- Host确认(确认前面配置集群中hosts列表 中的机器是否都可用,如果集群中机器Success后进行下一步操作)
- 选择要安装的服务
注意我们主要安装HDFS,HBase ,ZooKeeper,Spark2,Kafka。在HDP2.6.0版本默认需要安装YARN+MAPREDUCE2,Tez,Hive,SmartSense等组件(下图是网上找的图,只是个参考)
- 安装服务的Master配置
- 安装服务的Slaves和Clients配置
## 配置HDFS的DataNode ,YARN的NodeManager 以及HBase的Hregionserver的节点为
bigdata3,bigdata4,bigdata5
- 安装服务的配置文件属性设置(根据提示设置安装服务的必须属性,注意HDFS的NameNode和DataNode节点目录不能设置为home/目录)
- 显示配置信息
- 开始安装部署服务(安装各个服务,并且完成安装后会启动相关服务,安装过程比较长,如果中途出现错误,请根据具体提示或者log进行操作)
安装完成后,Ambari面板如下:
ambari面板.png
四 总结
- ambari机器需要外网IP地址
- 如果需要搭建内网hdp yum 源,需要去官网下载hdp 和ambari [1]
- HDP下安装的 Spark的在Yarn-cluster模式下,个人觉得应该在bigdata3,bigdata4,bigdata5 安装spark slaves服务,但是和我们单独安装spark模式不同,这里master和slave节点上的服务相同(都是Spark History Server),后面继续学习。
- Ambari infra和Ambari Metrics的作用需要深入了解。
- 注意HDP2.6.0下的HBase版本比开源社区的版本底很多,开发时尽量用HDP提供的Hbase客户端版本。
参考文章
[1] 官方Ambari安装HDP文档
作者:IIGEOywq
链接:https://www.jianshu.com/p/079a0c98e0bc
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
HDP 企业级大数据平台的更多相关文章
- 基于Ambari构建自己的大数据平台产品
目前市场上常见的企业级大数据平台型的产品主流的有两个,一个是Cloudera公司推出的CDH,一个是Hortonworks公司推出的一套HDP,其中HDP是以开源的Ambari作为一个管理监控工具,C ...
- HDP 大数据平台搭建
一.概述 Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应.管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.Hiv ...
- 大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台
一.Cloudera Manager介绍 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功 ...
- 朝花夕拾之--大数据平台CDH集群离线搭建
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...
- 基于Hadoop的大数据平台实施记——整体架构设计[转]
http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...
- 基于Hadoop的大数据平台实施记——整体架构设计
大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
- DataPipeline在大数据平台的数据流实践
文 | 吕鹏 DataPipeline架构师 进入大数据时代,实时作业有着越来越重要的地位.本文将从以下几个部分进行讲解DataPipeline在大数据平台的实时数据流实践. 一.企业级数据面临的主要 ...
- 阿里云HBase全新发布X-Pack 赋能轻量级大数据平台
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
随机推荐
- SQL——BETWEEN操作符
一.BETWEEN操作符的基本用法 BETWEEN操作符用于选取两个值范围内的值. 语法格式如下: SELECT 列名1,列名2... FROM 表名 WHERE 列名 BETWEEN 值1 AND ...
- 视图集ViewSet
一 .视图集ViewSet 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update ...
- vue+element树组件 实现树懒加载
本文连接https://www.cnblogs.com/aknife/p/11709255.html 一.页面样式 二.数据库 三.前端页面代码 <template> <el-tre ...
- Different Subsets For All Tuples CodeForces - 660E (组合计数)
大意: 定义$f(a)$表示序列$a$本质不同子序列个数. 给定$n,m$, 求所有长$n$元素范围$[1,m]$的序列的$f$值之和. 显然长度相同的子序列贡献是相同的. 不考虑空串, 假设长$x$ ...
- SQL Server 索引优化 ——索引缺失
本文我们将重点给出动态视图法发现数据库中缺失的索引.对于索引的调整和新建将不在本文阐述范围,后续将陆续分享相关经验. sys.dm_db_missing_index_details 缺失索引明细,包括 ...
- JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--实现
先学习下new操作符吧 new关键字调用函数的心路历程: 1.创建一个新对象 2.将函数的作用域赋给新对象(this就指向这个对象) 3.执行函数中的代码 4.返回这个对象 根据这个的思路,来实现一个 ...
- UCOSIII优先级反转
反转现象 任务优先级:H>M>L 绿色部分:任务占用共享资源 理想状态:7释放信号量后,最高优先级H任务抢占CPU 反转原因:H和L等待同一个信号量,H的任务优先级被降至和L相同优先级,此 ...
- 详解iOS的presentViewController(转)
一.用途和相关概念iOS中显示ViewController的方式有两种push和modal,modal也叫模态,模态显示VC是iOS的重要特性之一,其主要用于有以下场景: - 收集用户输入信息- 临时 ...
- navicat for mysql 链接时报错:1251-Client does not support authentication protocol requested by server
客户端使用navicat for mysql.本地安装了mysql 8.0.但是在链接的时候提示: 主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的. 打开mysql命令行输入如下命令 ...
- docker-compose设置mysql初始化数据库的字符集
version: '3' services: mysql: image: mysql:5.7.24# volumes:# - ./mysqld.cnf:/etc/mysql/mysql.conf.d/ ...