热门标签 | 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








推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
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社区 版权所有