Idea 원격 ElasticSearch에 데이터 쓰기
의존 추가
<dependency>
<groupId>io.searchboxgroupId>
<artifactId>jestartifactId>
<version>6.3.1version>
dependency>
<dependency>
<groupId>net.java.dev.jnagroupId>
<artifactId>jnaartifactId>
<version>4.5.2version>
dependency>
<dependency>
<groupId>org.codehaus.janinogroupId>
<artifactId>commons-compilerartifactId>
<version>2.7.8version>
dependency>
코드 예제 import com.atguigu.gmall.realtime.bean.AlertInfo
import io.searchbox.client.config.HttpClientConfig
import io.searchbox.client.{JestClient, JestClientFactory}
import io.searchbox.core.{Bulk, Index}
import org.apache.spark.rdd.RDD
/**
* Author atguigu
* Date 2020/6/3 13:58
*/
object ESUtil {
val factory = new JestClientFactory
// 1.1.1 es
val esUrl = "http://hadoop102:8300" // (9200)
val config = new HttpClientConfig.Builder(esUrl)
.maxTotalConnection(100) //
.connTimeout(10000) // es
.readTimeout(10000) //
.multiThreaded(true)
.build()
factory.setHttpClientConfig(config)
/**
* es
*
* @param index
* @param source
* @param id
*/
def insertSingle(index: String, source: Object, id: String = null): Unit = {
val client: JestClient = factory.getObject
val action = new Index.Builder(source)
.index(index)
.`type`("_doc")
.id(id) // null,
.build()
client.execute(action)
client.shutdownClient() //
}
/**
*
*
* @param index
* @param sources
*/
def insertBulk(index: String, sources: Iterator[Object]) = {
val client: JestClient = factory.getObject
val builder = new Bulk.Builder()
.defaultIndex(index)
.defaultType("_doc")
// Bulk.Builder add Action, es
// Object (id, object)
sources.foreach {
case (id: String, data) =>
val action = new Index.Builder(data)
.id(id)
.build()
builder.addAction(action)
case data =>
val action = new Index.Builder(data)
.build()
builder.addAction(action)
}
client.execute(builder.build())
client.shutdownClient()
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
<dependency>
<groupId>io.searchboxgroupId>
<artifactId>jestartifactId>
<version>6.3.1version>
dependency>
<dependency>
<groupId>net.java.dev.jnagroupId>
<artifactId>jnaartifactId>
<version>4.5.2version>
dependency>
<dependency>
<groupId>org.codehaus.janinogroupId>
<artifactId>commons-compilerartifactId>
<version>2.7.8version>
dependency>
import com.atguigu.gmall.realtime.bean.AlertInfo
import io.searchbox.client.config.HttpClientConfig
import io.searchbox.client.{JestClient, JestClientFactory}
import io.searchbox.core.{Bulk, Index}
import org.apache.spark.rdd.RDD
/**
* Author atguigu
* Date 2020/6/3 13:58
*/
object ESUtil {
val factory = new JestClientFactory
// 1.1.1 es
val esUrl = "http://hadoop102:8300" // (9200)
val config = new HttpClientConfig.Builder(esUrl)
.maxTotalConnection(100) //
.connTimeout(10000) // es
.readTimeout(10000) //
.multiThreaded(true)
.build()
factory.setHttpClientConfig(config)
/**
* es
*
* @param index
* @param source
* @param id
*/
def insertSingle(index: String, source: Object, id: String = null): Unit = {
val client: JestClient = factory.getObject
val action = new Index.Builder(source)
.index(index)
.`type`("_doc")
.id(id) // null,
.build()
client.execute(action)
client.shutdownClient() //
}
/**
*
*
* @param index
* @param sources
*/
def insertBulk(index: String, sources: Iterator[Object]) = {
val client: JestClient = factory.getObject
val builder = new Bulk.Builder()
.defaultIndex(index)
.defaultType("_doc")
// Bulk.Builder add Action, es
// Object (id, object)
sources.foreach {
case (id: String, data) =>
val action = new Index.Builder(data)
.id(id)
.build()
builder.addAction(action)
case data =>
val action = new Index.Builder(data)
.build()
builder.addAction(action)
}
client.execute(builder.build())
client.shutdownClient()
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.