运行 Spark 在不安全的 YARN 集群中访问安全的 Hive
Access a secured Hive when running Spark in an unsecured YARN cluster
我们有两个 cloudera 5.7.1 集群,一个使用 Kerberos 保护,一个不保护。
是否可以 运行 在访问安全集群中存储的 Hive 表时使用不安全的 YARN 集群进行 Spark? (Spark 版本为 1.6)
如果是这样,您能否解释一下如何配置它?
更新:
我想稍微解释一下我的问题背后的最终目标。我们的主要安全集群被大量使用,我们的工作无法在合理的时间内获得足够的资源来完成。为了克服这个问题,我们想使用来自另一个不安全集群的资源,我们有 而 不需要在集群之间复制数据。
我们知道这不是最佳解决方案,因为数据局部性级别可能不是最佳的,但这是我们目前可以提出的最佳解决方案。
如果您有任何其他解决方案,请告诉我,因为我们似乎无法实现上述目标。
如果您 运行 在 本地模式 下使用 Spark,您可以让它使用任意一组 Hadoop 配置文件——即 core-site.xml
、hdfs-site.xml
、mapred-site.xml
、yarn-site.xml
、hive-site.xml
从 Kerberized 集群复制。
因此您可以访问 that 集群上的 HDFS -- 如果您有 Kerberos 票据,当然可以访问该集群。
export HADOOP_CONF_DIR=/path/to/conf/of/remote/kerberized/cluster
kinit sylvestre@WORLD.COMPANY
spark-shell --master local[*]
但在 yarn-client 或 yarn-cluster 模式下,您无法在本地集群中启动容器并访问另一个集群中的 HDFS。
- 要么你用本地
core-site.xml
说hadoop.security.authentication
是simple
,你可以连接到本地YARN/HDFS
- 或者您指向远程
core-site.xml
的副本,上面写着 hadoop.security.authentication
是 kerberos
,您可以连接到远程 YARN/HDFS
- 但您不能使用本地的、不安全的 YARN 访问远程的、安全的 HDFS
请注意,使用不安全-不安全或安全-安全组合,您可以可以访问另一个集群中的 HDFS,方法是修改您自己的自定义 hdfs-site.xml
以定义多个命名空间。但是您只能使用单一身份验证模型。
[编辑] 请参阅 Mighty Steve Loughran 关于额外 Spark 属性 的评论从本地安全集群访问远程安全 HDFS。
另请注意,对于 DistCp,您会遇到同样的问题——除了有一个 "cheat" 属性 允许您从安全状态切换到不安全状态。
我们有两个 cloudera 5.7.1 集群,一个使用 Kerberos 保护,一个不保护。
是否可以 运行 在访问安全集群中存储的 Hive 表时使用不安全的 YARN 集群进行 Spark? (Spark 版本为 1.6)
如果是这样,您能否解释一下如何配置它?
更新:
我想稍微解释一下我的问题背后的最终目标。我们的主要安全集群被大量使用,我们的工作无法在合理的时间内获得足够的资源来完成。为了克服这个问题,我们想使用来自另一个不安全集群的资源,我们有 而 不需要在集群之间复制数据。
我们知道这不是最佳解决方案,因为数据局部性级别可能不是最佳的,但这是我们目前可以提出的最佳解决方案。
如果您有任何其他解决方案,请告诉我,因为我们似乎无法实现上述目标。
如果您 运行 在 本地模式 下使用 Spark,您可以让它使用任意一组 Hadoop 配置文件——即 core-site.xml
、hdfs-site.xml
、mapred-site.xml
、yarn-site.xml
、hive-site.xml
从 Kerberized 集群复制。
因此您可以访问 that 集群上的 HDFS -- 如果您有 Kerberos 票据,当然可以访问该集群。
export HADOOP_CONF_DIR=/path/to/conf/of/remote/kerberized/cluster
kinit sylvestre@WORLD.COMPANY
spark-shell --master local[*]
但在 yarn-client 或 yarn-cluster 模式下,您无法在本地集群中启动容器并访问另一个集群中的 HDFS。
- 要么你用本地
core-site.xml
说hadoop.security.authentication
是simple
,你可以连接到本地YARN/HDFS - 或者您指向远程
core-site.xml
的副本,上面写着hadoop.security.authentication
是kerberos
,您可以连接到远程 YARN/HDFS - 但您不能使用本地的、不安全的 YARN 访问远程的、安全的 HDFS
请注意,使用不安全-不安全或安全-安全组合,您可以可以访问另一个集群中的 HDFS,方法是修改您自己的自定义 hdfs-site.xml
以定义多个命名空间。但是您只能使用单一身份验证模型。
[编辑] 请参阅 Mighty Steve Loughran 关于额外 Spark 属性 的评论从本地安全集群访问远程安全 HDFS。
另请注意,对于 DistCp,您会遇到同样的问题——除了有一个 "cheat" 属性 允许您从安全状态切换到不安全状态。