具有数百万条记录插入的 Hadoop 后端
Hadoop backend with millions of records insertion
我是 hadoop 的新手,有人可以建议我如何将数百万条记录上传到 hadoop 吗?我可以用 hive 做这个吗?我在哪里可以看到我的 hadoop 记录?
到目前为止,我一直使用 hive 在 hadoop 上创建数据库,我正在使用本地主机 50070 访问它。但是我无法从终端将数据从 csv 文件加载到 hadoop。因为它给我错误:
FAILED: Error in semantic analysis: Line 2:0 Invalid path ''/user/local/hadoop/share/hadoop/hdfs'': No files matching path hdfs://localhost:54310/usr/local/hadoop/share/hadoop/hdfs
谁能建议我一些解决方法?
您应该使用 LOAD DATA LOCAL INPATH <local-file-path>
将文件从本地目录加载到 Hive 表。
如果您不指定 LOCAL ,则加载命令将假设从 HDFS 位置查找给定的文件路径以进行加载。
我想最初数据在本地文件系统中。
所以一个简单的工作流可以是:将数据从本地加载到 hadoop 文件系统 (HDFS),在其上创建一个配置单元 table,然后将数据加载到配置单元 table.
第 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;
//显示table结构
describe mytable;
第 3 步:
Load data local INPATH '/path/to/your/HDFS_directory'
OVERWRITE into TABLE mytable;
// 获取前 10 条记录的简单 hive 语句
SELECT * FROM mytable limit 10;
我是 hadoop 的新手,有人可以建议我如何将数百万条记录上传到 hadoop 吗?我可以用 hive 做这个吗?我在哪里可以看到我的 hadoop 记录?
到目前为止,我一直使用 hive 在 hadoop 上创建数据库,我正在使用本地主机 50070 访问它。但是我无法从终端将数据从 csv 文件加载到 hadoop。因为它给我错误:
FAILED: Error in semantic analysis: Line 2:0 Invalid path ''/user/local/hadoop/share/hadoop/hdfs'': No files matching path hdfs://localhost:54310/usr/local/hadoop/share/hadoop/hdfs
谁能建议我一些解决方法?
您应该使用 LOAD DATA LOCAL INPATH <local-file-path>
将文件从本地目录加载到 Hive 表。
如果您不指定 LOCAL ,则加载命令将假设从 HDFS 位置查找给定的文件路径以进行加载。
我想最初数据在本地文件系统中。
所以一个简单的工作流可以是:将数据从本地加载到 hadoop 文件系统 (HDFS),在其上创建一个配置单元 table,然后将数据加载到配置单元 table.
第 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;
//显示table结构
describe mytable;
第 3 步:
Load data local INPATH '/path/to/your/HDFS_directory'
OVERWRITE into TABLE mytable;
// 获取前 10 条记录的简单 hive 语句
SELECT * FROM mytable limit 10;