本節簡要描述如下鍵鑽配置任務,並提供連接配置過程:node
內存配置apache
多組用戶配置併發
性能和功能配置函數
查詢配置文件數據存儲配置性能
內存配置 測試
使用鑽時,您須要提供足夠的內存鑽單獨或在運行時其餘工做負載集羣。在下一節中, 「配置鑽記憶」 描述如何爲鑽集羣配置鑽內存集羣。ui
多租戶配置 操作系統
您能夠爲多租戶集羣配置資源或共享一個Drillbit在一個集羣中。線程
性能和功能配置 code
您還能夠修改選項對性能或功能。例如,更改默認的存儲格式是一個典型的功能變化。ctanging的默認存儲格式是典型的改變函數。CTAS聲明默認存儲格式是Parquet。使用一個配置選項,您能夠修改鑽存儲的輸出數據用CSV或JSON格式。這個部分,「配置選項介紹」總結了你能夠配置的許多選項。
查詢配置文件數據存儲配置
爲了不問題使用Web控制檯,您須要配置管理員PStore。
←配置鑽 配置鑽內存→
2016年2月6日
您能夠配置的直接分配的內存數量分配給Drillbit查詢處理的任何鑽集羣,多用戶組或者單用戶。 的默認內存Drillbit是 8G,但16G更好,或者更高,這取決於工做負載。Drillbit分配查詢操做不能超過直接內存的總量這個限制。
鑽機使用Java直接內存和執行操做在內存中時表現良好,而不是存儲在磁盤上的操做。鑽不寫入磁盤,除非絕對必要,不像MapReduce,在每一個階段全部工做都寫入磁盤。
JVM的堆內存並不限制直接可用的Drillbit內存。鑽的堆內存一般是設定在4-8G(默認值是4),它應該足夠了,由於鑽避免數據坐在堆內存。
1.5的鑽頭,鑽使用一個新的分配器,提升操做員的使用直接存儲器和更準確地跟蹤內存使用。 因爲這一變化,操做符(在查詢中,成功地在之前版本)可能沒有足夠的內存,致使失敗的查詢和內存不足錯誤而不是溢出到磁盤上。
planner.memory.max_query_memory_per_node系統選項值集直接分配最大容許的內存給每一個查詢操做符在一個節點上。若是一個查詢計劃包含多個運營商,他們都分享這個內存。用短的操做符運行查詢時若是遇到內存問題,增長這個選項的值。若是您在增長內存以後繼續遇到內存問題,你也能夠減小planner.width.max_per_node選項的值選擇減小每一個節點級別的並行性。然而,這可能會增長一個查詢所需的時間來完成。
修改Drillbit記憶
您能夠修改內存中的每一個Drillbit節點集羣。修改內存Drillbit,啓動Drillbit腳本,編輯 XX:MaxDirectMemorySize參數, drill-env.sh,位於 < drill_installation_directory > / conf.
請注意 若是XX:MaxDirectMemorySize沒有設置,限制取決於可用的系統內存的數量。
在您編輯< drill_installation_directory > / conf / drill-env.sh
以後,在節點上從新啓動Drillbit。
關於Drillbit啓動腳本
drill-env.sh 文件包含如下選項:
DRILL_MAX_DIRECT_MEMORY="8G" DRILL_MAX_HEAP="4G" export DRILL_JAVA_OPTS="-Xms1G -Xmx$DRILL_MAX_HEAP -XX:MaxDirectMemorySize=$DRILL_MAX_DIRECT_MEMORY -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=1G -ea"
DRILL_MAX_DIRECT_MEMORY 是Java直接內存限制每一個節點。
DRILL_MAX_HEAP是JVM堆的最大理論限制JVM每一個節點。
Xmx是爲Java虛擬機(JVM)指定的最大內存分配池。
Xms指定初始內存分配池。
若是性能是一個問題,用-Dbounds = false代替-ea flag,如如下示例所示:
export DRILL_JAVA_OPTS="-Xms1G -Xmx$DRILL_MAX_HEAP -XX:MaxDirectMemorySize=$DRILL_MAX_DIRECT_MEMORY -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=1G -Dbounds=false"
←配置鑽的介紹 配置一個多租戶集羣→
Configuring a Multitenant Cluster Introduction
鑽支持多個用戶共享一個Drillbit和運行Drillbits分開在不一樣的集羣中的節點。鑽一般沿着其餘工做負載,包括如下:
Mapreduce
Yarn
HBase
Hive和Pig
Spark
爲使用與鑽頭和其餘工做負載您須要計劃和配置下面的源:
內存
CPU
磁盤
←集羣配置一個多組用戶 配置多用戶資源→
2015年12月29日
鑽機操做是內存和cpu密集型。目前,鑽資源被外部的任何集羣管理服務管理。在多組戶或任何其餘類型的集羣,YARN-enabled與否,你配置內存和鑽經過修改配置drill-env.sh文件描述在 「配置鑽內存」限制使用內存。
配置一個多租戶集羣管理器來考慮鑽井所需的資源。配置 drill-env.sh爲鑽使用執行查詢分配資源。它可能須要配置的集羣管理器提交其餘進程的資源。
在YARN-enabled集羣配置鑽
添加鑽YARN-enabled集羣,改變內存資源來知足您的應用程序。 如,你有128 g的可用內存,分配一下工做負載在Yarn-enabled集羣:
文件系統= 20G
HBase = 20G
OS操做系統= 8G
Yarn= ? Drill= ?
例如,若是Yarn作的大部分工做,給鑽20G,給Yarn 60G。 若是你指望一個沉重的查詢負載,給鑽60G和Yarn20G。
YARN包含兩個主要的服務:
ResourceManager
一個集羣中至少有一個實例在,若是您配置高可用性。
NodeManager
每一個節點有一個實例。
配置NodeManager和ResourceManager爲YARN運行服務從新配置所需的總內存。若是你想放置上限內存集YARN_NODEMANAGER_HEAPSIZE或YARN_RESOURCEMANAGER_HEAPSIZE環境變量。不設置 - xmx選項容許堆生長做爲須要。
MapReduce的資源
修改MapReduce內存來知足應用程序的需求。剩餘的內存一般給YARN應用程序。
如何管理鑽CPU資源
目前,你不能在鑽內管理CPU資源。使用Linux cgroups管理CPU資源。
如何管理磁盤資源
planner.add_producer_consumer系統選項啓用或禁用一個二級讀線程,把從磁盤預取的其餘掃描的碎片編成捆。若是你與一個緩慢或不預取數據特定類型的存儲媒體,這個選項告訴鑽添加一個生產者消費者閱讀線程來操做。鑽能夠分配一個線程,專一於一個單一的閱讀片斷。若是鑽使用內存,你能夠禁用這個選項來得到更好的性能。若是鑽機使用的磁盤空間,你應該啓用這個選項和爲planner.producer_consumer_queue_size選項設置一個合理的隊列大小。 關於這些選項的更多信息,請參閱部分, 「性能調優」。
←集羣配置一個多組用戶的介紹 配置Drillbit資源共享→
管理集羣中多個用戶共享一個Drillbit,配置鑽隊和添加到內存並行,如前一節所述, 「配置鑽內存」。
配置查詢隊列
設置sys.options選項啓用和管理查詢排隊,默認狀況下是關閉的。有兩種類型的隊列:大型和小型。你配置一個最大數量的查詢,每一個隊列容許經過配置在sys.options表的如下選項:
exec.queue.large
exec.queue.small
exec.queue.threshold
exec.queue.threshold設置成本閾值來肯定查詢的大或小是否基於複雜性。複雜的查詢有更高的閾值。默認的,30,000,000,表明行估計的一個查詢過程。序列化傳入的查詢,設置在0小隊列和在0閾值。
有關更多信息,請參見章節, 「性能調優」 。
配置並行化
默認狀況下,鑽大相徑庭的操做當操縱在一個片斷的記錄數量達到100000人。當並行操做較高,集羣運做盡量快,這是對單個用戶。在一個有爭議的多租戶狀況下,然而,你須要減小並行化水平基於用戶需求。
並行配置過程
配置並行化、在sys.options表配置如下選項:
planner.width.max_per_node
查詢的最大程度的分佈在覈和集羣節點。
planner.width.max_per_query
做爲每一個最大的節點但同樣也適用於查詢執行的整個集羣。
planner.width.max_per_node
配置planner.width.max_per_node
實現細粒,絕對控制並行化。在這種背景下寬度指分列或潛在分佈:可以並行在覈中心節點和節點集羣上是運行一個查詢。物理計劃由中間操做,稱爲查詢「碎片」,併發運行,在計劃中爲並行中上下的每一個交易操做符產生機會。一個交易操做符表明在執行流程能夠分佈處理一個斷點。例如,單個進程掃描一個文件可能流入一個交易所運營商,緊隨其後的是一個多進程聚合片斷。
每一個節點的最大寬度定義了最大程度的並行查詢的任何片斷,但設置適用於水平集羣中的一個節點。 的 默認的 最大程度的並行計算每一個節點以下,與理論最大值自動縮減(四捨五入),所以只有70%的實際可用容量考慮:活躍drillbits(一般每一個節點一個)每一個節點的核數 0.7
例如,在一個單節點測試系統啓用了2核和超線程:1 4 0.7 = 3
當你修改默認設置,你能夠提供任何有意義的數字。 系統不會自動縮小您的設置。
planner.width.max_per_query
max_per_query值還設置的最大並行度對於任何給定的查詢階段,但設置適用於整個集羣執行的查詢(多個節點)。 事實上,實際的最大寬度/查詢 最小的兩個值 : min((number of nodes * width.max_per_node), width.max_per_query)
例如,4-node集羣上 width.max_per_node設置爲6和 width.max_per_query設置爲30:min((4 * 6),30)= 24
在這種狀況下,每一個查詢有效的最大寬度是24,不是30年前。
數據隔離
租戶可使用鑽視圖和模擬在集羣上共享數據。
←配置多租戶資源 配置用戶模擬→