亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

使用 Docker 與 Apache Flume - 第一部分

BlackFlagBin / 1842人閱讀

摘要:注該文的作文是原文地址為在,我們使用處理我們架構(gòu)的一部分,因?yàn)樗苋菀自O(shè)置和減少自定義和,在我的創(chuàng)新時(shí)間,我嘗試設(shè)置一些拓?fù)鋪?lái)學(xué)習(xí)和集裝箱化??岈F(xiàn)在我們有一個(gè)工作的可以提取和處理數(shù)據(jù)了。第二部分的地址

  

注:該文的作文是 mrwilson ,原文地址為 Using Docker with Apache Flume - Part 1

在 Unruly,我們使用 Apache Flume 處理我們 event-streaming 架構(gòu)的一部分,因?yàn)樗苋菀自O(shè)置和減少自定義 sources 和 sinks,在我的創(chuàng)新時(shí)間,我嘗試設(shè)置一些 Flume 拓?fù)鋪?lái)學(xué)習(xí) Docker 和 集裝箱化。

設(shè)置基礎(chǔ)鏡像

Docker 有鏡像的概念,從鏡像中我們可以啟動(dòng)一個(gè)容器,因此,第一步就是創(chuàng)建一個(gè) Flume pre-installed 的鏡像。Flume 僅僅依賴(lài) JAVA(它是一個(gè) JAVA 工程),我從 Ubuntu 基礎(chǔ)鏡像中創(chuàng)建它,將執(zhí)行以下步驟:

安裝 java 和 wget

下載和解壓 flume 工程到 /opt/flume

設(shè)置 JAVA_HOME 并且把 flume-ng 加入 PATH

下面是我們需要做的

FROM ubuntu

# install wget + java
RUN apt-get update -q
RUN DEBIAN_FRONTEND=noninteractive apt-get install 
  -qy --no-install-recommends 
  wget openjdk-7-jre

# download and unzip Flume
RUN mkdir /opt/flume
RUN wget -qO- 
  https://archive.apache.org/dist/flume/stable/apache-flume-1.4.0-bin.tar.gz 
  | tar zxvf - -C /opt/flume --strip 1

# set environment variables
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
ENV PATH /opt/flume/bin:$PATH

從這個(gè) Dockerfile 中構(gòu)建一個(gè)鏡像(使用 docker build -t flume .),可行的版本在 Docker index 中。

一個(gè)基礎(chǔ)的 Flume 拓?fù)?/b>

一個(gè) Flume 拓?fù)溆?agents 組成,它由三個(gè)核心概念:sources, channels, 和 sinks。

我們從 sources 接收數(shù)據(jù),把它傳遞進(jìn)一個(gè)或多個(gè) channels,然后被 sinks 讀取和處理。大部分基礎(chǔ)的拓?fù)浒粋€(gè)多帶帶的節(jié)點(diǎn),下面我構(gòu)建一個(gè)叫做 Docker 的 agent,有以下結(jié)構(gòu):

一個(gè) NetcatSource,從一個(gè)端口讀取數(shù)據(jù),并且傳遞進(jìn) events。

一個(gè) MemoryChannel,在內(nèi)存中 buffering events 。

一個(gè) LoggerSink,僅僅記錄它接收到的 events。

這個(gè)拓?fù)涞呐渲梦募缦?,我們?huì)以 flume-example.conf 作為參考,看起來(lái)像這樣:

docker.sinks = logSink
docker.sources = netcatSource
docker.channels = inMemoryChannel

docker.sources.netcatSource.type = netcat
docker.sources.netcatSource.bind = 0.0.0.0
docker.sources.netcatSource.port = 44444
docker.sources.netcatSource.channels = inMemoryChannel

docker.channels.inMemoryChannel.type = memory
docker.channels.inMemoryChannel.capacity = 1000
docker.channels.inMemoryChannel.transactionCapacity = 100

docker.sinks.logSink.type = logger
docker.sinks.logSink.channel = inMemoryChannel

從這里,我們可以通過(guò)這個(gè)配置文件創(chuàng)建一個(gè)新的容器,并且啟動(dòng)這個(gè) docker agent。

FROM probablyfine/flume

ADD flume-example.conf /var/tmp/flume-example.conf

EXPOSE 44444

ENTRYPOINT [ "flume-ng", "agent",
  "-c", "/opt/flume/conf", "-f", "/var/tmp/flume-example.conf", "-n", "docker",
  "-Dflume.root.logger=INFO,console" ]

在 ENTRYPOINT 點(diǎn)的 flume-ng 命令將在容器啟動(dòng)的時(shí)候被運(yùn)行(需要配置目錄,配置文件,和 agent 的名字),EXPOSE 指令使得端口在運(yùn)行時(shí)可用,這個(gè)端口 NetcatSource 將監(jiān)聽(tīng)。

  

注:關(guān)于 CMD、RUN、ENTRYPOING 的區(qū)別請(qǐng)看這里 http://segmentfault.com/q/1010000000417103

一旦我們構(gòu)建了這個(gè)新的鏡像(我們稱(chēng)作 flume-example),我們使用 ocker run -p 444:44444 -t flume-example 命令啟動(dòng)這個(gè)容器,

-p 444:44444 參數(shù)將容器中的 44444 端口映射到本地主機(jī)上的 444 端口?,F(xiàn)在我們可以給它寫(xiě)消息,使用 echo foo bar baz | nc localhost 444 然后看事件被記錄。

...
2014-05-05 19:26:13,218 (SinkRunner-PollingRunner-DefaultSinkProcessor)
  [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:70)]
  Event: { headers:{} body: 66 6F 6F 20 62 61 72 20 62 61 7A foo bar baz }
...

酷!現(xiàn)在我們有一個(gè)工作的 Flume agent 可以提取和處理數(shù)據(jù)了。

下一篇文章將展示一些有趣的 Flume 拓?fù)?,以及使得我們?cè)鯓幽芨尤菀椎陌?Docker 的功能(比如 共享卷以及只讀 mounting)整合進(jìn)一個(gè) Flume 中設(shè)置。

第二部分的地址 Using Docker with Apache Flume - Part 2

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/26339.html

相關(guān)文章

  • 基于 Docker 構(gòu)建 Flume -- Part1

    摘要:在,我們使用作為事件流架構(gòu)的一部分。在源斷和端,它使非常容易建立以及丟棄的。因此,第一步就是創(chuàng)建一個(gè)預(yù)安裝了的鏡像。一個(gè)基礎(chǔ)的拓?fù)湟粋€(gè)拓?fù)溆山M成,它有個(gè)核心概念和。 注:該文的原文為 Using Docker with Apache Flume - Part 1,由 Alex Wilson 編寫(xiě)。 在 Unruly ,我們使用 Apache Flume 作為事件流架構(gòu)的一部分...

    ShowerSun 評(píng)論0 收藏0
  • 基于 Docker 構(gòu)建 Flume -- Part1

    摘要:在,我們使用作為事件流架構(gòu)的一部分。在源斷和端,它使非常容易建立以及丟棄的。因此,第一步就是創(chuàng)建一個(gè)預(yù)安裝了的鏡像。一個(gè)基礎(chǔ)的拓?fù)湟粋€(gè)拓?fù)溆山M成,它有個(gè)核心概念和。 注:該文的原文為 Using Docker with Apache Flume - Part 1,由 Alex Wilson 編寫(xiě)。 在 Unruly ,我們使用 Apache Flume 作為事件流架構(gòu)的一部分...

    Youngdze 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<