如何在hadoop上配置ElasticSearch?

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

我想在hadoop和hive上配置ElasticSearch。ElasticSearch在我的本地机器上运行,hadoop在另一台机器上运行。我使用的是sandboxhdp2.2版。如何配置?沙盒中是否提供了ui?

w1jd8yoj

w1jd8yoj1#

以下是在hadoop上配置ElasticSearch的步骤。
第一步
创建一个要添加数据的表,

CREATE TABLE logs (type STRING, time STRING, ext STRING, ip STRING, req STRING, res INT, bytes INT, phpmem INT, agent STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

第2步
向表中添加数据(这里是一个日志文件apache.log)

LOAD DATA INPATH '/user/apache/apache.log' OVERWRITE INTO TABLE logs;

第3步
将jar文件添加到类路径中(注意版本2.1.0.build snapshot.jar)

ADD JAR elasticsearch-hadoop-2.1.0.BUILD-SNAPSHOT.jar;

第4步
创建要在localhosts elasticsearch中使用的eslogs表

CREATE EXTERNAL TABLE eslogs (time STRING, extension STRING, clientip STRING, request STRING, response INT, agent STRING)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource' = 'test/test','es.mapping.names' = 'time:@timestamp', 'es.nodes' = 'IP_ON_WHICH_ELASTICSEARCH_IS_RUNNING:9200');

第5步
将数据添加到eslogs from logs表中

INSERT OVERWRITE TABLE eslogs SELECT s.time, s.ext, s.ip, s.req, s.res, s.agent FROM logs s;

可以参考此链接。

相关问题