前言
关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方案,更有很多数据相关的项目比如弄几张报表,写几个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分布式集群中至少需要三台服务器来构建:
- 第一台用来记录所有的数据分布情况,运行的进程就是NameNod