spark配置elasticsearch屬性匯總(基于es7)

原文:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html

轉自:https://www.cnblogs.com/atrox/p/13579534.html

必要設置

es.resource

Elasticsearch資源位置,在該位置讀取和寫入數據。需要格式 <index>/<type>

es.resource.read(默認為es.resource)

用于讀?。ǖ粚懭耄祿腅lasticsearch資源。在同一作業中將數據讀取和寫入不同的Elasticsearch索引時很有用。通常自動設置(“ Map / Reduce”模塊除外,該模塊需要手動配置)。

es.rource.write(默認為es.resource)

用于寫入(但不讀?。祿腅lasticsearch資源。通常用于動態資源寫入或在同一作業中向不同的Elasticsearch索引寫入和讀取數據時使用。通常自動設置(需要手動配置的Map / Reduce模塊除外)。

網絡

es.nodes (默認本地主機)

要連接的Elasticsearch節點列表。遠程使用Elasticsearch時,請設置此選項。請注意,列表中沒有必須包含每一個的Elasticsearch集群內的節點; 默認情況下,這些是由elasticsearch-hadoop自動發現的(請參見下文)。每個節點還可以分別指定其HTTP / REST端口(例如mynode:9600)。

es.port (默認為9200)

用于連接到Elasticsearch的默認HTTP / REST端口-此設置適用于es.nodes未指定任何端口的節點。

es.nodes.path.prefix (默認為none)

添加到對Elasticsearch的所有請求中的前綴。在群集以特定路徑代理/路由的環境中很有用。例如,如果群集位于someaddress:someport/custom/path/prefix,則將設置es.nodes.path.prefix為/custom/path/prefix。

查詢方式

es.query (默認無)

保存用于從指定的讀取數據的查詢es.resource。默認情況下,它不是設置/為空,這意味著將返回指定索引/類型下的全部數據。 es.query可以具有三種形式:

uri query

使用表格?uri_query,可以指定查詢字符串。注意開頭?。

query dsl

使用表單query_dsl-請注意,查詢dsl需要以此處開頭{和結尾,}如下所述

external resource

如果以上兩個都不匹配,elasticsearch-hadoop將嘗試將參數解釋為HDFS文件系統中的路徑。如果不是這種情況,它將嘗試從類路徑或從Hadoop加載資源(如果失?。〥istributedCache。資源應包含uri query或query dsl。

操作方式

es.input.json (默認為false)

輸入是否已經為JSON格式(默認)。有關直接使用JSON的更多詳細信息,請參見每個集成的相應部分。

es.write.operation (默認index)

應該執行彈性搜索-hadoop的寫操作-可以是以下任意一種:

index (默認)

添加新數據,同時替換(重新索引)現有數據(基于其ID)。

create

添加新數據-如果數據已經存在(基于其ID),則會引發異常。

update

更新現有數據(基于其ID)。如果找不到數據,則引發異常。

upsert

如果數據不存在,則 稱為合并或插入;如果數據存在(根據其ID),則更新。

es.output.json (默認為false)

連接器的輸出是否應為JSON格式(默認)。啟用后,文檔以原始JSON格式返回(從Elasticsearch返回)。有關直接使用JSON的更多詳細信息,請參見每個集成的相應部分。

es.ingest.pipeline (默認無)

索引或創建文檔時應作為目標的現有Elasticsearch Ingest管道的名稱。只有當這樣做可index和create操作; 與update或upsert操作不兼容。

映射(在寫入Elasticsearch時)

es.mapping.id (默認none)

包含文檔ID的文檔字段/屬性名稱。

es.mapping.parent (默認none)

包含文檔父級的文檔字段/屬性名稱。要指定常量,請使用格式。

es.mapping.join (默認none)

包含文檔聯接字段的文檔字段/屬性名稱。常量不被接受。文檔上的聯接字段必須包含作為字符串的父關系名稱,或包含子關系名稱及其父ID的對象。如果在使用此設置時標識了子文檔,則如果未在中配置其他路由,則文檔的路由將自動設置為父ID es.mapping.routing。

es.mapping.routing(默認取決于es.mapping.join)

包含文檔路徑的文檔字段/屬性名稱。要指定常量,請使用格式。如果使用指定了連接字段es.mapping.join,則默認為連接字段的父ID的值。如果未指定連接字段,則默認為無。

es.mapping.version (默認none)

包含文檔版本的文檔字段/屬性名稱。要指定常量,請使用格式。

es.mapping.version.type(默認取決于es.mapping.version)

指示使用的版本控制類型。如果es.mapping.version未定義(默認),則其值未指定。如果es.mapping.version指定,則其值為external。

es.mapping.ttl (默認none)

包含生存時間的文檔的文檔字段/屬性名稱。要指定常量,請使用格式。在Elasticsearch 6.0+索引版本上將不起作用,但是將繼續支持5.x索引版本及更低版本。

es.mapping.timestamp (默認none)

包含文檔時間戳記的文檔字段/屬性名稱。要指定常量,請使用格式。在Elasticsearch 6.0+索引版本上將不起作用,但是將繼續支持5.x索引版本及更低版本。

es.mapping.include (默認none)

要包含在發送給Elasticsearch的文檔中的字段/屬性。從實體中提取所需的數據很有用。語法類似于Elasticsearch include / exclude的語法??梢允褂枚禾栔付ǘ鄠€值。默認情況下,未指定任何值,表示包括所有屬性/字段。

指定es.mapping.include時es.input.json將忽略該功能。為了防止連接器索引隱式排除的數據,具有這些屬性沖突的任何作業都將拒絕執行!

es.mapping.exclude (默認none)

發送到Elasticsearch的文檔中要排除的字段/屬性。對于從實體中刪除不需要的數據很有用。語法類似于Elasticsearch include / exclude的語法??梢允褂枚禾栔付ǘ鄠€值。默認情況下,未指定任何值,表示不排除任何屬性/字段。

指定es.mapping.exclude時es.input.json將忽略該功能。為了防止連接器索引顯式排除的數據,具有這些屬性沖突的任何作業都將拒絕執行!

字段信息(從Elasticsearch中讀取時)

es.mapping.date.rich (默認為true)

是為Elasticsearch中的字段創建豐富的 Date類似對象,Date還是將它們作為原語(String或long)返回。默認情況下,這是正確的。實際的對象類型基于所使用的庫。noteable例外是地圖/減少其提供沒有內置Date對象,因此 LongWritable和Text無論此設置被返回。

es.read.field.include (默認為none)

從Elasticsearch讀取文檔時解析并考慮的字段/屬性。默認情況下為空,表示將考慮所有字段。請謹慎使用此屬性, 因為它可能會產生不良的副作用。通常用于某些返回文檔不適合預期映射的情況。

es.read.field.exclude (默認為none)

從Elasticsearch讀取文檔時丟棄的字段/屬性。默認情況下為空,表示不排除任何字段。請謹慎使用此屬性, 因為它可能會產生不良的副作用。通常用于某些返回文檔不適合預期映射的情況。

es.read.field.as.array.include (默認為none)

應視為數組/列表的字段/屬性。由于Elasticsearch可以將一個或多個值映射到一個字段,因此elasticsearch-hadoop無法從映射中確定是實例化一個值還是數組類型(取決于庫類型)。當遇到多個值時,elasticsearch-hadoop將自動使用數組/列表類型,但在嚴格的映射方案(如Spark SQL)中,這可能會導致意外的模式更改。語法類似于Elasticsearch include / exclude的語法。可以使用逗號指定多個值。默認情況下,未指定任何值,這意味著不包含任何屬性/字段。

es.read.field.as.array.exclude (默認為none)

不應視為數組/列表的字段/屬性。與es.read.field.as.array.include上面類似??梢允褂枚禾栔付ǘ鄠€值。默認情況下,未指定任何值,這意味著不排除任何屬性/字段(并且由于如上所述未包含任何屬性/字段),因此不會將任何字段預先視為數組。請注意,此設置不會影響嵌套字段,因為它們始終被視為數組。

元數據(從Elasticsearch讀取時)

es.read.metadata (默認為false)

是否在結果中包括文檔元數據(例如ID和版本)(默認)。

es.read.metadata.field (默認_metadata)

元數據信息所在的字段。當es.read.metadata設置為true時,將Map在指定字段下以形式返回信息。

es.read.metadata.version (默認為false)

是否在返回的元數據中包括文檔版本。僅在es.read.metadata啟用時適用。

更新設置(在寫入Elasticsearch時)

一種使用update或upsert操作的附加設置(與更新 API相似)可用:

es.update.script.inline (默認none)

用于更新文檔的內聯腳本。

es.update.script.file (默認none)

用于更新文檔的文件腳本的名稱。在6.x中刪除了文件腳本,因此,如果將其用于6.x及更高版本的群集,則此屬性將引發錯誤。

es.update.script.stored (默認none)

用于更新文檔的存儲腳本的標識符。

es.update.script.lang (默認none)

腳本語言。默認情況下,未指定應用節點配置的值。

es.update.script.params (默認none)

腳本參數(如果有)。使用值的文檔(當前已讀取)字段/屬性。要指定常量,請使用格式??梢酝ㄟ^逗號(,) 指定多個值

es.update.script.params.json

以rawJSON格式指定的腳本參數。指定的值將按原樣傳遞,而無需任何進一步的處理或過濾。通常用于遷移現有的更新腳本。

es.update.retry.on.conflict (默認為0)

發生沖突時重試文檔更新的次數。在并發環境中很有用。

高級

es.index.auto.create (默認true)

將數據寫入Elasticsearch或失敗時,elasticsearch-hadoop是否應創建索引(如果缺少索引)。

es.index.read.missing.as.empty (默認false)

elasticsearch-hadoop是否允許讀取不存在的索引(并返回空數據集)或不允許(并引發異常)

es.field.read.empty.as.null (默認true)

elasticsearch-hadoop是否會將空字段視為null。通常不需要此設置(因為elasticsearch-hadoop已經處理了null情況),但是啟用了此設置可以更輕松地處理尚未清除的文本字段。

es.field.read.validate.presence (默認warn)

為了幫助找出從Hadoop查詢數據時可能出現的錯誤(這會導致返回錯誤的數據),elasticsearch-hadoop可以執行驗證以發現缺失的字段和潛在的錯別字??赡艿闹禐椋?/p>

ignore

沒有執行驗證

warn

如果驗證失敗,則會記錄一條警告消息

strict

如果缺少字段,則會引發異常,從而停止工作

warn作業開始時,默認()會將任何輸入錯誤記錄到控制臺:

es.read.shard.preference (默認none)

執行滾動查詢時用于搜索操作的分片首選項的值。如果保留為空,則連接器將自動檢測何時使用分片_local首選項。當您需要直接控制在哪些節點上執行搜索操作時,這在熱/冷體系結構中最有用:

es.read.source.filter (默認none)

通常,當使用允許指定某種形式的架構(例如Hive)的集成時,連接器將自動從架構中提取字段名稱,并僅從Elasticsearch請求這些字段以節省帶寬。當使用不利用任何數據模式(例如常規MR和Spark)的集成時,此屬性允許您指定一個逗號分隔的字段名稱字符串,您希望從Elasticsearch返回。

如果es.read.source.filter設置為,則在連接器嘗試下推其他源字段篩選的情況下,將引發異常。在這些情況下,您應該清除此屬性,并相信連接器知道應返回哪些字段。這在SparkSQL,Hive中以及在Pig中指定架構時發生。

es.index.read.allow.red.status (默認為false)

當執行從Elasticsearch讀取的作業時,如果為讀取提供的資源中包含缺少碎片的索引,這些碎片導致群集的狀態為 red,則ES-Hadoop將通知您此狀態并快??速失敗。在作業必須繼續使用仍然可以訪問的剩余可用數據的情況下,用戶可以啟用此屬性來指示連接器忽略它無法到達的碎片。

使用es.index.read.allow.red.status可能導致作業在不完整的數據集上運行。與針對完全綠色或黃色群集執行的作業相比,針對紅色群集執行的作業將產生不一致的結果。請謹慎使用此設置。

es.input.max.docs.per.partition

從支持滾動切片(Elasticsearch v5.0.0及更高版本)的Elasticsearch集群中讀取時,此參數會建議連接器每個輸入分區應具有的最大文檔數是多少。連接器將采樣并估計要讀取的每個分片上的文檔數,并使用此屬性提供的值將每個分片劃分為輸入切片。此屬性是一個建議,而不是保證。不能保證每個分區的最終文檔數都低于該數字,而是接近此數字。如果您正在從不支持滾動切片的Elasticsearch集群中讀?。‥lasticsearch v5.0.0以下的任何版本),則將忽略此屬性。默認情況下,此值是未設置的,并且輸入分區是基于要讀取的索引中的分片數來計算的。

網絡

es.nodes.discovery (默認為true)

是在Elasticsearch集群中發現節點,還是僅使用給定es.nodes的元數據查詢節點。請注意,此設置僅在啟動期間適用;之后,在讀寫時,除非es.nodes.client.only啟用,否則elasticsearch-hadoop會使用目標索引分片(及其托管節點)。

es.nodes.client.only (默認為false)

是否使用Elasticsearch 客戶端節點(或負載均衡器)。啟用后,elasticsearch-hadoop將通過集群內的客戶端節點路由其所有請求(發現節點后,如果啟用)。請注意,這通常會大大降低節點并行度,因此默認情況下將其禁用。啟用它也會禁用(因為客戶端節點是非數據節點)。 es.nodes.data.only

es.nodes.data.only (默認為true)

是否僅使用Elasticsearch 數據節點。啟用后,elasticsearch-hadoop將通過集群內的數據節點路由其所有請求(在發現節點后,如果啟用)。此配置設置的目的是避免使非數據節點不堪重負,因為它們往往是“較小”的節點。默認情況下啟用。

es.nodes.ingest.only (默認為false)

是否僅使用Elasticsearch接收節點。當啟用時,elasticsearch-的Hadoop將路由所有通過它的請求(節點后發現,如果使能)攝取集群中的節點。此配置設置的目的是避免招致從非攝取節點轉發用于管道的數據的成本;僅在將數據寫入Ingest Pipeline時才真正有用(請參見es.ingest.pipeline上文)。

es.nodes.wan.only (默認為false)

該連接器是否用于WAN等云/受限環境中的Elasticsearch實例,例如Amazon Web Services。在這種模式下,連接器禁用發現,并且僅es.nodes在所有操作(包括讀寫)期間通過聲明的連接。請注意,在此模式下,性能會受到很大 影響。

es.nodes.resolve.hostname (有條件默認值false)

連接器是否應將節點主機名解析為IP地址。默認情況下,true除非wan啟用了模式(請參見上文),否則它將默認為false。

es.http.timeout (默認為1m)

HTTP / REST連接到Elasticsearch的超時。

es.http.retries (默認為3)

建立(斷開的)http連接的重試次數。重試適用于與Elasticsearch節點的每次對話。重試耗盡后,連接將自動重新引至下一個可用的Elasticsearch節點(基于的聲明es.nodes,后跟發現的節點-如果啟用)。

es.scroll.keepalive (默認10m)

結果的最大持續時間在查詢請求之間滾動。

es.scroll.size (默認為50)

每個請求每個人返回的結果/項目數。

es.scroll.limit (默認為-1)

每個單獨的滾動返回 的總結果/項目數。負值表示應返回所有匹配的文檔。請注意,這適用于通常綁定到其中一項任務的每個滾動。因此,返回的文檔總數為LIMIT * NUMBER_OF_SCROLLS (OR TASKS)

es.acad (默認15s)

在Elasticsearch-hadoop通知Hadoop任務仍在運行以防止任務重新啟動之前,導致任務超時。

設置HTTP請求頭

es.net.http.header.[HEADER-NAME]

通過使用es.net.http.header.前綴,您可以為所有來自elasticsearch-hadoop對Elasticsearch的請求提供HTTP標頭。請注意,一些標準的HTTP標頭的連接器保留以確保正確操作,不能由用戶設置或覆蓋(Accept并Content-Type為實例)。

安全設定

es.keystore.location

安全設置密鑰庫文件的位置(通常是一個URL,不帶前綴,它將被解釋為類路徑條目)。

es.net.http.auth.user

基本身份驗證用戶名

es.net.http.auth.pass

安全可靠。基本驗證密碼

SSL協議

es.net.ssl (默認為false)

啟用S??SL

es.net.ssl.keystore.location

密鑰庫(如果使用)位置(通常是一個URL,不帶前綴,它將被解釋為類路徑條目)

es.net.ssl.keystore.pass

安全可靠。密鑰庫密碼

es.net.ssl.keystore.type (默認為JKS)

密鑰庫類型。PK12是一種常見的替代格式

es.net.ssl.truststore.location

信任存儲位置(通常為URL,不帶前綴,將其解釋為類路徑條目)

es.net.ssl.truststore.pass

安全可靠。信任庫密碼

es.net.ssl.cert.allow.self.signed (默認為false)

是否允許自簽名證書

es.net.ssl.protocol(默認TLS)

使用的SSL協議

代理

es.net.proxy.http.host

HTTP代理主機名

es.net.proxy.http.port

HTTP代理端口

es.net.proxy.http.user

HTTP代理用戶名

es.net.proxy.http.pass

安全可靠。HTTP代理密碼

es.net.proxy.http.use.system.props(默認true)

是否使用系統的Http代理屬性(即http.proxyHost和http.proxyPort)

es.net.proxy.https.host

HTTPS代理主機名

es.net.proxy.https.port

HTTPS代理端口

es.net.proxy.https.user

Https代理用戶名

es.net.proxy.https.pass

安全可靠。HTTPS代理密碼

es.net.proxy.https.use.system.props(默認true)

是否使用系統的Https代理屬性(即https.proxyHost和https.proxyPort)

es.net.proxy.socks.host

HTTP代理主機名

es.net.proxy.socks.port

HTTP代理端口

es.net.proxy.socks.user

HTTP代理用戶名

es.net.proxy.socks.pass

安全可靠。HTTP代理密碼

es.net.proxy.socks.use.system.props(默認true)

是否使用系統的Socks代理屬性(即socksProxyHost和socksProxyHost)

elasticsearch-hadoop允許使用上述設置將代理設置僅應用于其連接。當已經有JVM范圍的代理設置(通常通過系統屬性)時,請格外小心,以避免意外行為。重要說明:這些屬性的語義在JVM 文檔中進行了描述。在某些情況下,將JVM屬性設置java.net.useSystemProxies 為true更好的效果然后再手動設置這些屬性。

序列化

es.batch.size.bytes (默認為1mb)

使用Elasticsearch 批量 API的批量寫入的大?。ㄒ宰止潪閱挝唬?。請注意,批量大小是按任務實例分配的。始終乘以Hadoop作業中的任務數,以在運行時達到Elasticsearch的總批量大小。

es.batch.size.entries (默認為1000)

使用Elasticsearch 批量 API的批量寫入的大?。ㄒ詶l目為單位)-(0禁用它)。與的伴侶es.batch.size.bytes,一旦匹配,便執行批量更新。與大小類似,此設置是針對每個任務實例的。它在運行時乘以正在運行的Hadoop任務總數。

es.batch.write.refresh (默認為true)

批量更新完成后 是否調用索引刷新。請注意,只有在執行了整個寫入(意味著多次批量更新)之后才調用此方法。

es.batch.write.retry.count (默認為3)

給定批次的重試次數,以防Elasticsearch超載且數據被拒絕。請注意,僅重試拒絕的數據。重試執行后,如果仍然有數據被拒絕,則Hadoop作業將被取消(并失?。X撝当硎緹o限次重試;設置該值時要小心,因為它可能會產生有害的副作用。

es.batch.write.retry.wait (默認10s)

由批量拒絕引起的批寫入重試之間等待的時間。

es.ser.reader.value.class(默認值取決于所使用的庫)

ValueReader用于將JSON轉換為對象 的實現的名稱。這是由框架根據所使用的庫(Map / Reduce,Hive,Pig等)設置的。

es.ser.writer.value.class(默認值取決于所使用的庫)

ValueWriter用于將對象轉換為JSON 的實現的名稱。這是由框架根據所使用的庫(Map / Reduce,Hive,Pig等)設置的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容