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