Sqoop Import --password-file 函数在 sqoop 1.4.4 中无法正常工作
Sqoop Import --password-file function not working properly in sqoop 1.4.4
我使用的是hadoop-1.2.1,sqoop版本是1.4.4。
我正在尝试 运行 以下查询。
sqoop import --connect jdbc:mysql://IP:3306/database_name --table clients --target-dir /data/clients --username root --password-file /sqoop.password -m 1
sqoop.password
是一个文件,保存在路径 /sqoop.password
的 HDFS 上,权限为 400。
它给我一个错误
Access denied for user 'root'@'IP' (using password: YES)
任何人都可以为此提供解决方案吗?提前致谢。
根据 sqoop 文档
You should save the password in a file on the users home directory
with 400 permissions and specify the path to that file using the
--password-file argument
, and is the preferred method of entering credentials. Sqoop will then read the password from the file and pass
it to the MapReduce cluster using secure means with out exposing the
password in the job configuration. The file containing the password
can either be on the Local FS or HDFS.
如果我是 运行 我的 sqoop 工作与 root 用户然后我的密码文件将在 /user/root/
在 HDFS
sqoop import --connect jdbc:mysql://database.example.com/employees \
--username venkatesh --password-file /user/root/database.password
更多详情请查看this
不确定您是否仍然遇到此问题。密码文件可以在任何文件夹中。尝试以下语法,它应该可以工作:
--password-file file:///user/root/database.password
检查您的密码文件中是否有乱码。我遇到了同样的问题,最后发现文件末尾包含一个 \n 字符,sqoop 认为它也是密码字符串的一部分。尝试如下所述创建密码文件,然后使用密码文件:
echo -n "root_password" > password.txt
将您的密码替换为 root_password.
"\n" 正在文件中写入,当您vi 文件并写入密码时。
最好使用以下方法来避免问题
echo -n "Your_sqoop_password" > sqoop.password
验证用户 运行 sqoop
命令是文件 /sqoop.password
(设置了 400 权限)的所有者。这将确保密码文件可读。
确保 sqoop.password
文件末尾没有任何额外的非打印字符(例如换行符)。检查这一点的一种简单方法是查看文件的大小。如果密码是'sqoop',文件的大小应该是5。如果更大,从HDFS删除sqoop.password
文件,在本地重新生成,然后把它放回 HDFS。
应该上报以上信息的命令是:
hadoop fs -ls /sqoop.password
创建密码时,使用 echo -n
选项。 (-n
选项删除所有尾随空格)。
假设你有一个密码 "myPassword" 并且你想将它保存到文件 sqoop.password
,然后按照以下步骤操作:
使用命令
创建密码
echo -n "myPassword" > sqoop.password
将文件上传到 HDFS 因为文件需要存在于 HDFS
hadoop fs -put sqoop.password /user/keepMyFilesHere
编写scoop导入命令
sqoop list-tables --connect jdbc:mysql://localhost/kpdatabase --username root --password-file /user/karanpreet.singh/sqoop.password
这绝对有用!
如果您对 sqoop 密码有任何疑问,请按照以下 link 进行操作。
我使用的是hadoop-1.2.1,sqoop版本是1.4.4。
我正在尝试 运行 以下查询。
sqoop import --connect jdbc:mysql://IP:3306/database_name --table clients --target-dir /data/clients --username root --password-file /sqoop.password -m 1
sqoop.password
是一个文件,保存在路径 /sqoop.password
的 HDFS 上,权限为 400。
它给我一个错误
Access denied for user 'root'@'IP' (using password: YES)
任何人都可以为此提供解决方案吗?提前致谢。
根据 sqoop 文档
You should save the password in a file on the users home directory with 400 permissions and specify the path to that file using the
--password-file argument
, and is the preferred method of entering credentials. Sqoop will then read the password from the file and pass it to the MapReduce cluster using secure means with out exposing the password in the job configuration. The file containing the password can either be on the Local FS or HDFS.
如果我是 运行 我的 sqoop 工作与 root 用户然后我的密码文件将在 /user/root/
在 HDFS
sqoop import --connect jdbc:mysql://database.example.com/employees \
--username venkatesh --password-file /user/root/database.password
更多详情请查看this
不确定您是否仍然遇到此问题。密码文件可以在任何文件夹中。尝试以下语法,它应该可以工作:
--password-file file:///user/root/database.password
检查您的密码文件中是否有乱码。我遇到了同样的问题,最后发现文件末尾包含一个 \n 字符,sqoop 认为它也是密码字符串的一部分。尝试如下所述创建密码文件,然后使用密码文件: echo -n "root_password" > password.txt 将您的密码替换为 root_password.
"\n" 正在文件中写入,当您vi 文件并写入密码时。 最好使用以下方法来避免问题
echo -n "Your_sqoop_password" > sqoop.password
验证用户 运行
sqoop
命令是文件/sqoop.password
(设置了 400 权限)的所有者。这将确保密码文件可读。确保
sqoop.password
文件末尾没有任何额外的非打印字符(例如换行符)。检查这一点的一种简单方法是查看文件的大小。如果密码是'sqoop',文件的大小应该是5。如果更大,从HDFS删除sqoop.password
文件,在本地重新生成,然后把它放回 HDFS。
应该上报以上信息的命令是:hadoop fs -ls /sqoop.password
创建密码时,使用 echo -n
选项。 (-n
选项删除所有尾随空格)。
假设你有一个密码 "myPassword" 并且你想将它保存到文件 sqoop.password
,然后按照以下步骤操作:
使用命令
创建密码echo -n "myPassword" > sqoop.password
将文件上传到 HDFS 因为文件需要存在于 HDFS
hadoop fs -put sqoop.password /user/keepMyFilesHere
编写scoop导入命令
sqoop list-tables --connect jdbc:mysql://localhost/kpdatabase --username root --password-file /user/karanpreet.singh/sqoop.password
这绝对有用!
如果您对 sqoop 密码有任何疑问,请按照以下 link 进行操作。