在Linux上怎麼安裝和配置Apache Samza

来源:http://www.cnblogs.com/Linuxdown/archive/2016/03/02/5235789.html
-Advertisement-
Play Games

samza是一個分散式的流式數據處理框架(streaming processing),它是基於Kafka消息隊列來實現類實時的流式數據處理的。(準確的說,samza是通過模塊化的形式來使用kafka的,因此可以構架在其他消息隊列框架上,但出發點和預設實現是基於kafka)


samza是一個分散式的流式數據處理框架(streaming processing),它是基於Kafka消息隊列來實現類實時的流式數據處理的。(準確的說,samza是通過模塊化的形式來使用kafka的,因此可以構架在其他消息隊列框架上,但出發點和預設實現是基於kafka)

Apache Kafka主要是用來控制發消息的

Apache Hadoop YARN會提供錯誤信息,隔離處理器,安全和資源管理.

本文將介紹怎麼在 Ubuntu 14.04 的32 系統上安裝Samza.


安裝準備:

要安裝和配置Apache-Samza,需要以下東西

JDK 1.7
maven2

kafka
yarn
zookeeper

#  apt-get install curl gem


下載並設置JDK路徑:

我們需要安裝JDK並設置好其環境變數.

# cd /usr/java
 
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-i586.tar.gz"
 
# tar xzf jdk-7u79-linux-i586.tar.gz


解壓並設置好JAVA_HOME路徑
# tar -zxvf  jdk-7u79-linux-i586.tar.gz
# JAVA_HOME=/usr/java/jdk1.7.0_79
# export JAVA_HOME
# PATH=$JAVA_HOME/bin:$PATH
# export PATH

把上面的加入到 ~/.bashrc 和 /etc/bashrc文件去

安裝Maven2:

接下來下載安裝maven

#  wget https://launchpad.net/~bneijt/+archive/ubuntu/ppa/+build/2139203/+files/maven3_3.0.1-0~ppa2_all.deb


# dpkg -i maven3_3.0.1-0~ppa2_all.deb


檢查maven版本好

#  mvn3 -version
Apache Maven 3.0.1 (r1038046; 2010-11-23 16:28:32+0530)
Java version: 1.7.0_79
Java home: /usr/java/jdk1.7.0_79/jre
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux" version: "3.8.0-29-generic" arch: "i386" Family: "unix"
安裝Hello-Samza : 


我們就按照在 /usr/local 文件夾下麵把

# cd /usr/local


把hello-samza複製進來,

# git clone git://git.apache.org/samza-hello-samza.git hello-samza


本項目中含有一個"grid"的腳本,其中有hello-samza變數,有了這個你可以搞定一切了. 使用它可以安裝 Kafka, Yarn和Zookeeper.

執行下麵的命令,

# cd /usr/local/hello-samza


root@dev:/usr/local/hello-samza# bin/grid install kafka 
EXECUTING: install kafka
Downloading kafka_2.10-0.8.2.1.tgz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 15 15.4M   15 2406k    0     0   304k      0  0:00:51  0:00:07  0:00:44  443k
root@dev:/usr/local/hello-samza# bin/grid install yarn
EXECUTING: install yarn
Downloading hadoop-2.6.1.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 77  187M   77  145M    0     0   239k      0  0:13:23  0:10:22  0:03:01  204k
root@dev:/usr/local/hello-samza#  bin/grid install zookeeper
EXECUTING: install zookeeper
Downloading zookeeper-3.4.3.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  8 15.4M    8 1324k    0     0   212k      0  0:01:14  0:00:06  0:01:08  266k
現在你會發現所有的包都在hello-samza根目錄下麵的一個名字叫 “deploy”文件夾裡面.

root@dev:/usr/local/hello-samza# cd deploy
root@dev:/usr/local/hello-samza/deploy# ls 
kafka  yarn  zookeeper
執行bin/grid bootstrap命令

root@dev:/usr/local/hello-samza# bin/grid bootstrap 
Download http://repo1.maven.org/maven2/org/fusesource/scalate/scalate-util_2.10/1.6.1/scalate-util_2.10-1.6.1.jar
:samza-yarn_2.10:processResources
:samza-yarn_2.10:classes
:samza-yarn_2.10:lesscss
....
....
BUILD SUCCESSFUL

Total time: 20 mins 32.855 secs
/usr/local/hello-samza
EXECUTING: install zookeeper
Using previously downloaded file /root/.samza/download/zookeeper-3.4.3.tar.gz
EXECUTING: install yarn
Using previously downloaded file /root/.samza/download/hadoop-2.6.1.tar.gz
EXECUTING: install kafka
Using previously downloaded file /root/.samza/download/kafka_2.10-0.8.2.1.tgz
EXECUTING: start zookeeper
JMX enabled by default
Using config: /usr/local/hello-samza/deploy/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
EXECUTING: start yarn
starting resourcemanager, logging to /usr/local/hello-samza/deploy/yarn/logs/yarn-root-resourcemanager-dev.out
starting nodemanager, logging to /usr/local/hello-samza/deploy/yarn/logs/yarn-root-nodemanager-dev.out
EXECUTING: start kafka
 
上面的grid執行完後,你就可以驗證YARN是否安裝好了併在運行,訪問URL http://localhost:8088. 看到的就是YARN UI界面.

Build一個Samza工作包:

你需要build下這個包,YARN就是通過這個包來執行grid的. 

註: 比如你build的是hello-samza項目的最新版的話,記得首先執行下下麵的命令。

root@dev:/usr/local/hello-samza#./gradlew publishToMavenLocal 


你可以在hello-samza項目中使用這些命令:

root@dev:/usr/local/hello-samza# mvn clean package
root@dev:/usr/local/hello-samza# mkdir -p deploy/samza
root@dev:/usr/local/hello-samza# tar -xvf ./target/hello-samza-0.10.0-dist.tar.gz -C deploy/samza


執行Samza任務:

完成build Samza包之後,你就可以在grid使用t run-job.sh 腳本來完成一些任務了

root@dev:/usr/local/hello-samza # deploy/samza/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties 
 

上面的這個任務將會從Wikipedia上把實施反饋編輯撤銷掉,會把這些編輯放到一個叫thelinuxfaq-raw”的主題裡面去. 

讓這個主題運行幾分鐘後,你再來看下Kafka 最後面的更新情況:

root@dev:/usr/local/hello-samza#  deploy/kafka/bin/kafka-console-consumer.sh  --zookeeper localhost:2181 --topic thelinuxfaq-raw


再次訪問YARN UI界面(http://localhost:8088). 你就看到Samza很正常的運行而不是有錯誤提示了! 

關閉Samza:

一切都弄好了,你就可以使用grid腳本關閉所有的相關伺服器了.
root@dev:/usr/local/hello-samza #  bin/grid stop all 

輸出示例:
EXECUTING: stop all
EXECUTING: stop kafka
EXECUTING: stop yarn
stopping resourcemanager
stopping nodemanager
EXECUTING: stop zookeeper
JMX enabled by default
Using config: /usr/local/hello-samza/deploy/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

啟動Samza :

同意的,你可以使用grid腳本來啟動所有服務,

root@dev:/usr/local/hello-samza #  bin/grid start all 

輸出示例:
EXECUTING: start all
EXECUTING: start zookeeper
JMX enabled by default
Using config: /usr/local/hello-samza/deploy/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
EXECUTING: start yarn
....
EXECUTING: start kafka
 轉自:在Linux上怎麼安裝和配置Apache Samza
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、以下是一個簡單事務存儲過程,其中Users表ID為主鍵 CREATE PROCEDURE SP_TRANSACTIONAS BEGIN BEGIN TRANSACTION INSERT INTO USERS(ID,NAME)VALUES(1000,'TEST1000'); IF @@ERROR<
  • GRANT privilege [, ...] ON object [ ( column [, ...] ) ] [, ...] TO { PUBLIC | username [, ...] } [ WITH GRANT OPTION ] 這些欄位與 Postgres 實現是相容的,除了下麵一些例外
  • (1)選擇最有效率的表名順序(只在基於規則的優化器中有效):Oracle的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連接查
  • 本文內容 Elasticsearch logstash 本文介紹安裝 logstash 2.2.0 和 elasticsearch 2.2.0,操作系統環境版本是 CentOS/Linux 2.6.32-504.23.4.el6.x86_64。 安裝 JDK 是必須的,一般操作系統都會有,只是版本的...
  • 關係型資料庫的定義及設計思路
  • 上一篇說了一下查詢5步走~然後就幾天_(:з」∠)_ ~今天繼續說一下其中 表裡面操作符裡面的 Pivot ~ Pivot 在實現行轉列的時候灰常有用。通常一個例子 CREATE TABLE #Tbl (Emp VARCHAR(50), [WeekDay] VARCHAR(50),LoginTime
  • SQL語句分組排序,多表關聯排序總結幾種常見的方法: 案例一: 在查詢結果中按人數降序排列,若人數相同,則按課程號升序排列? 分析:單個表內的多個欄位排序,一般可以直接用逗號分割實現。 select * from tableA order by col1 desc,col2 asc; -- 先按co
  • null是什麼? 不知道。我是說,他的意思就是不知道(unknown)。 它和true、false組成謂詞的三個邏輯值,代表“未知”。與true和false相比,null最難以令人捉摸,因為它沒有明確的值,在不同的場景下,它能代表不同的含義。下文以例子的方式給大家分享下null使用的典型場景及對應的
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...