通过Hive外部表索引Hbase数据到solr

时间:2016-10-19 11:50:52

标签: hadoop indexing solr hive hbase

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

这样的hive表
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

1 个答案:

答案 0 :(得分:1)

您无法将LOAD DATA用于外部表格。 Hive LanguageManual DML

  

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

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

您可以插入:

insert into table solr_items select * from tempTable;