Java連接集成Kerberos的HA HDFS

在實(shí)施方案前,假設(shè)讀者已經(jīng)基本熟悉以下技術(shù) (不細(xì)說(shuō))
  • Java毒费,maven
  • hdfs,kerberos
方案實(shí)施
  • 最后目錄大概如下


    目錄結(jié)構(gòu).png
  • 新建maven工程,pom.xml配置, 添加以下

  <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.6.5</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.6.5</version>
    </dependency>
  • 拷貝kdc下的krb5.conf文件
[libdefaults]
default_realm = W.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
  
 W.COM = {
    kdc = node1:88
    admin_server = node1:749
    default_domain = W.COM
    
    kdc = bi-slave1
 }

#這里的kdc做了HA坑傅,需要把從kdc也加進(jìn)realm里面
#默認(rèn)的端口號(hào)也可以去掉
  • 生成keytab文件
kadmin.local:  xst -norandkey -k deng_yb.keytab deng_yb@W.COM 
  • 下載core-site.xml文件


    下載hdfs客戶(hù)端.png

拿到core-site.xml文件


core-site-xml.png
  • HDFSUtils
package deng.yb.hdfsUtils;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.security.UserGroupInformation;

public class HDFSUtils {
    
    /**
     * 加載hdfs客戶(hù)端配置
     * @return
     */
     public static Configuration initConfiguration() {
            Configuration configuration = new Configuration();
            configuration.addResource(new Path(getPath("core-site.xml")));
            return configuration;
    }
     
     
   /**
     * 初始化Kerberos環(huán)境
     */
    public static void initKerberosENV(Configuration conf) {
        System.setProperty("java.security.krb5.conf",
                getPath("krb5.conf"));
        System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
        // System.setProperty("sun.security.krb5.debug", "true");
        try {
            UserGroupInformation.setConfiguration(conf);
            UserGroupInformation.loginUserFromKeytab("deng_yb@W.COM",
                    getPath("deng_yb.keytab"));
            System.out.println(UserGroupInformation.getCurrentUser());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    
     public static String getPath(String file) {
         if (null == file) {
             return null;
         }
         
         return Thread.currentThread().getContextClassLoader().getResource(file).getPath();
     }
}

  • 測(cè)試
package deng.yb.hdfsUtils;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * 鏈接HA,kerberos 集群
 *
 */
public class App 
{
    public static void main( String[] args )
    {
           //初始化HDFS Configuration 配置
        Configuration configuration = HDFSUtils.initConfiguration();
        
         //初始化Kerberos環(huán)境
        HDFSUtils.initKerberosENV(configuration);
        
        try {  
             //其中nameservice1是HA別名
             Path dstPath = new Path("hdfs://nameservice1/");
             FileSystem fileSystem = FileSystem.get(configuration);
             
             FileStatus[] listStatus = fileSystem.listStatus(dstPath);
             for (FileStatus fileStatus : listStatus) {
                Path path = fileStatus.getPath();
                System.out.println(path);
             }
             
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}
  • 執(zhí)行main方法,結(jié)果如下


    結(jié)果.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喷斋,一起剝皮案震驚了整個(gè)濱河市唁毒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌星爪,老刑警劉巖浆西,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異顽腾,居然都是意外死亡近零,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)崔泵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秒赤,“玉大人,你說(shuō)我怎么就攤上這事憎瘸∪肜海” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵幌甘,是天一觀(guān)的道長(zhǎng)潮售。 經(jīng)常有香客問(wèn)我,道長(zhǎng)锅风,這世上最難降的妖魔是什么酥诽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮皱埠,結(jié)果婚禮上肮帐,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好训枢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布托修。 她就那樣靜靜地躺著,像睡著了一般恒界。 火紅的嫁衣襯著肌膚如雪睦刃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天十酣,我揣著相機(jī)與錄音涩拙,去河邊找鬼。 笑死耸采,一個(gè)胖子當(dāng)著我的面吹牛兴泥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洋幻,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼郁轻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了文留?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤竭沫,失蹤者是張志新(化名)和其女友劉穎燥翅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜕提,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡森书,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谎势。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凛膏。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖脏榆,靈堂內(nèi)的尸體忽然破棺而出猖毫,到底是詐尸還是另有隱情,我是刑警寧澤须喂,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布吁断,位于F島的核電站,受9級(jí)特大地震影響坞生,放射性物質(zhì)發(fā)生泄漏仔役。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一是己、第九天 我趴在偏房一處隱蔽的房頂上張望又兵。 院中可真熱鬧,春花似錦卒废、人聲如沸沛厨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俄烁。三九已至绸栅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間页屠,已是汗流浹背粹胯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辰企,地道東北人风纠。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像牢贸,于是被迫代替她去往敵國(guó)和親竹观。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • kerberos 介紹 閱讀本文之前建議先預(yù)讀下面這篇博客kerberos認(rèn)證原理---講的非常細(xì)致潜索,易懂 Ker...
    PunyGod閱讀 20,035評(píng)論 7 29
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理臭增,服務(wù)發(fā)現(xiàn),斷路器竹习,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 很多企業(yè)CDH是沒(méi)有集成kerberos誊抛,原因是kerberos部署后,服務(wù)使用起來(lái)變復(fù)雜整陌,大部分只配置了sent...
    阿甘騎士閱讀 6,283評(píng)論 1 4
  • 有這樣的一個(gè)業(yè)務(wù)場(chǎng)景-客戶(hù)端通過(guò)接口訪(fǎng)問(wèn)impala Daemon拗窃,impala做查詢(xún)并返回?cái)?shù)據(jù)給到客戶(hù)端; 下面...
    阿甘騎士閱讀 10,912評(píng)論 3 2
  • 轉(zhuǎn)載自 JavaChen Blog泌辫,作者:JavaChen 原文鏈接地址:http://blog.javachen...
    101之歌閱讀 5,812評(píng)論 0 0