大数据教程(一)—— Hadoop集群坏境搭建配置

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 前言关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方案,更有很多数据相关的项目比如弄几张报表,写几个T-SQL语句就被冠以“大数据项目”,当然了,时下热门的话题嘛,先把“大数据”帽子扣上,这样才能显示出项目的高大上,得到公司的重视或者高层领导的关注。

前言

关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方案,更有很多数据相关的项目比如弄几张报表,写几个T-SQL语句就被冠以“大数据项目”,当然了,时下热门的话题嘛,先把“大数据”帽子扣上,这样才能显示出项目的高大上,得到公司的重视或者高层领导的关注。

首先,关于大数据的概念或者架构一直在各方争议的背景下持续的存在着。目前,关于大数据项目可以真正被落地实施的解决方案就是:Hadoop为核心的的一些列开源分布式解决方案。

其次,本系列,我们不讲一些抽象的方法论或者概念性的东西,我将实际的跟大家分享一个真正的大数据解决方案将如何被落地实施。包括与其相关的的配套开源系统:Hive、Spark、Sqoop、Hue、Zookeeper、Kafka等诸多产品的搭建。

再次、关于大数据的生态圈每一个产品都有着强大的技术背景做支撑。所以,本系列我们重点放在如何搭建和使用等诸多技术实施点上,不扯太虚的东西。

技术准备

进入本篇的正题,本篇我们主要来分析如何来搭建一个Hadoop集群环境,其实Hadoop的搭建分为三种形式:单机模式、伪分布模式、完全分布模式,关于这三种模式其实都是扯淡,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式。

所以,本篇我们来讲解Hadoop集群环境的搭建。

一般,当公司要开始搭建Hadoop集群的时候,需要考虑一下技术点:

一、硬件的选择

首先,关于Hadoop集群环境硬件的选择,无非就是围绕几个面去选择:

1、需要搭建集群包含几个节点(Node)?

关于这个问题,引入的要考虑的点就是需要搭建几个Server环境,因为在分布式环境中,一个服务器(Server)就是一个节点,所以在选择节点的问题上是需要参照参照当前集群所要应用的业务场景来决定了,当然,在分布式集群环境中节点越多所带来的就是整个集群性能的提升,同样也也就意味着带来了成本的增高。

但是,关于Hadoop集群有一个最低的节点量供大家参考。

首先,在一个Hadoop集群环境中,NameNode,SecondaryNameNode和DataNode是需要分配不同的节点上的,所以至少有三个节点来当然这些角色。这也就意味至少需要有三台服务器。当然,在Hadoop运行作业完成的时候,还需要另外一个角色History Server来记录历史程序的运行情况,建议是将这个角色用独立的一台服务器来运行。

所以,在一个最简单的Hadoop分布式集群中至少需要三台服务器来构建:

  • 第一台用来记录所有的数据分布情况,运行的进程就是NameNode
  • 第二台用来备份所有数据分布情况,毕竟当前面的那台服务器宕机的时候,还可以通过该服务器来恢复数据。所以,该服务器运行的程序就是SecondaryNameNode
  • 第三台用来存储实际的数据,运行的进程就是DataNode
  • 第四台是可选的服务器用来记录应用程序历史的运行状况。运行的程序就是History Server了。

2、集群环境中各个服务里该如何选择配置?

     其实这个问题就是配置选型的问题,关于配置无非就是内存、CPU、存储等如何选择,当然,在公司预算允许的情况下,配置越高越好,关于这些个问题在搭建Hadoop环境的时候,需要从以下几个点来考虑。

首先,关于集群中的几个节点是根据角色的划分有侧重点进行配置的,并不是要求所有的服务器都弄一样的配置,在Hadoop集群环境中,最重要的就是NameNode运行的服务器了,因为它扮演的角色是整个集群的调度和协调工作,当然在这个角色中还有一个最重要的进程是资源管理(ResourceManager),它才是真正的协调整个集群中每个节点的运行。所以这个服务器的配置要高于其它节点。

其次,在Hadoop集群运行的过程是需要将所有的数据分布记录拉入到内存中的,所以这就意味着当整个集群的数据越来越大,我们知道在大数据的环境下,几TB级别或者PB级别的数据是很常见的,这也就意味这个数据分布记录也要增大,所以需要加大内存,这里有一个参考依据:

一般1GB内存可以管理百万个block文件。

举例:bolck为128M,副本为3个,200台集群,4TB数据,需要的Namenode内存为:200(服务器数)x 4194304MB(4TB数据) / (128MB x 3)=2184533.33个文件=2.18百万个文件,所以内存值也就接近于2.2G了。

    再次,因为这里有有一台机器用来做备份,所以secondary namenode需要的内存与namenode需要的内存大概一样,然后就是从节点的各台服务器需要的内存量了,这里也有一个参考依据:

  • 首先计算当前CPU的虚拟核数(Vcore):虚拟核数(Vcore)=CPU个数*单CPU合数*HT(超线程数)
  • 然后根据虚拟核数配置内存容量:内存容量=虚拟核数(Vcore)*2GB(至少2GB)

关于CPU的选择,因为Hadoop为分布式计算运算,所以其运行模型基本是密集型并行计算,所以推荐的CPU要尽量选择多路多核的,条件允许的话每个节点都要如此。

 然后,在一个大型的分布式集群中,还需要注意的是,因为分布式的计算,需要各个节点间进行频繁的通信和IO操作,这也就意味对网络带宽有要求,所以推荐使用千兆以上的网卡,条件允许可以万兆网卡,交换机亦如此。

3、集群环境中每个节点存储大小如何配置?需要引入什么raid?

首先先来谈一下关于raid的问题,之前因为raid的目的就是为了防止数据丢失而做的存储层数据备份机制,现在最佳的使用场景是单台服务这种高风险的配置,然后再分布式集群中,所存储的数据是分布式存放到各个数据节点上的(DataNode),并且Hadoop应用已经默认实现了数据的备份,所以raid在分布式系统中是没有多大作用的,然并卵!其实,究其原理很简单,集群中单节点的数据备份在出现意外宕机的情况下基本是无法恢复出有效数据的。

然后我们再来分析一下关于存储的问题,可以明确一点的就是:数据量的大小决定了集群整体的存储大小,同样也决定了整个集群的规模!

来举个例子:

假如我们当前可以确定的存量数据量有1TB,然后每天大约增长10GB的数据量,那么当前集群未来一年之内集群存储大小计算方式为:

(1TB+10GB*365天)*3*1.3=17.8TB

可以看出,这个集群的规模一年就得大约需要18T的存储空间,这里解释一下计算的公式,括号外面的乘以3指的是当前数据为了防止丢失自己所做的冗余备份,默认是一份数据拷贝三份存储于不同的服务器上,然后后面乘以1.3的目的是作为节点的操作系统或者计算的临时结果预留空间。

然后,我们接着计算节点数:

节点数(Nodes)=18TB/2TB=9

上面的计算公式除以2TB的假设是每个节点有2TB的存储空间,这里根据集群的存储大小可以计算出整个集群的数据存储节点数:9个。

所以需要的总结点数:总结点数=9(数据存储节点)+2(NameNode和SecondaryNameNode)=11个。

到此,就需要搭建11个服务器来运行集群了。

二、软件的选择

关于Hadoop集群环境软件的选择,无非就是围绕这个几个软件产品去选择:OS操作系统,Hadoop版本,JDK版本,Hive版本、MySQL版本等。

1、操作系统该选择哪款?

Hadoop产品是由Java语言开发的,所以推荐的是Linux操作系统,理由很简单开源免费,就一个免费这个理由就足以PK掉微软的操作系统,因为我们知道集群环境是需要很多台服务器的,所以如果用微软的服务器成本会高很多,当然,其实在大数据开源的产品中基本找不到微软的影子,所以从这一点来讲,微软已经拉下了很多,甚至已经在落寞!

所以,在开源的Linux操作系统中又是百花齐放,各种版本,各位朋友可以自行网上查阅各个版本的区别和优越性,这里我就直接告诉大家我推荐的操作系统CentOS.

如下照抄自博友虾皮的简介:

CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本。每个版本的 CentOS 都会获得七年支持(通过安全更新方式)。版本的 CentOS 每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。

 CentOS特点

  • 可以把CentOS理解为Red Hat AS系列!它完全就是对Red Hat AS进行改进后发布的!各种操作、使用和RED HAT没有区别!
  • CentOS完全免费,不存在RED HAT AS4需要序列号的问题。
  • CentOS独有yum命令支持在线升级,可以即时更新系统,不像RED HAT那样需要花钱购买支持服务!
  • CentOS修正了许多RED HAT AS的BUG!
  • CentOS版本说明: CentOS3.1 等同于 RED HAT AS3 Update1 CentOS3.4 等同于 RED HAT AS3 Update4 CentOS4.0 等同于 RED HAT AS4。

好了,我相信以上这些理由足以征服你了。

2、Hadoop版本选择的问题?

关于Hadoop历史版本变迁过程中,出现了很多版本,有兴趣的童鞋可以自行查阅,这里我只从大的方向把Hadoop版本劈成2个,这里暂称Hadoop1.0和Hadoop2.0,截止我写本文章的时候,Hadoop2.0版本已经相当稳定,并且逐渐在企业应用中大面积推广而来,关于这两个版本我就不去过多的介绍,网友可以自行查阅,或者参考我之前的一篇关于两个版本的架构比较。

所以,本系列内容我应用的版本就是基于Hadoop2.0这个系列来进行讲解。

而关于Jdk版本的问题是和Hadoop的版本相匹配的,其它相关产品后续我们会分析,当然也大家可以自行从Hadoop官网上去查询,这里不赘述。

操作系统

为了方便演示,我会使用虚拟机跟大家讲解,当然,有兴趣的童鞋也可以自行下载虚拟机跟随我一步步来搭建这个平台,这里我选择的虚拟机为:VMware。

大家网上下载安装就可以了,过程很简单,没啥需要讲解的,当然你的PC配置是需要好一点的,至少8G以上,要不基本玩转不了虚拟机。

安装完成就是上面的样子了,相关资料大家网上查阅吧,这里就不在赘述。

然后,我们进行Liunx操作系统的安装,上面已经说过,我们选择的是CentOS操作,所以需要到CentOS官网进行下载安装就行,记住了:不用怕,不花钱!

 官方网站与文档  

  • 官方主页: http://www.centos.org/
  • 官方Wiki: http://wiki.centos.org/
  • 官方中文文档 :http://wiki.centos.org/zh/Documentation
  • 安装说明: http://www.centos.org/docs/

这里在选择CentOS版本的时候需要记住了,如果不是公司要求,尽量不要选择最新的,而是要选择最稳定的,原因很简单,谁也不要当新版本的小白鼠。

然后选择要下载的稳定版本,这里我推荐选择CentOS6.8 64位操作系统。

然后,点击找到下载包下载就行。

在安装各个节点之前,我们需要提前准备好相关节点的配置信息,比如计算机名、IP地址、安装角色、超级管理员账户信息,内存分配、存储等,所以我列举了一个表格供大家参考:

大家可以看到,我这里先提前规划处四台服务器用来搭建Hadoop集群,然后分别为其分配了机器名称、IP,IP需要设置为统一网段,然后为了搭建我们的Hadoop集群,我们需要为所有集群中的节点创建一个独立的用户,这里我起了一个名字,就叫做Hadoop,当然为了方便记忆我统一的将所有的密码设置为password01!.

当然,这里我们提前配置好内存和存储,因为我们知道我们使用的虚拟机这些信息是可以根据使用的情况,进行动态调整的。

另外,我又搭建了两台Ubuntu的服务器来单独安装MySQLServer,搭建了一个主从模式,我们知道Ubuntu是一个界面友好的操作系统,这里和Hadoop集群分离的目的是因为Mysql数据库是比较占内存资源的,所以我们单独机器来安装,当然,MySQL并不是Hadoop集群所需要的,两者没有必然的关系,这里搭建它的目的就为了后续安装Hive来分析数据应用的,并且我们可以在这个机器里进行开发调试,当然Window平台也可以,毕竟我们使用Windows平台是最熟练的。

结语

此篇篇幅已经有些长度了,先到此吧,关于Hadoop大数据集群的搭建后续依次介绍,比如利用Zookeeper搭建Hadoop高可用平台、Map-Reducer层序的开发、Hive产品的数据分析、Spark的应用程序的开发、Hue的集群坏境的集成和运维、Sqoop2的数据抽取等,有兴趣的童鞋可以提前关注。

本篇主要介绍了搭建一个Hadoop大数据集群需要提前准备的内容和一些注意项,关于开源的大数据产品生态链是非常的庞大,所以我们将花费很多的时间在应用的使用场景上,但是其最底层的支撑框架就是Hadoop的Yarn计算模型和HDFS分布式文件存储系统。

通过该篇的介绍,多少也需要知道自己需要掌握的技术点:比如Linux操作系统的运维和操作、MySQL关系型数据应用和管理、Java开发的基础知识等诸多门槛。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
26 11
|
1月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
46 3
Hadoop集群配置https实战案例
|
10天前
|
分布式计算 Hadoop Java
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
本文是一份详细的Hadoop集群搭建指南,基于Hadoop 3.3.4版本和CentOS 8操作系统。文章内容包括虚拟机创建、网络配置、Java与Hadoop环境搭建、克隆虚拟机、SSH免密登录设置、格式化NameNode、启动Hadoop集群以及通过UI界面查看Hadoop运行状态。同时,还提供了常见问题的解决方案。
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
|
1月前
|
机器学习/深度学习 分布式计算 安全
Hadoop集群常见报错汇总
这篇博客总结了Hadoop集群中可能遇到的各种常见错误,包括Kerberos认证问题、配置错误、权限问题等,并为每个问题提供了详细的错误复现、原因分析以及相应的解决方案。
51 1
Hadoop集群常见报错汇总
|
1月前
|
资源调度 分布式计算 运维
Hadoop集群资源管理篇-资源调度器
详细介绍了Hadoop集群资源管理中的资源调度器,包括资源分配的概念、大数据运维工程师如何管理集群工作负载、资源调度器的背景、Hadoop提供的FIFO、容量调度器和公平调度器三种资源调度器的概述以及它们之间的对比。
75 4
|
1月前
|
分布式计算 监控 Hadoop
监控Hadoop集群实战篇
介绍了监控Hadoop集群的方法,包括监控Linux服务器、Hadoop指标、使用Ganglia监控Hadoop集群、Hadoop日志记录、通过Hadoop的Web UI进行监控以及其他Hadoop组件的监控,并提供了相关监控工具和资源的推荐阅读链接。
50 2
|
2月前
|
存储 分布式计算 Hadoop
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
107 0
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
2月前
|
存储 SQL 分布式计算
Hadoop生态系统概述:构建大数据处理与分析的基石
【8月更文挑战第25天】Hadoop生态系统为大数据处理和分析提供了强大的基础设施和工具集。通过不断扩展和优化其组件和功能,Hadoop将继续在大数据时代发挥重要作用。
下一篇
无影云桌面