From 50f454318c49b030837474e8e0466b1f19452406 Mon Sep 17 00:00:00 2001 From: rinoux Date: Mon, 15 Apr 2019 14:34:30 +0800 Subject: [PATCH] =?UTF-8?q?DEC-7216=20HDFS=E6=8F=92=E4=BB=B6krb=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=AF=BB=E4=B8=8D=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.xml | 4 + core-site.xml | 22 ++++ demo/demo-kerberos.png | Bin 0 -> 133694 bytes demo.png => demo/demo.png | Bin hdfs-site.xml | 24 +++++ plugin.xml | 7 +- readme.md | 10 +- .../core/HDFSRepositoryFactory.java | 101 +++++++++++++----- 8 files changed, 141 insertions(+), 27 deletions(-) create mode 100755 core-site.xml create mode 100644 demo/demo-kerberos.png rename demo.png => demo/demo.png (100%) create mode 100755 hdfs-site.xml diff --git a/build.xml b/build.xml index 57976b5..36d0be8 100644 --- a/build.xml +++ b/build.xml @@ -108,11 +108,15 @@ + + + + diff --git a/core-site.xml b/core-site.xml new file mode 100755 index 0000000..6afc04c --- /dev/null +++ b/core-site.xml @@ -0,0 +1,22 @@ + + + + + + + hadoop.rpc.protection + authentication + + diff --git a/demo/demo-kerberos.png b/demo/demo-kerberos.png new file mode 100644 index 0000000000000000000000000000000000000000..5672b92329d50be4c99bb4a46644e95ecf0ba64e GIT binary patch literal 133694 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%0D|)j| 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 literal 0 HcmV?d00001 diff --git a/demo.png b/demo/demo.png similarity index 100% rename from demo.png rename to demo/demo.png diff --git a/hdfs-site.xml b/hdfs-site.xml new file mode 100755 index 0000000..3dd8d98 --- /dev/null +++ b/hdfs-site.xml @@ -0,0 +1,24 @@ + + + + + + + + + dfs.namenode.kerberos.principal.pattern + * + + diff --git a/plugin.xml b/plugin.xml index 8bd4241..8d02872 100644 --- a/plugin.xml +++ b/plugin.xml @@ -4,12 +4,15 @@ yes no - 1.2 + 1.3 10.0 2018-12-27 rinoux - + [2019-04-15]无法加载到krb5.conf文件的问题

+

[2019-04-15]支持额外的hdfs或者hadoop配置文件

+ ]]> com.fr.plugin diff --git a/readme.md b/readme.md index 1a6523b..7755983 100644 --- a/readme.md +++ b/readme.md @@ -4,5 +4,13 @@ - 选择HDFS协议,添加主机、端口等配置,如果设置了kerberos认证,还需要设置principal和keyTab文件路径。以及文件服务器在hdfs上的工作路径; - 测试连接并保存; +> 路径是dfs的路径而非本地文件系统的路径 + +> 如果有自定义的hdfs或者hadoop配置,添加到插件安装目录下对应的hdfs-site.xml或者core-site.xml文件中 + >> 示例 -![demo](demo.png) +- 不带kerberso认证如图所示 +![demo](demo/demo.png) +- 带kerberso认证如图所示 +![demo-kerberos](demo/demo-kerberos.png) + diff --git a/src/main/java/com/fr/plugin/hdfs/repository/core/HDFSRepositoryFactory.java b/src/main/java/com/fr/plugin/hdfs/repository/core/HDFSRepositoryFactory.java index 9acfe21..0ad320f 100644 --- a/src/main/java/com/fr/plugin/hdfs/repository/core/HDFSRepositoryFactory.java +++ b/src/main/java/com/fr/plugin/hdfs/repository/core/HDFSRepositoryFactory.java @@ -4,8 +4,13 @@ import com.fr.io.base.provider.impl.ConfigRepositoryFactory; import com.fr.io.context.info.RepositoryProfile; import com.fr.io.repository.ResourceRepository; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.context.PluginContexts; +import com.fr.plugin.context.PluginMarker; import com.fr.plugin.hdfs.repository.HDFSFactoryProvider; +import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; +import com.fr.stable.project.ProjectConstants; +import com.fr.workspace.WorkContext; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -15,13 +20,14 @@ import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; import java.io.IOException; +import java.lang.reflect.Method; import java.net.URI; /** * Created by rinoux on 2018/8/10. */ public class HDFSRepositoryFactory extends ConfigRepositoryFactory { - public static final String IDENTITY = "HDFS"; + static final String IDENTITY = "HDFS"; private static final String HDFS_SCHEMA = "hdfs://"; private static final String DEFAULT_HOST = "localhost"; @@ -81,15 +87,24 @@ public class HDFSRepositoryFactory extends ConfigRepositoryFactory { String principal = config.getPrincipal(); String krb5Conf = config.getKrbConf(); + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] Host:{}", host); + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] Port:{}", port); + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] Principal:{}", principal); + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] KeyTab:{}", config.getKeyTab()); + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] krb5.conf:{}", krb5Conf); - //开启了kerberos验证 - boolean kerberos = kerberosAuthenticated(config); - if (kerberos) { + + //是否需要kerberos验证 + boolean needKrbAuth = needKrbAuth(config); + + if (needKrbAuth) { try { System.setProperty("java.security.krb5.conf", krb5Conf); conf.set("hadoop.security.authentication", "kerberos"); - processConfForPrincipal(conf, principal); + //需要重新刷新一下让krb5.conf配置生效 + refreshConfig(); + //类似OSGI下,类加载需要设置SecurityUtil.setSecurityInfoProviders(new AnnotatedSecurityInfo()); //refer to https://stackoverflow.com/questions/37608049/how-to-connect-with-hdfs-via-kerberos-from-osgi-bundles SecurityUtil.setSecurityInfoProviders(new AnnotatedSecurityInfo()); @@ -102,12 +117,12 @@ public class HDFSRepositoryFactory extends ConfigRepositoryFactory { kerberosAuthModeSet = true; } } else if (kerberosAuthModeSet) { + //如果不需要Kerberos认证,要设置认证方式和校验方式为默认 conf.set("hadoop.security.authorization", "false"); conf.set("hadoop.security.authentication", "simple"); } try { - - if (StringUtils.isNotEmpty(principal) && !kerberos) { + if (StringUtils.isNotEmpty(principal) && !needKrbAuth) { return FileSystem.newInstance(URI.create(hdfsUrl), conf, principal); } else { return FileSystem.newInstance(URI.create(hdfsUrl), conf); @@ -136,34 +151,72 @@ public class HDFSRepositoryFactory extends ConfigRepositoryFactory { conf.setClass("fs.hdfs.impl", DistributedFileSystem.class, FileSystem.class); conf.set("ipc.client.fallback-to-simple-auth-allowed", "true"); + + return readXmlProperties(conf); + } + + + /** + * 如果明确用代码设置了值不会从hdfs-site.xml,core-site.xml读取属性 + *

+ * 这里主要是为了读取用户一些特殊的配置 + * 比如rpc保护模式、principal格式限制之类的 + * + * @param conf 配置 + * @return 加载了hdfs-site.xml,core-site.xml文件的配置 + */ + private Configuration readXmlProperties(Configuration conf) { + + //插件目录 + PluginMarker marker = PluginContexts.currentContext().getMarker(); + if (marker != null) { + String location = StableUtils.pathJoin(ProjectConstants.PLUGINS_NAME, marker.getHomeName()); + String coreSiteXml = StableUtils.pathJoin(location, "core-site.xml"); + String hdfsSiteXml = StableUtils.pathJoin(location, "hdfs-site.xml"); + if (WorkContext.getWorkResource().exist(coreSiteXml)) { + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] core-site.xml is add to configuration"); + conf.addResource(WorkContext.getWorkResource().openStream(coreSiteXml)); + } + + if (WorkContext.getWorkResource().exist(hdfsSiteXml)) { + FineLoggerFactory.getLogger().debug("[HDFS REPOSITORY] hdfs-site.xml is add to configuration"); + conf.addResource(WorkContext.getWorkResource().openStream(hdfsSiteXml)); + } + } return conf; } - private boolean kerberosAuthenticated(HDFSConfig config) { + /** + * 根据是否配置了kerberos的字段决定是否走kerberos认证逻辑 + * + * @param config + * @return + */ + private boolean needKrbAuth(HDFSConfig config) { return StringUtils.isNotEmpty(config.getKeyTab()) && StringUtils.isNotEmpty(config.getPrincipal()) && StringUtils.isNotEmpty(config.getKrbConf()); } + /** - * BI-third内置了hadoop2.6的包,插件优先从lib下加载类, - * 此时kerberos认证会报错"Failed to specify server's Kerberos principal name" - * 需要设置一下principal的格式 - * @param conf - * @param principal + * 刷新hadoop配置对象,加载设置的jvm参数里配置的krb文件 + * + * @throws Exception */ - private void processConfForPrincipal(Configuration conf, String principal) { - //2.6.2以前的版本hdfs-site.xml没有默认的pricipal格式设置,需要手动加上 - //根据Kerberos V5 principal的格式primary/instance@REALM,确定实际的格式 - String principalPattern; - int primaryIdx = principal.indexOf("hdfs/"); - int atIdx = principal.indexOf("@"); - if (primaryIdx > -1 && atIdx > primaryIdx) { - String name = principal.substring(primaryIdx + "hdfs/".length(), atIdx - 1); - principalPattern = principal.replace(name, "*"); - conf.set("dfs.namenode.kerberos.principal.pattern", principalPattern); + private void refreshConfig() throws Exception { + Class configClassRef; + if (System.getProperty("java.vendor").contains("IBM")) { + configClassRef = Class.forName("com.ibm.security.krb5.internal.Config"); + } else { + configClassRef = Class.forName("sun.security.krb5.Config"); } + + Method getInstanceMethod = configClassRef.getMethod("getInstance"); + Object kerbConf = getInstanceMethod.invoke(configClassRef); + Method refreshMethod = configClassRef.getDeclaredMethod("refresh"); + refreshMethod.invoke(kerbConf); } -} +} \ No newline at end of file