处理不在hdfs中的文件

monwx1rj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(295)

我有根访问服务器,安装了hadoop和hive。但是,尽管我有root权限,但我无法将数据从文件系统复制到hdfs:

root@serv:~# hadoop fs -put flume_test/logs /user
put: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

我尝试了不同的方法从文件创建表 flume_test/logs ,它不在hdfs中。例如:

CREATE TABLE natlog_orc (
    src_local_ip STRING,
    time_start STRING,
    time_end STRING,
    src_global_ip STRING,
    protocol STRING,
    port_start STRING,
    port_end STRING
)
ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ","
STORED AS TEXTFILE
LOCATION /root/flume_test/logs;

但没有人不工作。
那么,如何从不在hdfs中的文件创建外部表呢?或者我可以更改hadoop设置中的哪个参数来获得将数据复制到hdfs所需的权限?

rseugnpd

rseugnpd1#

hdfs权限与本地文件系统不同。root没有超级权限。出现的错误是因为根用户没有写入/user的权限。切换到hdfs用户(run su - hdfs )并在hdfs上创建一个目录,将数据放入其中(例如/user/root)。将目录切换到root,您就可以将数据上传到hdfs。

相关问题