使用Hadoop API訪問Kerberos 安全HDFS
使用kerberos下安全Hadoop時,通常是在linux系統下使用kinit命令進行身份認證,下面提供一種在java api中認證的方式:
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by sure on 15-5-12. */ public class HdfsKerberos { static Configuration conf = new Configuration(); public static void main(String[] args) throws IOException { //keytab檔案的路徑 conf.set(KEYTAB_FILE_KEY, "/opt/sure.keytab"); //principal conf.set(USER_NAME_KEY, "sure"); login(conf); System.out.println(loadHdfsFile("/trident/trident-1-0-1431409180775.txt")); } public static List<String> loadHdfsFile(String filePath){ List<String> resultList = new ArrayList<>(); FileSystem fileSystem = null; try { fileSystem = FileSystem.get(conf); FSDataInputStream fs = fileSystem.open(new Path(filePath)); BufferedReader bis = new BufferedReader(new InputStreamReader(fs,"UTF-8")); String line; while ((line = bis.readLine()) != null) { resultList.add(line); } fileSystem.close(); } catch (IOException e) { e.printStackTrace(); } return resultList; } public static final String KEYTAB_FILE_KEY = "hdfs.keytab.file"; public static final String USER_NAME_KEY = "hdfs.kerberos.principal"; public static void login(Configuration hdfsConfig) throws IOException { if (UserGroupInformation.isSecurityEnabled()) { String keytab = conf.get(KEYTAB_FILE_KEY); if (keytab != null) { hdfsConfig.set(KEYTAB_FILE_KEY, keytab); } String userName = conf.get(USER_NAME_KEY); if (userName != null) { hdfsConfig.set(USER_NAME_KEY, userName); } SecurityUtil.login(hdfsConfig, KEYTAB_FILE_KEY, USER_NAME_KEY); } } }
相關推薦
使用Hadoop API訪問Kerberos 安全HDFS
使用kerberos下安全Hadoop時,通常是在linux系統下使用kinit命令進行身份認證,下面提供一種在java api中認證的方式: import org.apache.hadoop.conf.Configuration; import org.apache.ha
Hadoop api訪問 01讀取檔案練習
//編譯工具 eclipse import java.net.MalformedURLException; import java.net.URL; public class FangWenDemo { static{
使用API訪問開啟kerberos叢集下的HDFS
使用API訪問開啟安全Kerberos的Hdfs hadoop叢集(cdh叢集)在開啟kerberos安全認證方式後,通常如果在叢集shell客戶端通過hadoop dfs命令訪問的,經過kinit
Structure Streaming和spark streaming原生API訪問HDFS檔案資料對比
此文已由作者嶽猛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 Structure Stream訪問方式 code examples import org.apache.spark.sql.streaming._ val df = spark.
Java API 訪問HA模式下的HDFS叢集
在使用Hadoop Java API訪問HDFS叢集時,在建立FileSystem物件時,直接指定NameNode的IP以及埠號即可。但是在HA模式下,訪問HDFS叢集卻有一些不同,需要指定NameSpace和主備NameNode的IP以及埠等資訊,具體操作方式見如下程式碼: Configura
管理API訪問令牌的最佳安全實踐
【51CTO.com快譯】如今,無論是基於Web的應用、還是本地原生的各種程式,都需要通過後端的API來實現資源的訪問保護。要想得到API的授權,各種訪問請求就必須包含相應的訪問令牌或金鑰。本文將向API提供者和應用程式開發人員重點介紹,我們在管理訪問令牌中的各種最佳安全實踐。 管理AP
java能否實現訪問kerberos和simple安全級別的兩個叢集
走過路過的java/hadoop大神,幫忙給看看。現在我的java程式,需要同時實現對多個叢集的讀寫,這些叢集分別由kerberos和simple這樣不同的安全級別,我是在方法中用分支實現的,但是訪問時,總是會出現互相影響的情況,基本有兩種異常。 如果simple叢集訪問成
Hadoop生態圈-開啟Ambari的Kerberos安全選項
Hadoop生態圈-開啟Ambari的Kerberos安全選項 作者:尹正傑 版權宣告:原創作品,謝絕轉載!否則將追究法律責任。 在完成IPA-Server服
hadoop分散式檔案系統(HDFS)常用API學習
1、org.apache.hadoop.fs.FileSystem 範圍 方法 返回值 描述 addDelegationTokens(String renewer, Cre
通過API訪問HDFS
一、通過 java.net.URL 1.在ubuntu下開啟eclipse 2.建立專案 3.匯入hadoop所有jar包 Build Path --->Configure Build Path ---> Add External JARs ---&g
【筆記】JAVA API 訪問 HDFS
1.獲取HDFS檔案系統 public static FileSystem getFileSystem(){ //讀取配置檔案 Configuration conf = new Configur
Hadoop 系列(七)—— HDFS Java API
一、 簡介 想要使用 HDFS API,需要匯入依賴 hadoop-client。如果是 CDH 版本的 Hadoop,還需要額外指明其倉庫地址: <?xml version="1.0" encoding="UTF-8"?> <project xmln
Hadoop化繁為簡—hdfs的核心剖析
數據 blog args mis javaapi 區別 原理 site 公鑰 層層遞進-解開hdfs的面紗 1、hdfs是什麽?它與普通服務器的文件系統有什麽區別?它的特性有什麽? 2、hdfs的工作原理是怎樣的? 3、每臺機器都單獨啟動有什麽弊端?假設有
<順序訪問><隨機訪問><HDFS>
arc 發生 hat ide oop lar 訪問慢 jump 新的 Overview 如果你了解過HDFS,至少看過這句話吧: HDFS is a filesystem designed for storing very large files with stream
hadoop 使用ip配置導致hdfs啟動失敗
hadoop $2 value servers 無法 col reg dfs property dataNode 有守護進行,但hdfs web頁面上顯示沒有live node。 錯誤日誌: 2017-06-21 17:44:59,513 ERROR org.apa
Hadoop源碼學習之HDFS(一)
-a node bsp ima 數據 layout 版本號 name 技術 Hadoop的HDFS可以分為NameNode與DataNode,NameNode存儲所有DataNode中數據的元數據信息。而DataNode負責存儲真正的數據(數據塊)信息以及數據塊的ID。
Linux運維之道之ENGINEER1.2(HTTP服務基礎,網頁內容訪問,安全web)
達內 linux運維engineer ENGINEER1.2HTTP服務基礎基於B/S架構的網頁服務----服務端提供頁面;----瀏覽器下載並顯示頁面;--------------------------------------------------------------------------
利用JAVA API遠程進行HDFS的相關操作
測試 call 文件重命名 spa getname created ces 一段時間 action 學習HDFS有一段時間了,現在把自己總結的HDFS的相關操作代碼展示給大家。 主要有HDFS的增刪改查,文件的追加,windows本地文件的上傳,hdfs文件的下載,文件重命
asp.net web api 接口安全與角色控制
unix時間戳 客戶 unix時間 space nal gui 接口安全 不同的 ict 1 API接口驗證與授權 JWT JWT定義,它包含三部分:header,payload,signature;每一部分都是使用Base64編碼的JSON字符串。之間以句號分隔。sign
使用過濾器對mvc api接口安全加密
display 控制 aspnet 示例 .com res 過度設計 sys req asp.net api接口安全 安全要求: b1.防偽裝攻擊(案例:在公共網絡環境中,第三方 有意或惡意 的調用我們的接口) b2.防篡改攻擊(案例:在公共網絡環境中,請求頭/查詢字