当前位置:   article > 正文

cloudera,cdh, hive,impala,Kerberos_cdh 容灾 容错

cdh 容灾 容错

Impala 认证现在可以通过 LDAP 和 Kerberos 联合使用来解决

Impala
是基于 Apache Hadoop 的一个开源的分析数据库,使用 Kerberos 和 LDAP 来支持认证 。Kerberos 在1.0版本中就已经被支持了,而 LDAP 是最近才被支持,在 CDH 5.2 中,你能够同时使用两者。
Kerberos
Kerberos 仍然是 Apache Hadoop 的主要认证机制。

  • principal 是 Kerberos 主体,就要一个用户或者一个守护进程。对于我们来说,一个 principal 对于守护进程来说是name/hostname@realm,或者对于用户来说仅仅是name@realm。
  • name 字段可能是一个进程,例如impala,或者是一个用户名,例如 myoder`。
  • hostname 可能是一个机器的全名称,或者是一个 Hadoop 定义的_HOST 字符串,通常会机器全名称自动替换。
  • realm 类似于(但不必要和其一样)一个 DNS 域名

组合后比如:principal=impala/jiangnandev.nam.nsroot.net@jiangnan.DYN.NSROOT.NET

在 Impala 中对 Kerberos 基本的支持很简单:提供以下参数,守护程序将使用给定的主体和 key,在密钥表文件中验证所有通信的主体的身份。

--principal=impala/hostname@realm
--keytab_file=/full/path/to/keytab
  • 1
  • 2

还有另一外一种情况是 Impala 守护进程(impalad)运行在一个负载均衡器下。

当客户端通过负载平衡器(一个代理)运行查询时,客户端期望 impalad 有一个和负载平衡器的名称的主体。所以当 Impalad 对外部查询提供服务时,需要使用一个和代理相同名称的主体,但是当做后台程序之间的通讯时需要一个主体匹配实际的主机名称

--principal=impala/proxy-hostname@realm
--be_principal=impala/actual-hostname@realm
--keytab_file=/full/path/to/keytab
  • 1
  • 2
  • 3

第一个参数 --principal 定义 Impalad 服务外部查询时使用哪一个主体,–be_principal 参数定义 Impalad 进程之间通信时使用哪一个主体。两个主体的 key 必须存在于相同的 keytab 文件中。
调试 Kerberos
Kerberos是一个优雅的协议,但是当出现错误的时候实际的实现不是非常有帮助的。下面主要有两件事情需要检查,在出现认证失败的时候:

Time。Kerberos 是依赖于同步时钟,因此在所有使用 Kerberos 的机器上安装和使用 NTP(网络时间协议)是一个最佳实践。
DNS。请确保您的主机名是全名称的并且正向(名称 - > IP)和反向(IP->名称)DNS查找是否正确。
除此之外,也可以设置两个环境变量以输出 Kerberos 调试信息。输出可能是一小部分的内容,但通常是帮助你解决问题。
KRB5_TRACE=/full/path/to/trace/output.log:该环境变量指定调试日志输出路径。
JAVA_TOOL_OPTIONS=-Dsun.security.krb5.debug=true:该环境变量会传给 Impala 守护进程,并传递给内部的 java 组件。

Cloudera
Cloudera出售基于Hadoop的软件,也发布自家版本的Hadoop产品,帮助订阅客户管理数据
CDH
CDH是Apache Hadoop和相关项目的最完整,经过测试的流行发行版。 CDH提供了Hadoop的核心元素 - 可扩展的存储和分布式计算 - 以及基于Web的用户界面和重要的企业功能。 CDH是Apache许可的开放源码,是唯一提供统一批处理,交互式SQL和交互式搜索以及基于角色的访问控制的Hadoop解决方案。

Cloudera作为一个强大的商业版数据中心管理工具,提供了各种能够快速稳定运行的数据计算框架,如Apache Spark;使用Apache Impala做为对HDFS,HBase的高性能SQL查询引擎;也带了Hive数据仓库工具帮助用户分析数据; 用户也能用Cloudera管理安装HBase分布式列式NoSQL数据库;Cloudera还包含了原生的Hadoop搜索引擎以及Cloudera Navigator Optimizer去对Hadoop上的计算任务进行一个可视化的协调优化,提高运行效率;同时Cloudera中提供的各种组件能让用户在一个可视化的UI界面中方便地管理,配置和监控Hadoop以及其它所有相关组件,并有一定的容错容灾处理;
Hive概述
Hive数据仓库软件支持在分布式存储中读取,编写和管理大型数据集。使用与SQL非常相似的Hive查询语言(HiveQL),查询被转换为一系列作业通过MapReduce或Apache Spark在Hadoop集群上执行。

用户可以使用Hive运行批处理工作负载,同时还可以在单​​个平台内使用Apache Impala或Apache Spark等工具分析交互式SQL或机器学习工作负载的相同数据。

Hive组件
Hive由以下组件组成:

1\Metastore数据库

Metastore数据库是Hive基础架构的一个重要方面。它是一个独立的数据库,依赖于传统的RDBMS,例如MySQL或PostgreSQL,它保存有关Hive数据库,表,列,分区和Hadoop特定信息(例如底层数据文件和HDFS块位置)的元数据。

Metastore数据库由其他组件共享。例如,Hive和Impala都可以插入,查询,更改等相同的表。尽管您可能会看到对“Hive metastore”的引用,但请注意,即使在您未使用Hive本身的情况下,Metastore数据库也会广泛用于Hadoop生态系统。

Metastore数据库相对紧凑,数据快速变化。备份,复制和其他类型的管理操作会影响此数据库。
2\HiveServer2
HiveServer2是一个服务器接口,它使远程客户端能够向Hive提交查询并检索结果。它取代了HiveServer1(它已被弃用,并将在未来的CDH版本中被删除)。HiveServer2支持多客户端并发,容量规划控制,Sentry授权,Kerberos身份验证,LDAP和SSL,并为JDBC和ODBC客户端提供更好的支持。

HiveServer2是Hive执行引擎的容器。对于每个客户端连接,它会创建一个新的执行上下文,用于向客户端提供Hive SQL请求。它支持JDBC客户端,例如Beeline CLI和ODBC客户端。客户端通过基于Thrift API的Hive服务连接到HiveServer2。
Apache Impala概述
Impala 能够直接对Apache Hadoop平台中存储在HDFS,HBase 的数据提供快速的交互式SQL查询。除了使用相同的统一存储平台之外,Impala还使用与Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue中的Impala查询UI)。这为实时或面向批处理的查询提供了一个熟悉且统一的平台。

Impala是对可用于查询大数据的工具的补充。Impala不会取代基于MapReduce(如Hive)的批处理框架。基于MapReduce构建的Hive和其他框架最适合长时间运行的批处理作业,例如涉及批处理提取,转换和加载(ETL)类型作业的批处理作业。

Impala的好处
Impala提供:

数据科学家和分析师已经知道的熟悉的SQL接口。
能够在Apache Hadoop中查询大量数据(“大数据”)。
集群环境中的分布式查询,便于扩展并使用经济高效的硬件。
无需复制或导出/导入步骤即可在不同组件之间共享数据文件; 例如,使用Pig编写代码,使用Hive进行转换并使用Impala进行查询。Impala可以读取和写入Hive表格,使用Impala进行简单的数据交换,以便对Hive生成的数据进行分析。
用于大数据处理和分析的单一系统,因此客户可以避免昂贵的建模和ETL仅用于分析。

cdh MapReduce 查询和cloudera search 和impala search
CDH通过使用MapReduce作业为大数据集提供存储和访问,但创建这些作业需要技术知识,每个作业可能需要几分钟或更长时间才能运行。与MapReduce作业相关的较长运行时间会中断探索数据的过程。

为了提供更直接的查询和响应,并消除编写MapReduce应用程序的需要,可以使用Apache Impala。Impala以秒为单位返回结果,而不是分钟。

虽然Impala是一个快速,功能强大的应用程序,但它使用基于SQL的查询语法。使用Impala对于不熟悉SQL的用户可能会遇到挑战。如果您不知道SQL,则可以使用Cloudera Search。尽管Impala,Apache Hive和Apache Pig都需要在查询时应用的结构,但搜索支持对已编制索引的任何数据或字段进行自由文本搜索。

Cloudera搜索和其他Cloudera组件
Cloudera搜索与其他Cloudera组件交互以解决不同的问题。下表列出了对搜索过程有贡献的Cloudera组件,并描述了它们如何与Cloudera Search进行交互:

cloudera环境搭建流程

cdh开启kerberos,java连接impala

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/195501
推荐阅读
相关标签
  

闽ICP备14008679号