首页 > 解决方案 > 将 csv 数据摄取到 hadoop

问题描述

目前我正在尝试将数据摄取到 hdfs。我试图摄取的数据类型是 csv。安装在 ubuntu 上的 Hadoop 3.1.1。数据样本存储在 /home/hadoop/test.csv

我试过了

来源1

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'

因为它写的是没有目录我跟随另一个源来制作目录 source2 source3

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

标签: csvubuntuhadoopdata-ingestion

解决方案


@yuliansen

将文件从本地磁盘复制到 hdfs 的命令如下:

hdfs dfs -copyFromLocal /home/hadoop/test.csv /user/data/

如果文件夹不是作为 hdfs 或 root 用户创建的,请执行:

hdfs dfs -mkdir /user/data

如果您以用户“数据”的身份执行 hdfs dfs -copyFromLocal 命令,请执行以下操作:

hdfs dfs -chown data:hdfs /user/data

如果您以用户“hadoop”的身份执行命令,那么您需要确保 /home/hadoop/test.csv 和 /user/data 都属于用户 hadoop:

chown hadoop:hadoop /home/hadoop/test.csv
hdfs dfs -chown hadoop:hdfs /user/data

一旦您拥有正确的源文件和 hdfs 位置,您就可以执行 hdfs dfs -copyFromLocal


推荐阅读