天天看點

不用Cloudera Manager安裝Cloudera SearchCloudera Search介紹環境安裝 Hadoop叢集安裝 ZooKeeper安裝 Solr配置 Solr啟動 Solr建立 Solr 運作時配置配置 hbase-solr-indexer總結

cloudera search 用來在 hadoop 基礎上建立索引和全文檢索,本文主要記錄如何安裝 cloudera search 的過程,其中也包括如何安裝和啟動 zookeeper、solr、mapreduce等工具和服務。

cloudera search 核心部件包括 hadoop 和 solr,後者建立在 lucene 之上;而 hadoop 也正是在06年正式成為 lucene 的一個子項目而發展起來的。

通過 tika, cloudera search 支援大量的被廣泛使用的檔案格式;除此之外,cloudera search 還支援很多其他在hadoop應用中常用的資料,譬如 avro, sequencefile, 日志檔案等。

用來建立索引和全文檢索的資料可以是來自于 hdfs,譬如日志檔案,hive 或者 hbase 的表等等(通過內建 ngdata 的 lily 項目,對 hbasae 的支援工作也在進行中)。或者通過結合使用 flume 采集于外部資料源,通過一個新支援的 flume sink 直接寫到索引庫裡;同時還可以充分利用 flume 來對要建立索引的資料進行各種預處理,譬如轉換,提取建立中繼資料等。

建立的索引存儲于 hdfs。這給搜尋帶來了易于擴充,備援和容錯的好處。此外,我們還可以運作 mapreduce 來對我們所需要檢索的資料進行索引,提供給 solr。

作業系統:<code>centos6.5</code>

hadoop:<code>cdh5.3.0</code>

在三個節點上安裝 solr-server:

安裝 spark indexer:

安裝 mapreduce tools:

安裝 lily hbase indexer:

注意:lily hbase indexer和 cdh5 工作的時候,你需要在運作 mapreduce 任務之前運作下面指令: <code>export hadoop_classpath=&lt;path to hbase-protocol-**.jar&gt;</code>

修改 solr 配置檔案 <code>/etc/default/solr</code> 中 zookeeper 連接配接位址:

修改 solr 配置檔案 <code>/etc/default/solr</code> 中 hdfs 連接配接位址:

設定 hdfs 配置檔案目錄:

如果你配置了 kerberos,則在 kerberos 伺服器上為每個安裝 solr 的節點先生成 solr 的憑證:

然後,将 solr.keytab 拷貝到 /etc/solr/conf:

最後,修改每個安裝了 solr 節點的 /etc/default/solr,例如在 cdh1節點上修改為:

在 hdfs 中建立 <code>/solr</code> 目錄:

如果開啟了 kerberos,則先擷取 hdfs 服務的憑證在運作:

內建 sentry,取消 /etc/default/solr 下面注釋:

內建 hue,取消 /etc/default/solr 下面注釋:

初始化 zookeeper namespace:

注意:你可以添加 <code>--force</code> 參數強制清空 zookeeper 資料,清空之前,請先停止 zookeeper 叢集。

在每一個安裝了 solr server 的節點上運作:

通過下面指令檢視 solr 是否啟動成功:

上面用到了 solrctl 指令,該指令用來管理 solrcloud 的部署和配置,其文法如下:

可選參數有:

<code>--solr</code>:指定 solrcloud 的 web api,如果在 solrcloud 叢集之外的節點運作指令,就需要指定該參數。

<code>--zk</code>:指定 zk 叢集位址。

<code>--help</code>:列印幫助資訊。

<code>--quiet</code>:靜默模式運作。

command 指令有:

<code>init [--force]</code>:初始化配置。

<code>instancedir</code>:維護實體目錄。可選的參數有:

<code>--generate path</code>

<code>--create name path</code>

<code>--update name path</code>

<code>--get name path</code>

<code>--delete name</code>

<code>--list</code>

<code>collection</code>:維護 collections。可選的參數有:

<code>--create name -s &lt;numshards&gt; [-c &lt;collection.configname&gt;] [-r &lt;replicationfactor&gt;] [-m &lt;maxshardspernode&gt;] [-n &lt;createnodeset&gt;]]</code>

<code>--delete name</code>: deletes a collection.

<code>--reload name</code>: reloads a collection.

<code>--stat name</code>: outputs solrcloud specific run-time information for a collection.

``–list`: lists all collections registered in solrcloud.

<code>--deletedocs name</code>: purges all indexed documents from a collection.

<code>core</code>:維護 cores。可選的參數有:

<code>--create name [-p name=value]...]</code>

<code>--reload name</code>: reloads a core.

<code>--unload name</code>: unloads a core.

<code>--status name</code>: prints status of a core.

<code>cluster</code>:維護叢集配置資訊。可選的參數有:

<code>--get-solrxml file</code>

<code>--put-solrxml file</code>

在一個節點上(例如 cdh1)生成配置檔案:

注意:你可以在 <code>/var/lib/solr</code> 建立目錄,維護配置檔案。

執行完之後,你可以修改 $home/solr_configs/conf 目錄下的配置檔案,其目錄下檔案如下。

建立 collection1 執行個體并将配置檔案上傳到 zookeeper:

你可以通過下面指令檢視上傳的 instance:

上傳到 zookeeper 之後,其他節點就可以從上面下載下傳配置檔案。

接下來,還是在 cdh1 節點上建立 collection,因為我的 solrcloud 叢集有三個節點,故這裡分片數設為3,并設定副本為1,如果有更多節點,可以将副本設定為更大的一個數:

1)開啟 hbase replication

lily hbase indexer 的實作依賴于 hbase的replication,故需要開啟複制。将 <code>/usr/share/doc/hbase-solr-doc*/demo/hbase-site.xml</code>檔案的内容拷貝到 <code>hbase-site.xml</code>,注意:删除掉 <code>replication.replicationsource.implementation</code> 參數配置。

2)将 hbase-solr-indexer 服務指向 hbase 叢集

修改 <code>/etc/hbase-solr/conf/hbase-indexer-site.xml</code>,添加如下參數,其值和 <code>hbase-site.xml</code> 中的 <code>hbase.zookeeper.quorum</code> 屬性值保持一緻(注意添加上端口):

最後再重新開機服務:

本文内容主要介紹了如何不使用 cloudera manager 來安裝 cloudera search,下篇文章将介紹如何使用 cloudera search。

繼續閱讀