hadoop - 通过 Hue 在 hadoop 中加载大型 csv 只会存储 64MB block

标签 hadoop hive cloudera hue impala

我使用的是 Cloudera quickstart vm 5.1.0-1

我试图通过 Hue 在 Hadoop 中加载我的 3GB csv,到目前为止我尝试的是: - 将 csv 加载到 HDFS 中,特别是加载到位于/user/hive/datasets 的名为数据集的文件夹中 - 使用 Metastore Manager 将其加载到默认数据库中

一切正常,这意味着我设法加载了正确的列。主要问题是当我使用 Impala 查询表时启动以下查询:

显示表统计信息 new_table

我意识到大小只有 64 MB 而不是 csv 的实际大小,应该是 3GB。

此外,如果我通过 Impala 进行计数 (*),则行数仅为 70000 而实际为 700 万。

如有任何帮助,我们将不胜感激。

提前致谢。

最佳答案

我遇到了完全相同的问题。这是一个与 Hue 如何通过 Web 界面导入文件有关的问题,该界面有 64MB 的限制。

我一直在使用 Hive CLI 和 -f 标志对带有 DDL 代码的文本文件导入大型数据集。

例子:

hive -f beer_data_loader.hql



beer_data_loader.hql:

  CREATE DATABASE IF NOT EXISTS beer  
  COMMENT "Beer Advocate Database";


CREATE TABLE IF NOT EXISTS beer.beeradvocate_raw(  
    beer_name           STRING,
    beer_ID             BIGINT,
    beer_brewerID       INT,
    beer_ABV            FLOAT,
    beer_style          STRING,
    review_appearance   FLOAT,
    review_aroma        FLOAT,
    review_palate       FLOAT,
    review_taste        FLOAT,
    review_overall      FLOAT,
    review_time         BIGINT,
    review_profileName  STRING,
    review_text         STRING
    )
 COMMENT "Beer Advocate Data Raw"
 ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '|'
 STORED AS parquet;


CREATE EXTERNAL TABLE IF NOT EXISTS beer.beeradvocate_temp(  
    beer_name           STRING,
    beer_ID             BIGINT,
    beer_brewerID       INT,
    beer_ABV            FLOAT,
    beer_style          STRING,
    review_appearance   FLOAT,
    review_aroma        FLOAT,
    review_palate       FLOAT,
    review_taste        FLOAT,
    review_overall      FLOAT,
    review_time         BIGINT,
    review_profileName  STRING,
    review_text         STRING
    )
 COMMENT "Beer Advocate External Loading Table"
 ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '|'
 LOCATION '/user/name/beeradvocate.data';


INSERT OVERWRITE TABLE beer.beeradvocate_raw SELECT * FROM beer.beeradvocate_temp;  
DROP TABLE beer.beeradvocate_temp; 

关于hadoop - 通过 Hue 在 hadoop 中加载大型 csv 只会存储 64MB block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414470/

相关文章:

hadoop - 根据配置单元中的条件将数据从一列填充到另一列

hadoop - hql查询报错

java - hive在哪里运行以及JVM的作用

hadoop - 按列分区的HIVE从另一张表插入数据后全0

java - 如何在Java中以日期格式减去日期

hadoop - Apache pig vs hive

hadoop - Hbase中的三重复合键

python - Spark统计函数Python

mapreduce - 配置单元聚合查询从缓存中获取错误值

hadoop - IMPLICIT_CAST_TO_DOUBLE 警告 : Pig