国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

在HDFS上運行Solr

2018-12-21 11:26 更新

Solr支持將其索引和事務日志文件寫入和讀取到HDFS分布式文件系統(tǒng)。

這不使用Hadoop MapReduce來處理Solr數(shù)據(jù),而只是使用HDFS文件系統(tǒng)進行索引和事務日志文件存儲。要使用Hadoop MapReduce處理Solr數(shù)據(jù),請參閱Solr contrib區(qū)域中的MapReduceIndexerTool。

要使用HDFS而不是本地文件系統(tǒng),您必須使用Hadoop 2.x,并且需要指示Solr使用HdfsDirectoryFactory。還有幾個要定義的附加參數(shù)。這些可以通過以下三種方式之一進行設置:

  • 將JVM參數(shù)傳遞給bin/solr腳本。每次使用bin/solr啟動Solr時都需要傳遞這些信息。
  • 修改solr.in.sh(或在Windows上為solr.in.cmd),以在使用bin/solr時自動傳遞JVM參數(shù),而無需手動設置它們。
  • 定義solrconfig.xml中的屬性。對于每個集合,都需要重復這些配置更改,因此,如果您只希望將某些集合存儲在HDFS中,那么這是一個很好的選擇。

在HDFS上啟動Solr

獨立的Solr實例

對于獨立的Solr實例,在啟動Solr之前,應該確保修改一些參數(shù)。這些可以在solrconfig.xml中設置(下面的更多內容),或者在啟動時傳遞給bin/solr腳本。

  • 您需要使用HdfsDirectoryFactory和表單hdfs://host:port/path的一個數(shù)據(jù)目錄
  • 您需要指定表單hdfs://host:port/path的UpdateLog位置
  • 您應該指定一個鎖工廠類型'hdfs'或沒有。

如果不修改solrconfig.xml,則可以使用以下命令在HDFS上啟動Solr:

bin/solr start -Dsolr.directoryFactory=HdfsDirectoryFactory
     -Dsolr.lock.type=hdfs
     -Dsolr.data.dir=hdfs://host:port/path
     -Dsolr.updatelog=hdfs://host:port/path

這個例子將以獨立模式啟動Solr,使用定義的JVM屬性(在下面更詳細地解釋)。

SolrCloud實例

在SolrCloud模式中,最好將數(shù)據(jù)和更新日志目錄保留為Solr自帶的默認值,并簡單地指定solr.hdfs.home。所有動態(tài)創(chuàng)建的集合將在solr.hdfs.home根目錄下自動創(chuàng)建相應的目錄。

  • 在hdfs://host:port/path表單中設置solr.hdfs.home
  • 您應該指定一個鎖工廠類型'hdfs'或沒有。
bin/solr start -c -Dsolr.directoryFactory=HdfsDirectoryFactory
     -Dsolr.lock.type=hdfs
     -Dsolr.hdfs.home=hdfs://host:port/path

該命令使用定義的JVM屬性以SolrCloud模式啟動Solr。

修改solr.in.sh(* nix)或solr.in.cmd(Windows)

上面的例子假設您每次使用bin/solr啟動Solr的時候都會傳遞JVM參數(shù)作為start命令的一部分。但是,bin/solr查找名為solr.in.sh(在Windows上為solr.in.cmd)的包含文件來設置環(huán)境變量。默認情況下,該文件位于bin目錄中,您可以對其進行修改以永久添加HdfsDirectoryFactory設置,并確保每次啟動Solr時都使用它們。

例如,要將JVM參數(shù)設置為在SolrCloud模式下運行時始終使用HDFS(如上所示),則可以添加一個如下所示的部分:

# Set HDFS DirectoryFactory & Settings
-Dsolr.directoryFactory=HdfsDirectoryFactory \
-Dsolr.lock.type=hdfs \
-Dsolr.hdfs.home=hdfs://host:port/path \

塊緩存

為了提高性能,HdfsDirectoryFactory使用一個將緩存HDFS塊的目錄。這種緩存機制是為了替代Solr所使用的標準文件系統(tǒng)緩存。默認情況下,此緩存分配在堆外。此緩存通常需要相當大,您可能需要提高您正在運行Solr的特定JVM的堆內存限制。對于Oracle / OpenJDK JVM,以下是一個示例命令行參數(shù),您可以使用它在啟動Solr時提高限制:

-XX:MaxDirectMemorySize=20g

HdfsDirectoryFactory參數(shù)

HdfsDirectoryFactory 有許多設置,它們被定義為 directoryFactory 配置的一部分。

Solr HDFS設置

solr.hdfs.home

Solr將集合數(shù)據(jù)寫入HDFS中的根位置。不是為數(shù)據(jù)目錄或更新日志目錄指定HDFS位置,而是使用此位置來指定一個根位置,并在該HDFS位置中自動創(chuàng)建一切。這個參數(shù)的結構是hdfs://host:port/path/solr。

塊緩存設置

solr.hdfs.blockcache.enabled

啟用塊緩存。默認是true。

solr.hdfs.blockcache.read.enabled

啟用讀緩存。默認是true。

solr.hdfs.blockcache.direct.memory.allocation

啟用直接內存分配。如果為false,則使用堆。默認是true

solr.hdfs.blockcache.slab.count

要分配的內存塊的數(shù)量。每個平板大小為128 MB。默認是1。

solr.hdfs.blockcache.global

為所有SolrCores啟用/禁用一個全局緩存。使用的設置將來自第一個創(chuàng)建的HdfsDirectoryFactory。默認是true

NRTCaching目錄設置

solr.hdfs.nrtcachingdirectory.enable

true | 啟用NRTCachingDirectory的使用。默認是true。

solr.hdfs.nrtcachingdirectory.maxmergesizemb

NRTCachingDirectory最大段大小的合并。默認是16。

solr.hdfs.nrtcachingdirectory.maxcachedmb

NRTCachingDirectory最大緩存大小。默認是192。

HDFS客戶端配置設置

solr.hdfs.confdir

傳遞HDFS客戶端配置文件的位置 - 例如HDFS HA所需的位置。

Kerberos身份驗證設置

在嘗試訪問像 HDFS 這樣的核心服務時,可以將Hadoop配置使用Kerberos協(xié)議來驗證用戶身份。如果您的HDFS目錄使用Kerberos進行保護,那么您需要配置Solr的HdfsDirectoryFactory,以使用Kerberos進行身份驗證,以讀取和寫入HDFS。要從Solr啟用Kerberos身份驗證,您需要設置以下參數(shù):

solr.hdfs.security.kerberos.enabled

設置為true,則表示啟用Kerberos身份驗證。默認是false。

solr.hdfs.security.kerberos.keytabfile

密鑰表文件包含Kerberos主體和加密密鑰對,當Solr嘗試使用安全的Hadoop進行身份驗證時,允許進行無密碼驗證。

此文件將需要在此參數(shù)中提供的相同路徑上的所有Solr服務器上存在。

solr.hdfs.security.kerberos.principal

Solr應使用Kerberos主體進行身份驗證以確保Hadoop安全;典型的Kerberos V5主體的格式是:primary/instance@realm。

用于HDFS的示例solrconfig.xml

以下是solrconfig.xml在HDFS上存儲Solr索引的示例配置:

<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
  <str name="solr.hdfs.home">hdfs://host:port/solr</str>
  <bool name="solr.hdfs.blockcache.enabled">true</bool>
  <int name="solr.hdfs.blockcache.slab.count">1</int>
  <bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
  <int name="solr.hdfs.blockcache.blocksperbank">16384</int>
  <bool name="solr.hdfs.blockcache.read.enabled">true</bool>
  <bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
  <int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
  <int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
</directoryFactory>

如果使用Kerberos,則需要將三個與Kerberos相關的屬性添加到solrconfig.xml中的<directoryFactory>元素,例如:

<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
   ...
  <bool name="solr.hdfs.security.kerberos.enabled">true</bool>
  <str name="solr.hdfs.security.kerberos.keytabfile">/etc/krb5.keytab</str>
  <str name="solr.hdfs.security.kerberos.principal">solr/admin@KERBEROS.COM</str>
</directoryFactory>

在SolrCloud中自動添加副本

在HDFS中運行Solr的一個好處是,當監(jiān)督注意到碎片已經停止時,能夠自動添加新的副本。由于“gone”的索引分片存儲在HDFS中,所以會創(chuàng)建一個新的核心,新的核心將指向HDFS中現(xiàn)有的索引。

在共享文件系統(tǒng)上使用 autoAddReplicas = true 創(chuàng)建的集合自動添加了啟用的副本。以下設置可用于重寫 <solrcloud> solr. xml 部分中的默認值。

autoReplicaFailoverWorkLoopDelay

監(jiān)督團隊檢查之間的時間(以毫秒為單位)檢測并可能采取行動建立替代復制品。默認是10000。

autoReplicaFailoverWaitAfterExpiration

在首次發(fā)現(xiàn)替換副本之后,等待啟動替換副本的最短時間(以毫秒為單位)。這對于在停止或啟動群集時防止誤報很重要。默認是30000

autoReplicaFailoverBadNodeExpiration

延遲(以毫秒為單位)之后,標記為關閉的副本將被標記為未標記。默認是60000。

暫時禁用整個群集的autoAddReplicas

在群集上進行脫機維護, 以及在管理員希望臨時禁用自動添加副本的各種其他用例中, 以下 api 將禁用和重新啟用群集中所有集合的 autoAddReplicas:
通過將群集屬性 autoAddReplicas 設置為 false, 禁用自動添加副本群集的功能:


在群集上進行脫機維護時,以及在管理員想暫時禁用自動添加副本的各種其他用例中,以下API將禁用并重新啟用群集中所有集合的 autoAddReplicas :

通過將群集屬性autoAddReplicas設置為false,禁用自動添加副本群集的功能:

http://localhost:8983/solr/admin/collections?action=CLUSTERPROP&name=autoAddReplicas&val=false

通過取消 autoAddReplicas 群集屬性 (如果未提供 val 參數(shù),則不設置群集屬性),重新啟用自動添加副本 (對于那些用 autoAddReplica = true 創(chuàng)建的集合):

http://localhost:8983/solr/admin/collections?action=CLUSTERPROP&name=autoAddReplicas
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號