我要试试在我的圈子里非常流行的Flink
Flink是什么?
Spark是一款令擅長使用的人心跳加速的分散处理软件。它与Apache是同一伙伴。
既然有人已经知道这个,对于他们来说可能觉得有点晚了,但既然最近才知道,也没办法。
这是我们的官方网站。
让你感到多么激动不离本网站。
shì .)
bù lí .)

如果在“spark vs”上搜索,它已经排在第三位。
这个必须碰一下。
最后会形成什么?
通过Kafka传输某些内容,并将其传递给Elasticsearch的堆栈。
简单就是简单。
计划使用docker-compose来构建stack。
镜像将从Dockerfile创建。
虽然docker hub也有官方library,但我想了解一些它们的特点(请不要问我是什么特点)。
细节处理得很不错。
实践
首先,试用仅限于Flink。
试试看单独运行就是指试用本地 Flink 集群的意思。
用这种方式创建Docker镜像
FROM openjdk:8-jdk
ENV FLINK_VERSION=1.3.0 \
FLINK_SCALA_VERSION=2.11 \
FLINK_HADOOP_VERSION=27 \
FLINK_HOME=/opt/flink
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
apt-transport-https \
curl \
&& curl -OL http://ftp.tsukuba.wide.ad.jp/software/apache/flink/flink-${FLINK_VERSION}/flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& tar fx flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& rm flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& mv flink-${FLINK_VERSION} ${FLINK_HOME}
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT /docker-entrypoint.sh
入口看起来大概是这个样子
#!/bin/bash
set -e
${FLINK_HOME}/bin/start-local.sh
tail -f /dev/null
用这种方式构建和执行
sudo docker build -t miyatama/flink:1.13.0 .
sudo docker run -it -p 8081:8081 miyatama/flink:1.13.0

哇,真漂亮。
试试固定的字数限制。
无论是Spark还是Flink,分布式处理都喜欢WordCount。
不知道为什么,就是喜欢。
以下是”公式Example”的示例。
在QuickStart中
你可以在GitHub上找到这个SocketWindowWordCount示例的完整源代码,包括scala和java两种语言的版本。
找到了两个选项。虽然没有去查看它们有何不同,但我会使用QuickStart的那个选项。我会使用example的那个选项。
虽然说使用,但只是把flink-project克隆下来,替换src并进行构建而已。
我把Maven添加到之前的版本中进行构建和重新执行。
顺便再加一份酢豚。
FROM openjdk:8-jdk
ENV FLINK_VERSION=1.3.0 \
FLINK_SCALA_VERSION=2.11 \
FLINK_HADOOP_VERSION=27 \
FLINK_HOME=/opt/flink \
SBT_VERSION=0.13.15 \
MAVEN_VERSION=3.5.0
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install \
apt-transport-https \
curl \
git \
&& echo "deb https://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 \
&& apt-get update \
&& apt-get -y install \
sbt=${SBT_VERSION} \
&& curl -OL http://ftp.tsukuba.wide.ad.jp/software/apache/flink/flink-${FLINK_VERSION}/flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& tar fx flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& rm flink-${FLINK_VERSION}-bin-hadoop${FLINK_HADOOP_VERSION}-scala_${FLINK_SCALA_VERSION}.tgz \
&& mv flink-${FLINK_VERSION} ${FLINK_HOME} \
&& curl -OL http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
&& tar fx apache-maven-${MAVEN_VERSION}-bin.tar.gz \
&& rm -f apache-maven-${MAVEN_VERSION}-bin.tar.gz \
&& mv apache-maven-${MAVEN_VERSION} /opt/apache-maven-${MAVEN_VERSION}
ENV PATH=/opt/apache-maven-${MAVEN_VERSION}/bin:${PATH}
RUN mkdir /src \
&& cd /src \
&& git clone https://github.com/apache/flink.git \
&& cd ./flink/flink-quickstart/flink-quickstart-scala \
&& mvn package \
&& cd / \
&& git clone https://github.com/tillrohrmann/flink-project.git \
&& git clone https://github.com/apache/flink.git \
&& mv flink-project app \
&& rm -fr /app/src/main/scala/org/example/* \
&& \cp -f /flink/flink-examples/flink-examples-streaming/src/main/scala/org/apache/flink/streaming/scala/examples/socket/SocketWindowWordCount.scala /app/src/main/scala/org/example/SocketWindowWordCount.scala \
&& rm -fr /flink \
&& cd /app \
&& sed -i -e 's/"Flink Project"/"example"/g' build.sbt \
&& sed -i -e 's/0.1-SNAPSHOT/0.1/g' build.sbt \
&& sed -i -e 's/org.example.Job/org.example.SocketWindowWordCount/g' build.sbt \
&& sed -i -e 's/org.apache.flink.streaming.scala.examples.socket/org.example/g' /app/src/main/scala/org/example/SocketWindowWordCount.scala \
&& sbt assembly
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT /docker-entrypoint.sh
醋猪肉建造需要很长时间,所以最好用陀螺和咖啡之类的方式来打发时间。
如果不熟悉 Scala,不知道该如何构建是一点头绪都没有。
对于完全没有头绪的人,可以大致浏览一下这里。
向入口点添加
bash
+ $FLINK_HOME/bin/flink run /app/target/scala-2.11/example-assembly-0.1.jar –port 9000 –host localhost
CentOS 7的用户需要打开端口。关闭了firewalld的用户应该没有特别问题。
sudo firewall-cmd --permanent --zone=pulic --add-port=9000/tcp
sudo firewall-cmd --reload
进行执行并确认(省略构建步骤)
sudo docker run -it -p 8081:8081 -p 9000:9000 miyatama/flink:1.13.0


嗯,就是WordCount。
尽管甚至没有Kafka出场,但因篇幅较长,先暂停。
请提供以下参考资料。
-
- Flink vs. Spark
-
- Flink
-
- sbt Reference
- maven installation