通过配置单元外部表将hbase数据索引到solr

rslzwgfq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(368)

我已经通过nutch2.3.1抓取了一些数据。数据存储在hbase 0.98表中。我已经创建了一个从hbase表导入数据的外部表。现在我必须将这些数据索引到solr4.10.3。为此,我遵循了这个众所周知的教程。我已经创造了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") ;

当我试图从发布在这里的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的问题在哪里

mutmk8jj

mutmk8jj1#

你不能使用 LOAD DATA 对于外部表。配置单元语言手册dml:
配置单元在将数据加载到表中时不进行任何转换。加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。
显然,在solr外部表的情况下,hive不能只复制数据,因为solr使用自己的内部数据表示。
但您可以插入:

insert into table solr_items select * from tempTable;

相关问题