大数据框架hadoop服务角色介绍
翻了一下最近一段时间写的分享,DKHadoop发行版本下载、安装、运行环境部署等相关内容几乎都已经写了一遍了。虽然有的地方可能写的不是很详细,我的理解水平有限还请见谅吧!我记得在写DKHadoop运行环境部署的时候,遗漏了hadoop服务角色的内容,本篇特意补上这部份内容吧,否则总以为不舒服。node

要在集群中运行DKHadoop服务,须要指定集群中的一个或多个节点执行该服务的特定功能,角色分配是必须的,没有角色集群将没法正常工做,在分配角色前,须要了解这些角色的含义。
Hadoop服务角色:数据库
- zookeeper角色:ZooKeeper服务是指包含一个或多个节点的集群提供服务框架用于集群管理。对于集群,Zookeeper服务提供的功能包括维护配置信息、命名、提供HyperBase的分布式同步,推荐在 ZooKeeper集群中至少有3个节点。
- JDK角色:JDK是 Java 语言的软件开发工具包, JDK是整个Java开发的核心,它包含了Java的运行环境,Java工具和Java基础的类库。
- Apache-Flume角色:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各种数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各类数据接收方(可定制)的能力。
- Apache-Hive角色:Hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,能够将SQL语句转换为MapReduce任务进行运行。
- Apache-Storm角色:Storm是内存级计算,数据直接经过网络导入内存。读写内存比读写磁盘速度快n个数量级。当计算模型比较适合流式时,Storm的流式处理,省去了批处理的收集数据的时间.
- Elasticsearch角色:Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索、稳定、可靠、快速,安装使用方便。
- NameNode角色:HDFS系统中的节点用于维护文件系统中全部文件的目录结构并跟踪文件数据存储于哪些数据节点。当客户端须要从HDFS 文件系统中得到文件时,它经过和NameNode通信来知道客户端哪一个数据节点上有客户端须要的文件。 一个Hadoop集群中只能有一个NameNode。NameNode不能被赋予其余角色。
- DataNode角色:在HDFS中,DataNode是用来存储数据块的节点。
- Secondary NameNode 角色:为NameNode上的数据建立周期性检查点的节点。节点将周期性地下载当前NameNode镜像和日志文件,将日志和镜像文件合并为一个新的镜像文件而后上传到NameNode。 被分配了NameNode角色的机器不该再被分配Secondary NameNode 角色。
- Standby Namenode角色:Standby模式的NameNode元数据(Namespcae information 和 Block 都是和Active NameNode中的元数据是同步的,一但切换成Active模式,立刻就能够提供NameNode服务。
- JournalNode角色:Standby NameName和Active NameNode经过JournalNode通讯,保持信息同步。
- HBase角色:HBase是一个分布式的、面向列的开源数据库。HBase在Hadoop之上提供了相似于BigTable的能力。HBase是Apache的Hadoop项目的子项目。HBase不一样于通常的关系数据库,它是一个适合于非结构化数据存储的数据库。另外一个不一样的是HBase基于列的而不是基于行的模式。
- Kafka角色:Kafka是一种高吞吐量的分布式发布订阅消息系统,它能够处理消费者规模的网站中的全部动做流数据。 这种动做(网页浏览,搜索和其余用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据一般是因为吞吐量的要求而经过处理日志和日志聚合来解决。 对于像Hadoop的同样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是经过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了经过集群来提供实时的消费。
- Redis角色:Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- Scala角色:Scala是一门多范式的编程语言,一种相似Java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各类特性。
- Sqoop角色:Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,能够将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也能够将HDFS的数据导入到关系型数据库中。
- Impala角色:Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但因为Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以知足查询的交互性。相比之下,Impala的最大特色也是最大卖点就是它的快速。
- Crawler角色:Crawler是大快DKHadoop专有组件,爬虫系统,爬取动态静态数据。
- Spark角色:Spark是一种与Hadoop类似的开源集群计算环境,可是二者之间还存在一些不一样之处,这些有用的不一样之处使 Spark 在某些工做负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了可以提供交互式查询外,它还能够优化迭代工做负载。Spark 是在Scala语言中实现的,它将Scala用做其应用程序框架。与Hadoop不一样,Spark和Scala可以紧密集成,其中的Scala能够像操做本地集合对象同样轻松地操做分布式数据集。
- HUE角色:HUE是一组可与您的Hadoop jiqun 交互的网络应用程序。HUE应用能让您浏览HDFS和工做,管理Hive metastore,运行Hive,浏览HBase Sqoop出口数据,提交MapReduce程序,构建自定义的搜索引擎与Solr一块儿调度重复性的工做流。