1. 程式人生 > >用兩臺物理機搭建storm叢集

用兩臺物理機搭建storm叢集

1 安裝zookeeper

    zookeeper是一個分散式協作的Apache hadoop專案,它提供了分散式同步,選舉leader等功能,解決了分散式應用中的資料管理問題。

sudo tar -C /opt -zxvf zookeeper-3.4.9.tar.gz
  • 在/etc/profile新建環境變數
export ZK_HOME=/opt/zookeeper-3.4.9
export PATH=$ZK_HOME/bin:$JAVA_HOME/bin:$MYSQL_HOME/bin:$TOMCAT_HOME/bin:$SQLITE_HOME/bin:$M2_HOME/bin:$PATH

    要使得該環境變數生效,則必須在當前終端下執行

source /etc/profile
  • 修改zookeeper的配置檔案
        zookeeper的預設配置檔案是$ZK_HOME/conf/zoo.cfg。但是tarball只提供了zoo_sample.cfg的樣例,我們必須新增這個配置檔案。
cd $ZK_HOME/conf
sudo cp zoo_sample.cfg zoo.cfg

    我們當然可以使用上面的預設配置,而且該配置就足夠了。我個人修改zoo.cfg的dataDir,讀者可以根據自己的喜好修改。

dataDir=/var/zookeeper

    這時就要建立該目錄,而且要修改許可權,使得當前使用者能夠在該目錄下建立檔案。

sudo mkdir /var/zookeeper
sudo chmod a+w /var/zookeeper

    注意,這裡a不能省略,否則other可能仍然沒有寫許可權。

  • 啟動和停止zookeeper
zkServer.sh start
zkServer.sh stop

2 安裝storm

    nimbus和supervisor上都必須安裝storm依賴庫,然後再安裝storm。zeromq提供分散式環境下的傳輸層的通訊機制,是一個網路庫。但是0.9的storm使用了Netty。jzmq是zeromq的Java繫結。

2.1 安裝依賴庫

tar -C /tmp -zxvf zeromq-4.0
.3.tar.gz cd /tmp/zeromq-4.0.3 ./configure make sudo make install

    如果make出錯,可能要建立一些檔案。同時還要安裝一些工具,如libtool。

  • 安裝jzmq
        安裝過程和上述類似。下載jzmq.tgz
tar -C /tmp -zxvf jzmq.tgz
cd /tmp/jzmq
./autogen.sh
./configure
make
sudo make install

2.2 安裝storm

    storm的安裝與zookeeper的安裝十分類似。storm是一個實時大資料處理框架,具有容錯性,易於擴充套件等優點。它支援本地模式和遠端模式,在本地模式下可以進行開發和測試,而遠端模式是生產模式,將拓撲提交到storm叢集中。但它只有一個nimbus節點(主節點,守護程序),支援多個supervisor節點(工作節點,守護程序),中間通過多個zookeeper節點來儲存分散式的資訊。一個supervisor節點可以可能有4個work節點,而一個worker節點是一個java程序,裡面將執行多個executor執行緒,也就是task,一般是spout或者bolt。

sudo tar -C /opt -zxvf apache-storm-0.9.5.tar.gz
  • 在/etc/profile新建環境變數
export STORM_HOME=/opt/apache-storm-0.9.5
export PATH=$STORM_HOME/bin:$ZK_HOME/bin:$JAVA_HOME/bin:$MYSQL_HOME/bin:$TOMCAT_HOME/bin:$SQLITE_HOME/bin:$M2_HOME/bin:$PATH

    要使得該環境變數生效,則必須在當前終端下執行

source /etc/profile
  • 修改配置檔案storm.yaml
        在$STORM_HOME/conf/storm.yaml最後新增一行
storm.local.dir: "/var/stormData"

    建立/var/stormData

sudo mkdir /var/stormData
sudo chmod a+w /var/stormData

    其他設定將使用/opt/apache-storm-0.9.5/lib/storm-core.0.9.5.jar下的defaults.yaml的配置,也就是預設的庫在/usr/local/lib/,我們手動make的zeromq和jzmq都在這個裡面。這樣配置只能以nimbus啟動,而且zookeeper也在這臺機器上執行(監聽2181埠)。而要以supervisor啟動,則其storm.yaml必須指定nimbus和zookeeper的IP。預設supervisor有4個worker,埠分別是6700 ~ 6703。

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers:
     - "192.168.43.209"  #指定zookeeper的IP
#     - "server2"
# 
 nimbus.host: "192.168.43.209"#指定nimbus的IP
# 
# 
# ##### These may optionally be filled in:
#    
## List of custom serializations
# topology.kryo.register:
#     - org.mycompany.MyType
#     - org.mycompany.MyType2: org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
#     - org.mycompany.MyDecorator
#
## Locations of the drpc servers
# drpc.servers:
#     - "server1"
#     - "server2"

## Metrics Consumers
# topology.metrics.consumer.register:
#   - class: "backtype.storm.metric.LoggingMetricsConsumer"
#     parallelism.hint: 1
#   - class: "org.mycompany.MyMetricsConsumer"
#     parallelism.hint: 1
#     argument:
#       - endpoint: "metrics-collector.mycompany.org"
 storm.local.dir: "/var/stormData"
  • 修改logs的許可權
        修改$STORM_HOME/logs的許可權,使得可以建立日誌。
sudo mkdir $STORM_HOME/logs
sudo chmod a+w $STORM_HOME/logs

3 啟動叢集

    一臺機器(假設IP為192.168.43.209)安裝zookeeper和storm,作為nimbus啟動,同時啟動ui服務,使得可以訪問http://192.168.43.209:8080監控topology的狀態:

zkServer.sh start
storm nimbus &
storm ui &

    另一臺機器安裝storm,但必須指定nimbus和zookeeper,如上面的storm.yaml,作為supervisor啟動。啟動如下:

storm supervisor &

    事實上,我們可以把zookeeper和nimbus分開在不同的機器上執行,可以有多臺機器執行zookeeper,可以有多臺機器執行supervisor(只要安裝了storm,並指定nimbus和zookeeper),從而增強平行計算的能力。

4 提交併執行拓撲

    這裡使用單詞計數的程式,但storm的版本必須和安裝的一致,如都是apache-storm-0.9.5。如果依賴和叢集的storm版本不一致,可能會出錯!!!另外,本人在使用apache-storm-1.0.2.tar.gz版本執行不起來,提示缺少backtype,或者出現重複的jar包。所以最後考慮使用apache-storm-0.9.5.tar.gz,在lib/storm-core-0.9.5.jar下有這個java包。
    在執行nimbus的機器下下載StormDemo.tar.gz,並解壓,提交target目錄下的jar。

storm jar target/StormDemo-1.0-SNAPSHOT.jar com.stormdemo.MyTopology 2

    注意,必須在專案的根目錄下執行這個命令,否則會提示找不到主類。另外,com.stormdemo.MyTopology是main入口,而’/home/gua/input.txt’必須在supervisor下存在,因為拓撲會讀取指定的檔案。它儲存的是很多行英文單詞。
    另外,可以停止拓撲的執行:

storm kill 拓撲名

相關推薦

物理搭建storm叢集

1 安裝zookeeper     zookeeper是一個分散式協作的Apache hadoop專案,它提供了分散式同步,選舉leader等功能,解決了分散式應用中的資料管理問題。 sudo tar -C /opt -zxvf zookeeper-

搭建NFS服務實現虛擬之間共享

tab fst 共享目錄 ports def 類型 oca img 啟用 NFS網絡文件系統,實現Linux與Linux之間的簡化文件共享服務 1.創建目錄,將光盤鏡像掛載到新建目錄上 mkdir -p /media/cdrom mount -o loop /dev/cdr

伺服器六節點redis叢集環境搭建

兩個節點  192.168.1.177 節點一  192.168.1.180 節點二 系統版本: centos7 資源下載: 下載 http://download.redis.io/releases/redis-4.0.11.tar.gz https://

阿里雲ECS上搭建Hadoop叢集環境——使用ECS伺服器搭建“Cluster mode”的Hadoop叢集環境

Ingredient: 之前在: 這4篇文章裡講述了搭建Hadoop環境時在本地“/etc/hosts”裡面的ip域名配置上應該注意的事情,以及如何配置伺服器之間的ssh免密碼登入,啟動Hadoop遇到的一些問題的解決等等,這些都是使用ECS伺服器搭

Elastic search叢集新增節點(同一個叢集,同一物理,基於ES 7.4)

一開始,在電腦上同一個叢集新增節點(node)怎麼試也不成功,官網guide又語焉不詳?叢集健康值yellow(表示主分片全部可用,部分複製分片不可用)   最後,在stackoverflow上找到了答案。國內CSDN和部落格園的方法都不行,還各種照抄錯誤答案,真是鄙視國內大部分水貨。英語

VMware虛擬之間文件共享

ooo 分享 虛擬 info home vmw war png 技術 虛擬機A的文件拷貝到虛擬機B scp[參數][原路徑][目標路徑] eg: scp -r [email protected]:/home/rookie/下載/ /home/rooookie/下載/ 從1

虛擬的Putty端實現互相免密碼登錄

author key 公鑰 直接 權限 機器 strong 防火 終端 一、A機器免密碼登錄B機器 A機器putty端:ssh-keygen 生成密鑰 直接回車,不給密鑰加密碼 cat .ssh/id_rsa.pub 復制到對方的.ssh/authoriz

Docker搭建mysql叢集

1、準備工作1.1 Docker虛擬機器。本例項採用Win10安裝的虛擬機器.安裝方法請參見https://blog.csdn.net/oyinhezhiguang/article/details/805505341.2 Linux連線終端。本例項採用xshell。1.3 m

17 :多物理間的容器連線

兩臺物理主機,docker官方推薦瞭如下方式連線兩個容器。 以下以wordpress+mysql的服務為例。 部署在兩臺機器上的wordpress和mysql通過一對ambassador進行連線。 wordpress(in vm1)--link-->ambass

storm學習(二):搭建storm叢集環境

這次使用一臺伺服器來搭建storm的叢集環境,多臺伺服器的storm叢集搭建方法一樣。 搭建的步驟: 1.安裝zookeeper叢集環境 2.安裝storm的依賴軟體 3.下載storm 4.設定storm配置 5.啟動storm叢集 安裝zookeeper叢集環境:

storm文件(12)----自己搭建storm叢集

ubuntu下  storm  安裝步驟 安裝storm之前首先需要安裝一些依賴庫: zookeeper、JDK 6、python2.6.6、jzmq、zeromq 這些庫所需要的依賴庫不再一一筆述。 以下為具體安裝過程: 一、安裝JDK        zookee

虛擬機器搭建zookeeper叢集

一、什麼是zookeeper(摘自百度百科) ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務

appium同時執行

appium -p 4494 -bp 2253 -U 79MEALA29CVYappium -p 4493 -bp 2252 -U d5acb6d0 http://localhost:4494/wd/hub http://localhost:4493/wd/hub

nodejs的express框架在本搭建服務器

redirect sta start moc 頁面 exe 瀏覽器 server proc [本文出自天外歸雲的博客園] 簡介 用express框架在本機搭建一個服務器,這樣大家可以通過指定的url來在你的服務器上運行相應的功能。 Express是一個基於nodejs

電腦來簡單搭建Windows平臺下的MySQL叢集

MySQL叢集支援多臺電腦,本文搭建的MySQL叢集以兩臺機子為例,其中一臺(IP為192.168.24.33)部署管理節點、資料節點和SQL節點,另一臺(IP為192.168.24.82)部署資料節點和SQL節點。    實際應用中,不要將管理節點跟資料節點部署到

Centos 7 機器搭建三主三從的redis叢集

忠告:在學習搭建redis叢集之前,先學會搭建單個的redis。上一篇我們就介紹了單個的redis搭建,有興趣的朋友可以參照一下。兩臺伺服器,個啟動三個例項,形成三主三從。ip:    192.9.200.159   192.9.200.1601、使用yum安裝所需環境和工具

Docker在一膝上型電腦上搭建一個具有10個節點7種角色的Hadoop叢集(下)-搭建Hadoop叢集

上篇介紹了快速上手Docker部分,下面接著介紹搭建Hadoop叢集部分。 六、搭建Hadoop偽分佈模式 我們先用前面建立的這個容器來搭建Hadoop偽分佈模式做測試,測試成功後再搭建完全分散式叢集。1.SSH這個centos容器可以看做是一個非常精簡的系統,很多功能沒有,需要自己安裝。Hado

忘記root密碼後怎麽解決?克隆虛擬後如何實現linux相互登錄?

克隆 登錄 遠程 linux 使用單用戶模式破解更改root密碼:1、如果忘記linux的root密碼,可以進入單用戶模式更改root密碼,首先我們重啟虛擬機,操作如下:2、重啟系統後,3秒鐘內按向下的方向鍵,讓它停留在開機界面,如下圖:3、按方向鍵停留在第一行,按字母e編輯它,然後進入另外

CentOS release 6.5 (Final)*64服務器搭建nfs——筆記

NFSServer端檢查環境#cat /etc/redhat-release#uname -m#ifconfig|awk -F"[ :]+" ‘NR==2{print $4}‘192.168.56.6 裝服務#yum install -y rpcbind nfs-utis#rpm -qa

同一PC的個網口實現Iperf的server端和client端

header 只需要 select data- 檢查網絡 server 閱讀 fig -s 用同一臺PC的兩個網口實現Iperf的server端和client端 2015年10月20日 20:35:11 閱讀數:2943 有時候需要發包,僅僅需要一定速