hadoop - 使用配置单元 sql 批量插入数百万条记录到配置单元?

标签 hadoop hive

我想准备样本数据以在配置单元表上进行测试存储为 Parquet 格式。表格看起来像这样:

hive> CREATE TABLE exps (sn STRING, buildNum STRING, shortProdName
STRING, userIV STRING, cfs STRUCT<version : STRING, name : STRING,
objArray : ARRAY<STRUCT<id : STRING, properties : INT>> >) STORED AS PARQUET;

然后我写了一个名为“sample.sql”的 sql 文件,其中包含数百万行 sql 插入命令。

$ /opt/hive-0.13.1/bin/hive -f sample.sql

这会导致hive启动大量的map-reduce作业,一个一个执行,速度很慢。

所以我的问题是:是否有更好的方法来做到这一点?

最佳答案

Hive 中没有虚拟表,因此 sample.sql 将无法运行。

由于您需要使用 SQL 在 hive 中尝试 parquet 格式,因此我的建议是

  1. 将数据加载到关系数据库(如 mysql)中。
  2. 使用 Apache Sqoop 将数据从关系数据库导入 HDFS。
  3. 创建一个 parquet 格式的 Hive 表
  4. 将数据从 HDFS 加载到 Hive 表。

关于hadoop - 使用配置单元 sql 批量插入数百万条记录到配置单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774311/

相关文章:

sql - hive 查询 : Ambiguous column reference acct_nbr in stage

datetime - hive 中需要 "MMM-yyyy"格式的时间戳

file - 在伪分布式模式下以hadoop读写文件

java - 使用 java 通过 Apache Ignite 访问 IGFS 文件

d3.js - 任何人都知道如何使用 D3js 进行 Apache 配置单元数据可视化?

SQL:为其他两列 A 和 B 的成对组合选择列 C 的运行总计

hadoop - `hive.exec.max.dynamic.partitions`和 `hive.exec.max.dynamic.partitions.pernode`的区别

apache-spark - HADOOP_CONF_DIR已经设置仍然出现错误,必须在环境中设置HADOOP_CONF_DIR或YARN_CONF_DIR

hadoop - 如何将客户端数据的放置限制在 hadoop 中的特定节点?

hadoop - Hive是否可以将Avro字节反序列化为提供的架构?