Flink快速上手

3 篇文章 0 订阅

(转)

安装:下载并启动

  Flink可以在Linux、Mac OS X以及Windows上运行。为了能够运行Flink,唯一的要求是必须安装Java 7.x或者更高版本。对于Windows用户来说,请参考 Flink on Windows 文档,里面介绍了如何在Window本地运行Flink。

下载

  从下载页面(http://flink.apache.org/downloads.html)下载所需的二进制包。你可以选择任何与 Hadoop/Scala 结合的版本。比如 Flink for Hadoop 2。

启动一个local模式的Flink集群

启动一个local模式的Flink集群非常地简单,我们可以按照以下的步骤来操作:

  1、进入到下载的目录;
  2、解压下载的文件;
  3、启动Flink。

操作命令如下:

$ </code><code class="bash functions">cd</code> <code class="bash plain">~</code><code class="bash plain">/Downloads</code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code class="bash comments"># Go to download directory</code></div><div class="line number2 index1 alt1"><code class="bash plain">$ tar xzf flink-.tgz   # Unpack the downloaded archive
$ </code><code class="bash functions">cd</code> <code class="bash plain">flink-1.0.0</code></div><div class="line number4 index3 alt1"><code class="bash plain">$ bin /start-local .sh    # Start Flink

打开https://www.iteblog.com:8081检查Jobmanager和其他组件是否正常运行。Web前端应该显示了只有一个可用的 TaskManager。

运行例子

现在,我们来运行SocketTextStreamWordCount例子,它从socket中获取文本,然后计算每个单词出现的次数。操作步骤如下:

1、首先,我们使用netcat来启动本地服务器:

$ nc -l -p 9000</code></div></div></td></tr></tbody></table></div></div> <p>2、然后我们就可以提交Flink程序了:</p> <div><div id="highlighter_370034" class="syntaxhighlighter nogutter bash"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">$ bin /flink run examples /streaming/SocketTextStreamWordCount .jar \
   -- hostname localhost \
   --port 9000
 
Printing result to stdout. Use --output to specify output path.
04 /05/2016 16:03:36 Job execution switched to status RUNNING.
04 /05/2016 16:03:36 Source: Socket Stream -> Flat Map(1 /1 ) switched to SCHEDULED
04 /05/2016 16:03:36 Source: Socket Stream -> Flat Map(1 /1 ) switched to DEPLOYING
04 /05/2016 16:03:36 Keyed Aggregation -> Sink: Unnamed(1 /1 ) switched to SCHEDULED
04 /05/2016 16:03:36 Keyed Aggregation -> Sink: Unnamed(1 /1 ) switched to DEPLOYING
04 /05/2016 16:03:36 Keyed Aggregation -> Sink: Unnamed(1 /1 ) switched to RUNNING
04 /05/2016 16:03:36 Source: Socket Stream -> Flat Map(1 /1 ) switched to RUNNING
04 /05/2016 17:00:43 Source: Socket Stream -> Flat Map(1 /1 ) switched to FINISHED
04 /05/2016 17:00:43 Keyed Aggregation -> Sink: Unnamed(1 /1 ) switched to FINISHED
04 /05/2016 17:00:43 Job execution switched to status FINISHED.

这个程序和socket进行了连接,并等待输入。我们可以在WEB UI中检查Job是否正常运行:

3、计数会打印到标准输出stdout。监控JobManager的输出文件(.out文件),并在nc中敲入一些单词:

$ nc -l -p 9000</code></div><div class="line number2 index1 alt1"><code class="bash plain">lorem ipsum</code></div><div class="line number3 index2 alt2"><code class="bash plain">ipsum ipsum ipsum</code></div><div class="line number4 index3 alt1"><code class="bash plain">bye</code></div></div></td></tr></tbody></table></div></div> <p>.out 文件会立即打印出单词的计数:</p> <div><div id="highlighter_4079" class="syntaxhighlighter nogutter bash"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="bash plain">$ tail -f log /flink- -jobmanager-*.out
(lorem,1)
(ipsum,1)
(ipsum,2)
(ipsum,3)
(ipsum,4)
(bye,1)

要停止 Flink,只需要运行:

$ bin /stop-local .sh

集群模式安装

  在集群上运行 Flink 是和在本地运行一样简单的。需要先配置好 SSH 免密码登录 和保证所有节点的目录结构是一致的,这是保证我们的脚本能正确控制任务启停的关键。然后我们就可以按照下面步骤来操作:

  1、在每台节点上,复制解压出来的 flink 目录到同样的路径下。
  2、选择一个 master 节点 (JobManager) 然后在 conf/flink-conf.yaml 中设置 jobmanager.rpc.address 配置项为该节点的 IP 或者主机名。确保所有节点有有一样的 jobmanager.rpc.address 配置。
  3、将所有的 worker 节点 (TaskManager)的 IP 或者主机名(一行一个)填入 conf/slaves 文件中。

现在,你可以在 master 节点上启动集群:bin/start-cluster.sh

下面的例子阐述了三个节点的集群部署(IP地址从 10.0.0.1 到 10.0.0.3,主机名分别为 master, worker1, worker2)。并且展示了配置文件,以及所有机器上一致的可访问的安装路径。

访问https://ci.apache.org/projects/flink/flink-docs-release-1.0/setup/config.html查看更多可用的配置项。为了使 Flink 更高效的运行,还需要设置一些配置项。

以下都是非常重要的配置项:

  1、TaskManager 总共能使用的内存大小(taskmanager.heap.mb)
  2、每一台机器上能使用的 CPU 个数(taskmanager.numberOfTaskSlots)
  3、集群中的总 CPU 个数(parallelism.default)
  4、临时目录(taskmanager.tmp.dirs)

你可以很方便地将 Flink 部署在现有的YARN集群上,操作如下:

  1、下载 Flink Hadoop2 包: Flink with Hadoop 2
  2、确保你的 HADOOP_HOME (或 YARN_CONF_DIR HADOOP_CONF_DIR) 环境变量设置成你的 YARN 和 HDFS 配置。
  3、运行 YARN 客户端:./bin/yarn-session.sh 。你可以带参数运行客户端 -n 10 -tm 8192 表示分配 10 个 TaskManager,每个拥有 8 GB 的内存。

优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。
100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。
注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!
本博客文章除特别声明,全部都是原创!
禁止个人和公司转载本文、谢谢理解:过往记忆(https://www.iteblog.com/
本文链接: 【Flink快速上手(QuickStart)】(https://www.iteblog.com/archives/1626.html
喜欢 (6) 分享 (0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以掌握一个ETL工具的使用,必不可少。Kettle作为ETL工具是非常强大和方便的。Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。2、Clickhouse 是俄罗斯的“百度”Yandex公司在2016年开源的,一款针对大数据实时分析的高性能分布式数据库,与之对应的有hadoop生态hive,Vertica和百度出品的palo。这是战斗民族继nginx后,又开源的一款“核武器”。Hadoop 生态体系解决了大数据界的大部分问题,当然其也存在缺点。Hadoop 体系的最大短板在于数据处理时效性。基于 Hadoop 生态的数据处理场景大部分对时效要求不高,按照传统的做法一般是 T + 1 的数据时效。即 Trade + 1,数据产出在交易日 + 1 天。ClickHouse 的产生就是为了解决大数据量处理的时效性。独立于Hadoop生态圈。3、Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。 Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:01、集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。02、通过 NVD3/D3 预定义了多种可视化图表,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图表类型,或者嵌入其他的 JavaScript 图表库(如 HighCharts、ECharts)。03、提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)。 基于Kettle+Clickhouse+Superset构建亿级大数据实时分析平台课程将联合这三大开源工具,实现一个强大的实时分析平台。该系统以热门的互联网电商实际业务应用场景为案例讲解,对电商数据的常见实战指标处理使用kettle等工具进行了详尽讲解,具体指标包括:流量分析、新增用户分析、活跃用户分析订单分析、团购分析。能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。项目代码也是具有很高的商业价值的,大家可以根据自己的业务进行修改,便可以使用。本课程包含的技术:开发工具为:IDEAKettleClickhouseSupersetBinlogCanalKafkaHbaseHadoopZookeeperFlinkSpringBootSpringCouldPythonAnconaMySQL等 课程亮点:1.与企业对接、真实工业界产品2.强大的ETL工具Kettle全流程讲解实现3.ClickHouse高性能列式存储数据库4.Superset现代化的企业级BI可视化5.数据库实时同步解决方案6.集成Flink实时数据转换解决方案7.主流微服务SpringBoot后端系统8.互联网大数据企业热门技术栈9.支持海量数据的实时分析10.支持全端实时数据分析11.全程代码实操,提供全部代码和资料12.提供答疑和提供企业技术方案咨询 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值