在Sqoop中管理密码的关键提示
Sqoop是用于Hadoop的流行數據傳輸工具。 Sqoop允許從結構化數據存儲(如關系數據庫,企業數據倉庫和NoSQL數據存儲)輕松導入和導出數據。 Sqoop還與Hive,HBase和Oozie等基于Hadoop的系統集成。
在此博客文章中,我將介紹可用于在Sqoop中管理密碼的各種選項。 Sqoop是一個非常穩定且易于使用的工具,用于將數據傳入和傳出Hadoop。 但是,如果要自動執行導入/導出過程,則密碼必須在計劃文本中,這可能會被濫用。 以下是應對這一挑戰的一些解決方案。
1.在文件系統中使用受保護的文件
為產品和開發創建單獨的文件(將單獨的帳戶用于產品和開發總是一個好習慣)。
根據用戶設置文件權限
ProdFile,只有Prod用戶可以訪問
-rw------- 1 vgunnuProd staff 1.1M Oct 6 2014 password.txt開發文件,授予組讀取權限–在團隊成員之間共享文件
-rw-r----- 1 vgunnuDev staff 1.1M Oct 6 2014 password.txtsqoop import --connect jdbc:mysql://mapr.com/sqoop \--username sqoop \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu2.從數據庫中讀取密碼
維護Dev和PROD數據庫表,并利用MySQL授權權限鎖定PROD密碼表,以便允許從Prod邊緣節點訪問某些用戶。
# Read password from database # Select Password from mapr.Prod where applicationdb='mapr.vgunnu' echo -n $Password > /mapr/democluster/opt/passwords/prodpass.txt sqoop import --connect jdbc:mysql://mapr.com/sqoop \--username vgunnu \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu rm /mapr/democluster/opt/passwords/prodpass.txt3.使用數據庫和Expect腳本
在上面的選項中,我們可以使用linux spawn and Expect腳本來代替將密碼保存到文件中。
#!/bin/bash # Read password from database # Select Password from mapr.Prod where applicationdb='mapr.vgunnu' # Read password to variable pwd /usr/bin/expect ?EOFspawn sqoop import --connect jdbc:mysql://mapr.com/sqoop --username vgunnu -P --table vgunnuexpect "Enter password:"send "$pwd\r\n"set timeout -1 # Wait for Sqoop to finishexpect "~~~~~~~~~~~~"wait EOF4.使用Hadoop CredentialProvider API
在Hadoop 2.6中,引入了一項基本功能–憑據API。 Hadoop中的CredentialProvider API允許分離應用程序以及它們如何存儲所需的密碼/秘密。 使用Sqoop 1.4.5時,Sqoop支持credentail API密鑰庫。
生成加密的credentail密鑰庫:
[mapr@maprdemo ~]$ hadoop credential create msql.vgunnudb -provider jceks://maprfs/user/mapr/mysql.password.m.jceks Enter password: Enter password again: msql.vgunnudb has been successfully created. org.apache.hadoop.security.alias.JavaKeyStoreProvider has been updated.[mapr@maprdemo ~]$ hadoop credential list -provider jceks://maprfs/user/mapr/mysql.password.m.jceks Listing aliases for CredentialProvider: jceks://maprfs/user/mapr/mysql.password.m.jceks msql.vgunnudbsqoop import -Dhadoop.security.credential.provider.path=jceks://maprfs/user/mapr/mysql.password.m.jceks \--connect jdbc:mysql://mapr.com/sqoop \--username vgunnu \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu \-–password-alias msql.vgunnudb在此博客文章中,您了解了可用于在Sqoop中管理密碼的不同選項。 如果您還有其他問題,請在下面的評論部分中提問。
翻譯自: https://www.javacodegeeks.com/2016/03/key-tips-managing-passwords-sqoop.html
總結
以上是生活随笔為你收集整理的在Sqoop中管理密码的关键提示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盯着的拼音 大家可以学习一下
- 下一篇: 微软 Visual Studio Cod