Sqoop将Oracle数据导入HDFS时出现权限问题: Permission denied: user=root, access=WRITE,
2018-01-13 17:15
1411 查看
利用Sqoop将Oracle数据导入HDFS时出现权限问题。
执行列表操作能正常列出数据库中的表:
sqoop list-tables --connect jdbc:oracle:thin:@IP地址:端口号:数据库 --username 用户名 --password 密码
但是执行import操作则提示权限问题:
sqoop import --connect jdbc:oracle:thin:@IP地址:端口号:数据库 --username 用户名 --password 密码 --table 表名--target-dir 目标路径 -m 1 (注:此处的目标路径应为hdfs路径,如:/user/table)
主要日志:
网上多数方法是:
1、修改hdfs配置文件中的dfs.permissions值为false;
2、执行操作 hadoop fs -chmod 777 /user/hadoop。
我使用的HDFS版本号是2.7.3。两张方法都试了试,其中用第一中方法修改了所有slave节点相应配置文件,但是重启HDFS后发现false又自动变回了true。失败。
搜索了一上午,最终发现宝帖:https://www.cnblogs.com/invban/p/5673517.html
受此贴的启发,更改登录账户为hdfs,重新执行import操作,成功。
由于操作一直是在root账户下,而导入操作是要导入到HDFS中,当然会提示权限不足的问题。
解决方法:
1、切换账号 ,执行命令: su hdfs;
2、重新执行import操作。
另一种解法是给要访问的路径授权给root用户:
hadoop fs -chown -R root /user/hive 其中root是被授权对象,/user/hive是root要访问的路径。
执行列表操作能正常列出数据库中的表:
sqoop list-tables --connect jdbc:oracle:thin:@IP地址:端口号:数据库 --username 用户名 --password 密码
但是执行import操作则提示权限问题:
sqoop import --connect jdbc:oracle:thin:@IP地址:端口号:数据库 --username 用户名 --password 密码 --table 表名--target-dir 目标路径 -m 1 (注:此处的目标路径应为hdfs路径,如:/user/table)
主要日志:
WARN retry.RetryInvocationHandler: Exception while invoking ClientNamenodeProtocolTranslatorPB.mkdirs over null. Not retrying because try once and fail. Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException):Permission denied: user=root,access=WRITE,inode="/user/root/.staging":hdfs:hdfs:drwxr-xr-x。 org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=root,access=WRITE,inode="/user/root/.staging":hdfs:hdfs:drwxr-xr-x
网上多数方法是:
1、修改hdfs配置文件中的dfs.permissions值为false;
2、执行操作 hadoop fs -chmod 777 /user/hadoop。
我使用的HDFS版本号是2.7.3。两张方法都试了试,其中用第一中方法修改了所有slave节点相应配置文件,但是重启HDFS后发现false又自动变回了true。失败。
搜索了一上午,最终发现宝帖:https://www.cnblogs.com/invban/p/5673517.html
受此贴的启发,更改登录账户为hdfs,重新执行import操作,成功。
由于操作一直是在root账户下,而导入操作是要导入到HDFS中,当然会提示权限不足的问题。
解决方法:
1、切换账号 ,执行命令: su hdfs;
2、重新执行import操作。
另一种解法是给要访问的路径授权给root用户:
hadoop fs -chown -R root /user/hive 其中root是被授权对象,/user/hive是root要访问的路径。
相关文章推荐
- hadoop 权限错误 Permission denied: user=root, access=WRITE, inode="/":hdfs:super
- 解决Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x 问题方法
- 如何处理 Permission denied: user=root, access=WRITE, inode="/user" 这类Hadoop权限问题问题
- sqoop把oracle数据导入hive出现的问题
- Sqoop import加载HBase过程中,遇到Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
- eclipes远程连接hadoop 权限错误 Permission denied: user=root, access=WRITE, inode="/":hdfs:super
- Sqoop import加载HBase过程中,遇到Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:d
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- mkdir: Permission denied: user=root, access=WRITE, inode="/user":hdfs:hadoop:drwxr-xr-x
- 使用sqoop将oracle数据导入hdfs集群
- wampserver登陆mysql出现#1045 - Access denied for user 'root'@'localhost' (using password: YES) 问题
- Hadoop数据工具sqoop,导入HDFS,HIVE,HBASE,导出到oracle
- 解决初次登录MySQL出现ERROR 1045 (28000):Access denied for user 'root'@'localhost'问题
- sqoop导入hdfs上的数据到oracle
- 使用sqoop做桥梁实现oracle和hdfs之前数据互导(问题和心得)
- Sqoop工具使用 (二)--把HDFS中的数据导入到Oracle
- 【甘道夫】Sqoop1.99.3基础操作--导入Oracle的数据到HDFS
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 利用sqoop 将 hive/hdfs数据 导入 Oracle中
- 238,安装mysql出现Access denied for user 'root'@'localhost' (using password: YES)的问题