我是hadoop的新手,有人可以建议我如何将数百万条记录上传到hadoop吗?我可以用蜂巢这样做,我在哪里可以看到我的hadoop记录?
到目前为止,我已经使用hive在hadoop上创建数据库,我使用localhost 50070访问它。但是我无法将csv文件中的数据从终端加载到hadoop。因为它给了我错误:
失败:语义分析出错:第2行:0无效路径''/ user / local / hadoop / share / hadoop / hdfs'':没有匹配路径的文件hdfs:// localhost:54310 / usr / local / hadoop /共享/ hadoop的/ HDFS
有人可以建议我解决一些问题吗?
答案 0 :(得分:1)
您应该使用LOAD DATA LOCAL INPATH <local-file-path>
将文件从本地目录加载到Hive表。
如果你没有指定 LOCAL ,那么load命令将假定从HDFS位置查找给定的文件路径以加载。
答案 1 :(得分:1)
我想最初数据是在本地文件系统中。
所以一个简单的工作流程可能是:从本地加载数据到hadoop文件系统(HDFS),在其上创建一个hive表,然后在hive表中加载数据。
第1步:
// put in HDFS
$~ hadoop fs -put /local_path/file_pattern* /path/to/your/HDFS_directory
// check files
$~ hadoop fs -ls /path/to/your/HDFS_directory
第2步:
CREATE EXTERNAL TABLE if not exists mytable (
Year int,
name string
)
row format delimited
fields terminated by ','
lines terminated by '\n'
stored as TEXTFILE;
//显示表格结构
describe mytable;
第3步:
Load data local INPATH '/path/to/your/HDFS_directory'
OVERWRITE into TABLE mytable;
//简单的hive语句来获取前10个记录
SELECT * FROM mytable limit 10;