1.首先保证hdfs启动,执行如下命令
hadoop credential create my_db_password_alias -provider localjceks://file/tmp/my_db.password.jceks
执行此命令后提示输入两次密码,密码表示的就是数据库的连接密码
注意保存的文件后缀必须是.jceks。
my_db_password_alias 表示的是生成的密钥的别名
tmp/my_db.password.jceks 表示把生成的密钥保存在本地服务器的目录和文件名
localjceks://file 表示生成在本地,固定格式
2.通过hdfs命令把本地生成的密钥拷贝到hdfs的指定目录
hdfs dfs -put /tmp/my_db.password.jceks /user/pwd/sqoop 相当于剪切
hdfs dfs -copyFromLocal /tmp/my_db.password.jceks /user/pwd/sqoop 拷贝
两个命令都可以
3.执行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 后面的参数必须是上面定义的别名
example: