【问题标题】:Index Hbase data to solr via Hive external table通过 Hive 外部表将 Hbase 数据索引到 solr
【发布时间】:2017-03-01 01:12:39
【问题描述】:

我通过 Nutch 2.3.1 抓取了一些数据。数据存储在 Hbase 0.98 表中。我创建了一个从 hbase 表导入数据的外部表。现在我必须将此数据索引到 solr 4.10.3。为此,我遵循了this 众所周知的教程。我创建了类似的配置单元表

create external table if not exists solr_items (
    id STRING,
    content STRING,
    url STRING,
    title STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
stored by "com.chimpler.hive.solr.SolrStorageHandler"
with serdeproperties ("solr.column.mapping"="id,content,url,title")
tblproperties ("solr.url" = "http://localhost:8983/solr/collection1") ;

当我尝试从here 发布的 hbase 复制数据时出现了一些问题。然后我决定先索引一些虚拟数据。为此,我决定从类似的文件中加载数据

LOAD DATA LOCAL INPATH 'data.csv3' OVERWRITE INTO TABLE solr_items;

但它给出了以下错误

FAILED: SemanticException [Error 10101]: A non-native table cannot be used as target for LOAD

问题出在哪里 HADOOP 版本是 1.2.1

【问题讨论】:

    标签: hadoop indexing solr hive hbase


    【解决方案1】:

    您不能将LOAD DATA 用于外部表。 Hive LanguageManual DML:

    Hive 在将数据加载到表中时不会进行任何转换。 加载操作目前是纯复制/移动操作 数据文件到 Hive 表对应的位置。

    Hive 显然不能在 Solr 外部表的情况下只复制数据,因为 Solr 使用它自己的内部数据表示。

    你可以插入:

    insert into table solr_items select * from tempTable;
    

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 1970-01-01
      • 2015-10-05
      • 2018-07-03
      • 1970-01-01
      • 2017-06-18
      • 2013-06-13
      • 2014-11-27
      • 2020-11-02
      相关资源
      最近更新 更多