在Sqoop中管理密码的关键提示
Sqoop是用于Hadoop的流行數(shù)據(jù)傳輸工具。 Sqoop允許從結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)(如關(guān)系數(shù)據(jù)庫(kù),企業(yè)數(shù)據(jù)倉(cāng)庫(kù)和NoSQL數(shù)據(jù)存儲(chǔ))輕松導(dǎo)入和導(dǎo)出數(shù)據(jù)。 Sqoop還與Hive,HBase和Oozie等基于Hadoop的系統(tǒng)集成。
在此博客文章中,我將介紹可用于在Sqoop中管理密碼的各種選項(xiàng)。 Sqoop是一個(gè)非常穩(wěn)定且易于使用的工具,用于將數(shù)據(jù)傳入和傳出Hadoop。 但是,如果要自動(dòng)執(zhí)行導(dǎo)入/導(dǎo)出過(guò)程,則密碼必須在計(jì)劃文本中,這可能會(huì)被濫用。 以下是應(yīng)對(duì)這一挑戰(zhàn)的一些解決方案。
1.在文件系統(tǒng)中使用受保護(hù)的文件
為產(chǎn)品和開發(fā)創(chuàng)建單獨(dú)的文件(將單獨(dú)的帳戶用于產(chǎn)品和開發(fā)總是一個(gè)好習(xí)慣)。
根據(jù)用戶設(shè)置文件權(quán)限
ProdFile,只有Prod用戶可以訪問(wèn)
-rw------- 1 vgunnuProd staff 1.1M Oct 6 2014 password.txt開發(fā)文件,授予組讀取權(quán)限–在團(tuán)隊(duì)成員之間共享文件
-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.從數(shù)據(jù)庫(kù)中讀取密碼
維護(hù)Dev和PROD數(shù)據(jù)庫(kù)表,并利用MySQL授權(quán)權(quán)限鎖定PROD密碼表,以便允許從Prod邊緣節(jié)點(diǎn)訪問(wèn)某些用戶。
# 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.使用數(shù)據(jù)庫(kù)和Expect腳本
在上面的選項(xiàng)中,我們可以使用linux spawn and Expect腳本來(lái)代替將密碼保存到文件中。
#!/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中,引入了一項(xiàng)基本功能–憑據(jù)API。 Hadoop中的CredentialProvider API允許分離應(yīng)用程序以及它們?nèi)绾未鎯?chǔ)所需的密碼/秘密。 使用Sqoop 1.4.5時(shí),Sqoop支持credentail API密鑰庫(kù)。
生成加密的credentail密鑰庫(kù):
[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中管理密碼的不同選項(xiàng)。 如果您還有其他問(wèn)題,請(qǐng)?jiān)谙旅娴脑u(píng)論部分中提問(wèn)。
翻譯自: https://www.javacodegeeks.com/2016/03/key-tips-managing-passwords-sqoop.html
總結(jié)
以上是生活随笔為你收集整理的在Sqoop中管理密码的关键提示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 盯着的拼音 大家可以学习一下
- 下一篇: CUBA平台正在开源