timelion how to use .es (example)

 config the timestamp of timelion, which attribute should timelion based on.   Management -> Advanced Settings -> (find timelion:es.timefield)  set this field with your index timestamp use .es() to code the regulation of timelion.  tap timelion doc item to find the utility of the grammar. .es(index=dmp-user,metric=’count:loginNum_weekday’,fit=’nearest’,kibana=’true’)

Categorieses

sparksql read data from elasticsearch and then represent

import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark._ /** * Created by yanggf on 2017/11/9. */ object Elastic { def main(args: Array[String]): Unit ={ val conf = new SparkConf().setMaster(“local”).setAppName(“elastic”) .set(“es.nodes”, “127.0.0.1”) .set(“es.port”, “9200”) .set(“es.net.http.auth.user”, “elastic”) .set(“es.net.http.auth.pass”, “changeme”) .set(“es.mapping.date.rich”, “false”) val sc = new SparkContext(conf) val query = “””{“query”:{“match_all”:{}}}””” val esRdd = sc.esRDD(“user/flight”, query) import org.apache.spark.sql.SparkSession val sparkSession =…

spark elasticsearch scala idea sbt integration problem solved

build.sbt内容: name := “search” version := “1.0” scalaVersion := “2.11.1” libraryDependencies ++= Seq( “org.apache.spark” % “spark-core_2.11” % “2.1.0” ) elasticsearch官网下载最新elasticsearch-hadoop包找到版本对应的jar包 elasticsearch-spark-20_2.11-5.6.4.jar import进来,目前来看5.6.4兼容5.5.0elasticsearch spark读取es代码: import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark._ /** * Created by yanggf on 2017/11/9. */ object Elastic { def main(args: Array[String]): Unit ={ // def file = “f:/scala.txt” // val conf = new SparkConf().setMaster(“local”).setAppName(“elastic”)…

elasticsearch change mapping in production environment without service interruption

Elasticsearch的mapping一旦创建,只能增加字段,而不能修改已经mapping的字段。但现实往往并非如此啊,有时增加一个字段,就好像打了一个补丁,一个可以,但是越补越多,最后自己都觉得惨不忍睹了。怎么办?? 这里有一个方法修改mapping,那就是重新建立一个index,然后创建一个新的mapping。你可能会问,这要是在生产环境,可行吗?答案是,如果你一开始就采取了合适的设计,这个完全是可以做到平滑过渡的。 采取什么合理设计呢?就是我们的程序访问索引库时,始终使用同义词来访问,而不要使用真正的indexName。在reindex完数据之后,修改之前的同义词即可。明白了吗?   参考上面的思路,我们来一步一步做。 step1、创建一个索引,这个索引的名称最好带上版本号,比如my_index_v1,my_index_v2等。 step2、创建一个指向本索引的同义词。 curl -XPOST localhost:9200/_aliases -d ‘ {     “actions”: [         { “add”: {             “alias”: “my_index”,             “index”: “my_index_v1”         }}     ] } ‘   此时,你可以通过同义词my_index访问。包括创建索引,删除索引等。   step3,需求来了,需要更改mapping了,此时,你需要创建一个新的索引,比如名称叫my_index_v2(版本升级).,在这个索引里面创建你新的mapping结构。然后,将新的数据刷入新的index里面。在刷数据的过程中,你可能想到直接从老的index中取出数据,然后更改一下格式即可。如何遍历所有的老的index数据,请参考 这里。 step4,修改同义词。将指向v1的同义词,修改为指向v2。http接口如下: curl -XPOST localhost:9200/_aliases -d ‘ {     “actions”: [         { “remove”: {             “alias”: “my_index”,             “index”: “my_index_v1”         }},         { “add”: {             “alias”: “my_index”,             “index”: “my_index_v2”         }}     ] } ‘ step5,删除老的索引。 curl -XDELETE localhost:9200/my_index_v1   除此之外,还有几个其他的方法也可以更改mapping。 1、修改程序,添加字段。 就是说,你可以在mapping中增加一个新的字段,然后你对新的字段进行访问统计搜索。这个就要修改两个地方,一个是修改mapping增加字段,还有就是修改你的程序,把字段改成新的字段。 2、更改字段类型为multi_field。 multi_field允许为一个字段设置多个数据类型。应用multi_field的一个最典型的场景是:一个类型定义为analyed,这个字段可以被搜索到,一个类型定义为不分词,这个字段用于排序。 任何字段都可以被更新为multi_field(类型为object和nested的类型除外)。假设现在有一个字段,名字叫created,类型现在为string。 {     “created”: { “type”: “string”} } 我们可以将它增加一种类型,使他既能被当做字符串又能当做日期型。 curl -XPUT localhost:9200/my_index/my_type/_mapping -d ‘ {     “my_type”: {         “properties”: {             “created”: {                 “type”:   “multi_field”,                 “fields”: {                     “created”: { “type”: “string” },…

Categorieses

elasticsearch add new column to index type

PUT /my_index/_mapping/my_type {    “my_type”: {       “properties”: {          “english_title”: { “type”: “string”, “analyzer”: “english” } } } }

Categorieses

centOs7.3 yum install elasticsearch5.5.0

二、yum安装ES 1、更新yum的缓存 1 yum makecache 2、安装ES 1 yum install elasticsearch     三、测试ES 1、配置和启动ES服务器进程 1 2 3 /sbin/chkconfig –add elasticsearch systemctl start elasticsearch 2、查看状态 1 systemctl status elasticsearch 3、运行测试 1 curl -X GET localhost:9200 返回的json结果如下: { “name” : “Amalgam”, “cluster_name” : “elasticsearch”, “cluster_uuid” : “q1JTidLuTNecwBbFNJCUFQ”, “version” : { “number” : “2.4.1”, “build_hash” : “c67dc32e24162035d18d6fe1e952c4cbcbe79d16”, “build_timestamp”…

Categorieses

kibana5.5.0 centOS7.3外网访问配置

开放端口 1 2 3 4 firewall–cmd —permanent —add–port=5601/tcp firewall–cmd —reload firewall–cmd —state firewall–cmd —list–all 修改配置 vi /etc/kibana/kibana.yml server.port: 5601 server.host: “0.0.0.0” service kibana restart //重启外网可以访问

Categorieses

elasticsearch5.5.0centOS7.3外网访问、开放端口

centOS   yum -ql elasticsearch   查询elasticsearch安装目录 /sbin/chkconfig –add elasticsearch     设置service启动 vi /etc/elasticsearch/elasticsearch.yml 配置文件 server.host:0.0.0.0 http.port:9200 cluster.name:yanggf   //名字修改重启后,可以用了,原因未知 service elasticsearch restart    //重启服务 防火墙设置 1、关闭selinux 1 2 sed –i “s/SELINUX=enforcing/SELINUX=disabled/” /etc/selinux/config setenforce 0 2、安装firewall yum install firewalld firewall-config 1 2 3 systemctl start firewalld.service systemctl enable firewalld.service systemctl status firewalld.service 3、开放端口 1…

Categorieses

ES对数组进行查询

reference:http://blog.csdn.net/dm_vincent/article/details/41800351   user/user/_search AND 逻辑实现:(数组中包含8和2) { “query”: { “bool”: { “should”: [ { “term”: { “dragoncard_credit_classify”: 8 }}, { “term”: { “dragoncard_credit_classify”: 2 }} ] } } }   OR逻辑实现:(数组中包含8和2,或者4和2) { “query”: { “bool”: { “should”: [ { “term”: { “dragoncard_credit_classify”: 8 }}, { “term”: { “dragoncard_credit_classify”: 2 }} ] }, “bool”: { “should”:[ {“term”:{“dragoncard_credit_classify”:…

Categorieses

elastic logstash install x-pack errors fixed

[2016-12-28T17:49:08,367][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>#<URI::HTTP:0x1deb02b URL:http://10.129.28.149:9200>, :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>”Got response code ‘401’ contact Elasticsearch at URL ‘http://10.129.28.149:9200/'”} 配置 logstash.conf output { elasticsearch { … user => logstash_internal password => changeme } }

Categorieses