CDH Hive 配置HiveServer2

CDH Hive 配置HiveServer2,第1张

翻译:  https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_hiveserver2_configure.html

版本: 5.14.2

在使用HiveServer2之前,您必须进行以下配置更改。不这样做可能会导致不可预知的行为。

警告: HiveServer1在CDH 5.3起不推荐使用,并且将在未来的CDH版本中删除。HiveServer1的用户应该尽快升级到 HiveServer2 。

重要提示:这些数字只是一般性指导,可能会受到诸如列数,分区,复杂联接和客户端活动等因素的影响。根据您的预期部署,通过测试进行优化以达到您的环境的最佳值。

有关为HiveServer2配置堆以及Hive Metastore和Hive客户端的信息,请参阅 Hive组件的堆大小和垃圾收集 以及以下视频:

解决HiveServer2服务崩溃问题

当您启动视频,请点击YouTube上在播放器窗口的右下角看它在YouTube上,你可以调整它的大小更清晰的观看。 (!--)

您必须正确配置并启用Hive的表锁管理器。这需要安装ZooKeeper并设置一个ZooKeeper集合请参阅 ZooKeeper安装 。

重要提示:如果不这样做将会阻止HiveServer2处理并发查询请求,并可能导致数据损坏。

通过设置属性启用锁管理器 /etc/hive/conf/hive-site.xml 如下所示(用实例中的实际ZooKeeper节点名替换):

重要提示:启用表锁管理器而不指定有效的Zookeeper法定节点列表将导致不可预知的行为。确保两个属性都已正确配置。

(如果您仍在使用HiveServer1,还需要上述设置。不推荐使用HiveServer1尽快迁移到HiveServer2。)

如果ZooKeeper没有使用ClientPort默认值,你需要设置 hive.zookeeper.client.port 与ZooKeeper使用的值相同。检查/etc/zookeeper/conf/zoo.cfg 以找到ClientPort值。如果ClientPort 设置为除2181(默认值)以外的任何值,设置hive.zookeeper.client.port 。例如,如果ClientPort 设置为2222,设置 hive.zookeeper.client.port 也是2222:

HiveServer2和HiveServer1的连接URL格式和驱动程序类别不同:

HiveServer2可以 配置 为验证所有连接默认情况下,它允许任何客户端连接。HiveServer2支持 Kerberos 或 LDAP 身份验证配置属性为hive.server2.authentication 。您还可以配置 可插入身份验证 ,它允许您为HiveServer2使用自定义身份验证提供程序和 HiveServer2 Impersonation ,它允许用户以连接用户的身份执行查询和访问HDFS文件,而不是启动HiveServer2守护进程的超级用户。有关更多信息,请参阅 Hive安全配置 。

警告:由于并发和安全问题,HiveServer1和Hive CLI在CDH 5中不推荐使用,并且将在未来版本中删除。Cloudera建议您尽快迁移到 Beeline 和 HiveServer2 。如果您使用HiveServer2的Beeline,则不需要Hive CLI。

HiveServer2和HiveServer1可以在同一个系统上并发运行,共享相同的数据集。这允许您运行HiveServer1以支持使用本机HiveServer1 Thrift绑定的Perl或Python脚本。

默认情况下,HiveServer2和HiveServer1都绑定到端口10000,所以至少其中一个必须配置为使用不同的端口。您可以通过hive -site.xml中的hive.server2.thrift.port 设置HiveServer2的端口属性。例如:

您也可以通过设置这些环境变量来指定端口(以及HiveServer2的主机IP地址):

翻译: https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_filesystem_perm.html

版本: 5.14.2

Hive数据存储在HDFS中,通常位于/user/hive/warehouse下 。如果/user/hive and /user/hive/warehouse 目录尚不存在,则需要创建目录。确保这个位置(或者你指定的任何路径 hive.metastore.warehouse.dir )存在并且可以由您希望创建表的用户写入。

重要:

Cloudera建议将Hive仓库目录的权限设置为 1777 ,让所有用户都可以访问 。这允许用户创建和访问他们的表,但是阻止不了他们删除其他用户的表。

另外,每个提交查询的用户都必须有一个HDFS主目录。 / tmp目录 (在本地文件系统上)必须是可写的,因为Hive广泛使用它。

HiveServer2 Impersonation 允许用户以连接用户的身份执行查询并访问HDFS文件。

如果您未启用impersonation,HiveServer2默认执行所有Hive任务作为启动Hive服务器的用户对于使用Kerberos身份验证的群集,这是映射到与HiveServer2一起使用的 Kerberos主体 的ID 。设置权限 1777 如上所述,允许此用户访问Hive仓库目录。

您可以 在服务器和客户端上 设置更改此默认行为hive.metastore.execute.setugi 为true。此设置会使Metastore服务器使用客户端的用户和组权限。

Hive ->配置 ->搜索 sentry ->勾选Sentry ->保存更改 ->重启服务

HDFS ->配置 ->搜索 acl ->启用访问控制列表和Sentry同步 ->保存更改 ->重启服务

Hue中集成了一个安全模块用来界面化 *** 作Sentry。设置Hue以管理Sentry权限时,请确保正确设置了用户和组。连接到Sentry的每个Hue用户必须与服务器 *** 作系统中的用户相同,以便Sentry可以对Hue用户进行身份验证。Hue中的用户group也同样要与本地 *** 作系统中的用户group相同。

Hue ->配置 ->搜索 sentry ->勾选Sentry ->保存更改

Sentry ->配置 ->搜索 admin ->勾选Sentry ->保存更改 ->重启服务

为Hive启用Sentry后会导致HiveServer2的部分属性无法在客户端运行时进行修改。具体受限制的属性参数如下,当然你依旧可以在HiveServer2服务端进行参数修改。

保护Hive Metastore是非常重要的。如果你的集群没有启用Kerberos,请将sentry.hive.testing.mode属性设置为true,以允许Sentry使用较弱的身份验证机制。

注意:

Cloudera强烈建议不要在生产环境中配置该参数。该参数仅适用于Sentry的测试模式,可以用于你的测试环境

Hive->配置 ->搜索 sentry-site.xml->添加下面配置 ->保存更改 ->重启服务

当HiveServer2和Beeline客户端不在同一台主机时,不能使用ADD JAR命令。作为替代的,在加载jar包时只能通过在Hive服务中配置hive.reloadable.aux.jars.path路径。启用S​​entry时,创建永久函数和临时函数的过程存在一些差异。

参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/sg_sentry_service_config.html


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11933140.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存