Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
广义的Hadoop,一般称为Hadoop生态系统,如下所示。
Hadoop生态系统中这些软件的作用:
HDFS 采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。
HDFS采用Java语言开发,因此任何支持JVM的机器都可以部署名称节点和数据节点。
在配置好Hadoop 集群之后,可以通过浏览器访问 >
1、首先你得搞清楚建设数仓的目的是什么
是偏向于整合各系统数据,为数据分析决策服务,还是偏向于快速的完成分析决策需求?
如果是前者,那么在数据仓库建模的时候一般会选择ER建模方法;
如果是后者,一般会选择维度建模方法。
ER建模:即实体关系建模,由数据仓库之父BIll Inmon提出,核心思想是从全企业的高度去设计三范式模型,用实体关系描述企业服务。主张的是自上而下的架构,将不同的OLTP数据集中到面向主题的数据仓库中。
维度建模:由Kimball提出,核心思想是从分析决策的需求出发构建模型。这种模型由事实表和维表组成,即星型模型和雪花模型。Kimball倡导自下而上的架构,可以针对独立部门建立数据集市,再递增的构建,汇总成数据仓库。
2、其次你得进行深入的业务调研和数据调研
业务调研:深入的业务调研能使你更加明确数仓建设的目的;同时也利于后续的建模设计,随着调研的开展,如何将实体业务抽象为数仓模型会更加明朗。
数据调研:各部门或各科室的数据现状了解,包括数据分类、数据存储方式、数据量、具体的数据内容等等。这对后续的主数据串联或者维度一致性处理等等都是必须的基础。
3、然后是数据仓库工具选型
传统型数据仓库:一般会选择第三方厂家的数据库和配套ETL工具。因为有第三方支持,相对有保障;但缺点也很明显,受约束以及成本较高。
NoSQL型数据仓库:一般是基于hadoop生态的数据仓库。hadoop生态已经非常强大,可以找到各种开源组件去支持数据仓库。缺点是需要招聘专门人士去摸索,并且相对会存在一些未知隐患。
4、最后是设计与实施
设计:包括数据架构中的数据层次划分以及具体的模型设计;也包括程序架构中的数据质量管理、元数据管理、调度管理等;
实施:规范化的项目管理实施,但同时也需记住一点,数据仓库不是一个项目,它是一个过程。
既然完成了安装,你要做的无非就两样:
数据存在哪?
怎么计算处理数据?
对于前者,你可以使用hbase或者hive作为数据存储,当然你也可以使用hadoop自己的分布式存储系统hdfs,不过hbase和hive可以提供给你数据库类的结构存储,更方便 *** 作。
对于后者,你可以使用hadoop自己的计算框架Map-Reduce,这里无所谓数据存储在哪,你可以使用MR计算处理离线数据;如果使用hive,也可以使用hive的hql直接以sql方式进行统计计算离线数据线;也可以使用storm等处理实时数据流。当然以上几种计算,用Spark一样可以处理,这也是一个相当于MR这个等级的计算框架。
以上就是关于Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)全部的内容,包括:Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)、hadoop与传统的关系型数据库(如oracle)相比,有什么优势及劣势、请问数据仓库都用什么建立等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)