1.首先保證hdfs啟動,執(zhí)行如下命令
hadoop credential create my_db_password_alias -provider localjceks://file/tmp/my_db.password.jceks
執(zhí)行此命令后提示輸入兩次密碼,密碼表示的就是數(shù)據(jù)庫的連接密碼?
注意保存的文件后綴必須是.jceks。
my_db_password_alias 表示的是生成的密鑰的別名?
tmp/my_db.password.jceks 表示把生成的密鑰保存在本地服務(wù)器的目錄和文件名
localjceks://file 表示生成在本地,固定格式?
2.通過hdfs命令把本地生成的密鑰拷貝到hdfs的指定目錄
hdfs dfs -put /tmp/my_db.password.jceks /user/pwd/sqoop 相當(dāng)于剪切
hdfs dfs -copyFromLocal /tmp/my_db.password.jceks /user/pwd/sqoop? 拷貝
兩個命令都可以??
3.執(zhí)行sqoop 的import命令
bin/sqoop import -Dhadoop.security.credential.provider.path=jceks://hdfs/sqoop/pwd --connect jdbc:mysql://linux41:3306/my_master --username root --password-alias my_db_password_alias --table t_user --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table t_user_demo_sqoop_secret --hive-overwrite --delete-target-dir
--password-alias 后面的參數(shù)必須是上面定義的別名?
example:
