我通过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
答案 0 :(得分:1)
您无法将LOAD DATA
用于外部表格。 Hive LanguageManual DML:
Hive在将数据加载到表中时不进行任何转换。 加载操作当前是移动的纯复制/移动操作 数据文件到与Hive表对应的位置。
Hive显然不能只在Solr外部表的情况下复制数据,因为Solr使用它自己的内部数据表示。
您可以插入:
insert into table solr_items select * from tempTable;