Java/Scala 访问启用kerberos验证的Hadoop集群

8 篇文章 0 订阅
3 篇文章 0 订阅

通过keytab的方式访问HDFS

Configuration config = new Configuration();
        FileSystem hdfs = null;
        try {
            if (isKerberosEnable){
                System.setProperty("java.security.krb5.conf", "./config/kerberos/krb5.conf");
                config.set("hadoop.security.authentication","kerberos");
                config.addResource("./config/cluster/hadoop/core-site.xml");
                config.addResource("./config/cluster/hadoop/hdfs-site.xml");
                UserGroupInformation.setConfiguration(config);
                UserGroupInformation.loginUserFromKeytab(kerberosLoginUser, "./config/kerberos/hdfs.keytab");
                UserGroupInformation userGroupInformation = UserGroupInformation.getLoginUser();
            }
            hdfs = FileSystem.get(URI.create(hdfsUri), config);
            FSDataOutputStream outputStream = hdfs.create(new Path(hdfsFile), true);
            IOUtils.copyBytes(inputStream, outputStream, 4096, true);

通过keytab方式访问HBASE

	def setKerberosConf(conf: Configuration, sparkConf: SparkConf): Unit = {
		conf.set("hbase.zookeeper.quorum", s"${zkaddress}")
		conf.setInt("hbase.zookeeper.property.clientPort", 2181)
		conf.set("zookeeper.znode.parent", "/hbase")
		System.setProperty("java.security.krb5.conf", "conf/kerberos/krb5.conf")
		conf.set("hadoop.security.authentication", "kerberos")
		conf.set("hbase.security.authentication", "kerberos")
		conf.set("keytab.file", Contants.HBASE_KERBEROS_KEYTAB_FILE)
		conf.set("kerberos.principal",
			sparkConf.get("hbase.kerberos.principal", Contants.HBASE_KERBEROS_PRINCIPAL))
		conf.set("hbase.master.kerberos.principal",
			sparkConf.get("hbase.master.kerberos.principal", Contants.HBASE_MASTER_KERBEROS_PRINCIPAL))
		conf.set("hbase.regionserver.kerberos.principal",
			sparkConf.get("hbase.regionserver.kerberos.principal", Contants.HBASE_REGIONSERVER_KERBEROS_PRINCIPAL))
		UserGroupInformation.setConfiguration(conf)
		UserGroupInformation.loginUserFromKeytab(
			sparkConf.get("hbase.kerberos.user", Contants.HBASE_KERBEROS_USER),
			Contants.HBASE_KERBEROS_KEYTAB_FILE)
	}



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值