目前,我正试图摄取数据到hdfs。我试图摄取的数据类型是csv。Hadoop 3.1.1安装在ubuntu上,数据样本存储在homehadooptest.csv上。
hadoop@ambari:~$ hdfs dfs -put /home/hadoop/test.csv user/data/test.csv
put: `user/data/test.csv': No such file or directory: `hdfs://xxxx:8020/user/hadoop/user/data/test.csv'
所以我把它修改成了test.csv,然后它就返回了
hadoop@ambari:~$ hdfs dfs -put /home/hadoop/test.csv test.csv
put: `test.csv': No such file or directory: `hdfs://xxxx:8020/user/hadoop/test.csv'
因为它写道,没有目录,我按照另一个来源,使一个目录。来源2 来源3
hadoop@ambari:~$ hadoop fs -mkdir bdp
mkdir: `hdfs://xxxx:8020/user/hadoop': No such file or directory
hadoop@ambari:~$ hadoop fs -mkdir /user/hadoop/in
mkdir: `hdfs://xxxx:8020/user/hadoop': No such file or directory
@yuliansen
从本地磁盘复制文件到hdfs的命令如下。
hdfs dfs -copyFromLocal /home/hadoop/test.csv /user/data/
如果文件夹不是以hdfs或root用户的身份创建的,那么执行:
hdfs dfs -mkdir /user/data
如果你是以 "data "用户的身份执行hdfs dfs -copyFromLocal命令,那么就这样做。
hdfs dfs -chown data:hdfs /user/data
如果你是以用户 "hadoop "的身份执行该命令,那么你需要确保homehadooptest.csv和userdata都是chowned给用户hadoop的。
chown hadoop:hadoop /home/hadoop/test.csv
hdfs dfs -chown hadoop:hdfs /user/data
一旦你确定了源文件和hdfs位置的正确性 然后你就可以执行hdfs dfs -copyFromLocal命令了