热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flink+zookeeper安装部署!

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flink+zookeeper安装部署!相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flink+zookeeper安装部署!相关的知识,希望对你有一定的参考价值。








flink


  • 环境准备
  • zookeeper部署
  • 部署hadoop
  • 部署flink



环境准备

设备准备:

节点 ip地址 系统 软件 磁盘
node1 192.168.0.11 centos7 flink,zookeeper,hadoop 40G+100G
node2 192.168.0.22 centos7 flink,zookeeper,hadoop 40G+100G
node3 192.168.0.33 centos7 flink,zookeeper,hadoop 40G+100G

  • 关闭防火墙,关闭安全防护,下面三个节点同时配置

systemctl stop firewalld
setenforce 0
##添加地址映射
vim /etc/hosts
192.168.0.11 node1
192.168.0.12 node2
192.168.0.13 node3
##三节点做免交互
ssh-keygen
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
##安装java环境,可以先java -version查看版本,如果匹配可以不用安装
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

zookeeper部署

  • 三台节点同时进行,下面只显示node1

[root@node1 ~]# vi /etc/wgetrc
check_certificate = off #末尾添加
##下载zookeeper包
[root@node1 ~]# wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
[root@node1 ~]# tar zxf apache-zookeeper-3.7.0-bin.tar.gz -C /opt #解压包到opt下
[root@node1 ~]# cd /opt/apache-zookeeper-3.7.0-bin/conf/
[root@node1 conf]# mv zoo_sample.cfg zoo.cfg #给配置文件改名
[root@node1 conf]# vi zoo.cfg #设置配置文件
dataDir=/opt/zk_datadir #这里更改,下面是添加内容
server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888
[root@node1 conf]# mkdir /opt/zk_datadir #创建目录
##三节点设置myid,
node1: echo 1 > /opt/zk_datadir/myid
node2: echo 2 > /opt/zk_datadir/myid
node3: echo 3 > /opt/zk_datadir/myid
##设置环境变量
[root@node1 conf]# cd /root
[root@node1 ~]# vim .bash_profile
PATH=$PATH:$HOME/bin:/opt/apache-zookeeper-3.7.0-bin/bin #这行后面添加内容
[root@node1 ~]# source .bash_profile
##启动zookeeper
[root@node1 ~]# zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
##连接zookeeper集群查看
[root@node1 ~]# zkCli.sh -server 192.168.0.11:2181,192.168.0.12:2181,192.168.0.12:2181
ls /
[zookeeper]
[zk: 192.168.0.11:2181,192.168.0.12:2181,192.168.0.12:2181(CONNECTED) 2]
quit

部署hadoop

  • 三节点同时部署

##下载hadoop软件包
[root@node1 ~]# cd /opt
[root@node1 opt]# wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
[root@node1 opt]# tar xzf hadoop-3.2.2.tar.gz #解压
##格式化分区,挂载
[root@node1 opt]# fdisk /dev/vdb
n
p
回车
回车
w
[root@node1 opt]# mkdir /data01
[root@node1 opt]# mkfs.xfs /dev/vdb1
[root@node1 opt]# mount /dev/vdb1 /data01
[root@node1 opt]# vim /etc/fstab
/dev/vdb1 /data01 xfs defaults 0 0
[root@node1 opt]# mount -a
[root@node1 opt]# df -h | grep vdb1
/dev/vdb1 100G 33M 100G 1% /data01

  • 设置hadoop个配置文件,三节点同时进行

[root@node1 opt]# vi hadoop-3.2.2/etc/hadoop/core-site.xml
<configuration>
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
</configuration>
[root&#64;node1 opt]# vi /opt/hadoop-3.2.2/etc/hadoop/hadoop-env.sh #末尾添加以下内容
export HDFS_NAMENODE_USER&#61;root
export HDFS_JOURNALNODE_USER&#61;root
export HDFS_ZKFC_USER&#61;root
export JAVA_HOME&#61;/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
[root&#64;node1 opt]# vi /opt/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.node1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.node2</name>
<value>node2:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.node3</name>
<value>node3:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.node1</name>
<value>node1:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.node2</name>
<value>node2:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.node3</name>
<value>node3:9870</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/jorunal_data</value>
</property>
<property>
<name>dfs.ha.nn.not-become-active-in-safemode</name>
<value>true</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data01/nn</value>
</property>
<property>
<name>dfs.hosts</name>
<value>/opt/hadoop-3.2.2/etc/hadoop/dfs.hosts</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data01/data</value>
</property>
</configuration>
[root&#64;node1 opt]# vi /opt/hadoop-3.2.2/etc/hadoop/dfs.hosts
node1
node2
node3
##添加环境变量
[root&#64;node1 opt]# vim /root/.bash_profile
PATH&#61;$PATH:$HOME/bin:/opt/apache-zookeeper-3.7.0-bin/bin:/opt/hadoop-3.2.2/bin:/opt/hadoop-3.2.2/sbin
[root&#64;node1 opt]# source /root/.bash_profile

  • 启动journalnode、zkfc、namenode、datanode、注意node1节点作为主节点&#xff0c;与node2和node3节点配置不同

##启动journalnode
node1&#xff1a;
[root&#64;node1 opt]# hdfs zkfc -formatzk
[root&#64;node1 opt]# hdfs --daemon start journalnode
[root&#64;node1 opt]# jps
8497 QuorumPeerMain
8754 JournalNode
8796 Jps
894 WrapperSimpleApp
node2&#xff0c;3&#xff1a;
[root&#64;node2 opt]# hdfs --daemon start journalnode
WARNING: /opt/hadoop-3.2.2/logs does not exist. Creating.
[root&#64;node3 opt]# hdfs --daemon start journalnode
WARNING: /opt/hadoop-3.2.2/logs does not exist. Creating.
##启动zkfc
node1&#xff1a;
[root&#64;node1 opt]# hdfs zkfc -formatZK
[root&#64;node1 opt]# hdfs --daemon start zkfc
[root&#64;node1 opt]# jps
8497 QuorumPeerMain
8754 JournalNode
8915 DFSZKFailoverController
8947 Jps
894 WrapperSimpleApp
node2&#xff0c;3:
[root&#64;node2 opt]# hdfs --daemon start zkfc
[root&#64;node2 opt]# jps
870 WrapperSimpleApp
8701 JournalNode
8493 QuorumPeerMain
8814 Jps
8782 DFSZKFailoverController
[root&#64;node3 opt]# hdfs --daemon start zkfc
##启动namenode
node1&#xff1a;
[root&#64;node1 opt]# hdfs namenode -format
[root&#64;node1 opt]# hdfs --daemon start namenode
[root&#64;node1 opt]# jps
19504 Jps
19409 NameNode
8497 QuorumPeerMain
8754 JournalNode
8915 DFSZKFailoverController
894 WrapperSimpleApp
node2&#xff0c;3&#xff1a;
[root&#64;node2 opt]# hdfs --daemon start namenode -bootstrapstandby
[root&#64;node2 opt]# hdfs --daemon start namenode
namenode is running as process 8870. Stop it first.
[root&#64;node2 opt]# jps
870 WrapperSimpleApp
8870 NameNode
8935 Jps
8701 JournalNode
8493 QuorumPeerMain
8782 DFSZKFailoverController
##启动datanode&#xff0c;三节点同时进行&#xff0c;下面只显示node1
[root&#64;node1 opt]# hdfs --daemon start datanode
[root&#64;node1 opt]# jps
19409 NameNode
8497 QuorumPeerMain
8754 JournalNode
8915 DFSZKFailoverController
19560 DataNode
19628 Jps
894 WrapperSimpleApp

  • 测试文件

[root&#64;node1 opt]# hdfs dfs -put /var/log/messages /
[root&#64;node1 opt]# hdfs dfs -ls /
Found 1 items
-rw-r--r-- 1 root supergroup 125075 2021-10-05 14:24 /messages

部署flink

  • 三台节点同时配置&#xff0c;下面显示node1节点

[root&#64;node1 opt]# tar xzf flink-1.13.1-bin-scala_2.11.tgz
[root&#64;node1 opt]# cd /opt/flink-1.13.1/bin/
[root&#64;node1 bin]# ./start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host ecs-edfe-0001.
Starting taskexecutor daemon on host ecs-edfe-0001.
[root&#64;node1 bin]# netstat -antp | grep 8081
tcp6 0 0 :::8081 :::* LISTEN 20133/java

  • 浏览器访问node1节点IP地址:8081
  • node1节点执行一个任务

[root&#64;node1 bin]# cd /opt/flink-1.13.1
[root&#64;node1 flink-1.13.1]# bin/flink run ./examples/streaming/TopSpeedWindowing.jar
Executing TopSpeedWindowing example with default input data set.
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
Job has been submitted with JobID 4d1ff2a2f0b97b4eeb0c0a5aa7deabd7


  • 测试2

##先关闭flink&#xff08;因为前面运行过&#xff0c;它一直在采取数据&#xff09;
[root&#64;node1 bin]# ./stop-cluster.sh
[root&#64;node1 bin]# ./start-cluster.sh
##重开一个node1终端&#xff0c;下载netcat
[root&#64;node1 flink-1.13.1]# nc -l 9000 ##执行命令&#xff0c;持续传输数据
##回node1节点执行命令采取数据
[root&#64;node1 flink-1.13.1]# bin/flink run ./examples/streaming/SocketWindowWordCount.jar --port 9000
Job has been submitted with JobID 440b3d6c0e5596c444f5fb3a33b7594c
##在node1新终端上输入aaa
[root&#64;node1 flink-1.13.1]# nc -l 9000
aaa
##在node2节点远程登录node1&#xff0c;查看日志文件
[root&#64;node2 bin]# ssh node1
[root&#64;node1 ~]# tail -f /opt/flink-1.13.1/log/flink-root-taskexecutor-0-ecs-edfe-0001.out
aaa : 1








推荐阅读
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 在 CentOS 6.6 系统中搭建 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的运行环境配置指南
    本文提供了在 CentOS 6.6 系统上配置 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的详细步骤。首先,确保本机环境为 CentOS 6.6,并使用阿里云的 YUM 源来安装必要的软件包,包括 gcc、gcc-c++、bison、pkgconfig 和 glib2-devel。这些软件包是构建和运行 MONO 环境的基础,确保系统能够顺利支持 ASP.NET 和 MVC 应用的部署和运行。 ... [详细]
author-avatar
新野野
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有