Elasticsearch安装篇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch安装篇相关的知识,希望对你有一定的参考价值。
Elasticsearch安装篇
1.先去elasticsearch 官网
Jar下载
http://jcenter.bintray.com/org/elasticsearch/elasticsearch-hadoop
下载好后 直接解压
tar -zxvf elasticsearch-2.4.3.tar.gz
修改config下elasticsearch.yml
cluster.name: gotop
node.name: hadoop001
http.port: 9200
network.host: ip
discovery.zen.ping.unicast.hosts: ["hadoop001", "hadoop003", "hadoop004"]
#集群名称,通过组播的方式通信,通过名称判断属于哪个集群
cluster.name: es
#节点名称,要唯一
node.name: es-1
#数据存放位置
path.data:/data/es/data
#日志存放位置
path.logs:/data/es/logs
#es绑定的ip地址
network.host:172.16.0.14
#初始化时可进行选举的节点(es集群节点)
discovery.zen.ping.unicast.hosts:["node-4", "node-5", "node-6"]
6.可以直接复制到其他服务器,只修改node.name和network.host就行了
7.启动es
然后把整个目录修改权限为777或者更改用户组
切换到普通频道执行:su gotop
启动:./bin/elasticsearch(前台运行)bin/elasticsearch -d(后台运行)
关闭elasticsearch
前台运行,可以通过"CTRL+C"组合键来停止运行
关闭:ps aux |grep elasticsearch 找到pid kill-9 pid
后台运行,可以通过"kill -9 进程号"停止;也可以通过REST API接口"curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown"来关闭整个集群,"curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(如Bjkhlujigopojhih)/_shutdown"来关闭单个节点
rpm安装,"sudo service elasticsearch stop"关闭服务
curl -XPOST ‘http://localhost:9200/_shutdown‘
注意问题:
1.elasticsearch不建议使用root用户,可以使用其他用户
2.节点名称也是唯一(集群里不一样名)
3.绑定ip地址也是不一样的
4.启动es后,可以在线查看帮助文档 bin/elasticsearch -h
5.数据和日志存放都是自定义的
然后打开
ip:9200
证明安装成功
2.安装 elasticsearch-head 插件
./bin/plugin install mobz/elasticsearch-head
浏览器查看
可以看到上面内容证明安装成功
遇到的问题及解决方法:
问题一:ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
问题二:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048
问题三:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
关于使用可一参考:http://blog.csdn.net/ebw123/article/details/46707559
创建索引
curl -XPUT ‘http://ip:9200/web01?pretty‘ -d‘
{
"settings":{
"number_of_shards":2,
"number_of_replicas":1
}
}‘
为索引增加数据
curl -XPUT ‘http://ip:9200/web01/table/1‘ -d ‘
{
"news": {
"properties": {
"id": {
"analyzer": "ik",
"type": "int"
},
"name": {
"index": "not_analyzed",
"type": "string"
},
"ip": {
"analyzer": "ik",
"type": "string"
},
"time": {
"index": "not_analyzed",
"type": "string"
}
}
}
}’
Hive结合
把elasticsearch-hadoop-2.4.3.jar上传到hdfs的下面目录 /tmp/
然后运行
beeline -u jdbc:hive2://hadoop001:10000 hive -p gotop123 -hiveconf hive.aux.jars.path=/tmp/elasticsearch-hadoop-2.4.3.jar
首先创建源数据表
id int,
name string,
ip string,)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,‘
STORED AS TEXTFILE;
然后把自己的数据load进去
LOAD DATA LOCAL INPATH ‘/usr/local/555.txt.lzo‘ OVERWRITE INTO TABLE lzowu;
select * from web01_source;
hive表中field类型为int时,映射到es中变成long,所以会报此错误。将hive表中int改为bigint即可。
id bigint,
name string,
ip string,
time string)
STORED BY ‘org.elasticsearch.hadoop.hive.EsStorageHandler‘
TBLPROPERTIES(‘es.resource‘ = ‘test1/table1‘, ‘es.nodes‘=‘ip‘, ‘es.port‘=‘9200‘, ‘es.nodes.wan.only‘=‘true‘);
CREATE EXTERNAL TABLE estwo(
id bigint,
name string,
ip string,
age string)
STORED BY ‘org.elasticsearch.hadoop.hive.EsStorageHandler‘
TBLPROPERTIES(‘es.resource‘ = ‘two/two‘, ‘es.nodes‘=‘ip:9200,ip:9200,ip:9200‘, ‘es.nodes.wan.only‘=‘true‘);
es.resource的two/two分别是索引名和索引的类型,这个是在es访问数据时候使用的。
然后建立源数据表
只能用bigint类型 因为默认为long类型 interesting类型可以被javaapi进行调用
运行下面如果提示在目录下面elasticsearch-hadoop-2.4.3.jar不能写的权限问题 需要手动上传到hdfs里面 如果彻底解决这个问题需要改变目录权限即可
insert overwrite table web select * from test01_source;
insert into table web03 from web01_source;
selece * from web03
所需时间0.3秒以内
Select * from web01_source
所需时间0.2秒以内
以上是关于Elasticsearch安装篇的主要内容,如果未能解决你的问题,请参考以下文章