Linux第五章

news2024/11/25 22:58:34

文章目录

  • 前言
  • 一、MySQL5.7版本在CentOS系统安装
  • 二、Tomcat安装部署
    • 1.安装JDK环境
    • 2. 解压并安装Tomcat
  • 三、Nginx安装部署
  • 四、RabbitMQ安装部署
  • 五、Redis安装部署
  • 六、ElasticSearch安装部署
  • 七、集群化环境前置准备
  • 八、Zookeeper集群安装部署
  • 九、Kafka集群安装部署
  • 十、大数据集群(Hadoop生态)安装部署
  • 十一、大数据NoSQL数据库HBase集群部署
  • 十二、分布式内存计算Spark环境部署
  • 十三、分布式内存计算Flink环境部署
  • 总结


前言


一、MySQL5.7版本在CentOS系统安装

注意:安装操作需要root权限
安装

  1. 配置yum仓库
    由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:
    导入MySQL仓库的密钥
 # 更新5.7密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
 # 更新8.0密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装Mysql8.x版本 yum库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
  1. 使用yum安装MySQL
 # yum安装Mysql
yum -y install mysql-community-server
  1. 安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动
systemctl enable mysqld # 开机自启
  1. 检查MySQL的运行状态
systemctl status mysqld

配置
(配置管理员用户root的密码以及配置允许远程登录的权限。)

  1. 获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

  1. 登陆MySQL数据库系统
# 执行
mysql -uroot -p
# 解释
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆
# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库

在这里插入图片描述

  1. 修改root用户密码
5.7
# 在MySQL控制台内执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
--密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
这里密码使用(Lipenghui66^)
  1. [扩展],配置root的简单密码
5.7
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
8.0
set global validate_password.policy=0;		# 密码安全级别低

set global validate_password_length=4; # 密码长度最低4位即可 # 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
  1. [扩展],配置root运行远程登录
    默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统。注意,允许root远程登录会带来安全风险
5.7
# 授权root远程登录
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
# IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同
# 刷新权限,生效
flush privileges;

8.0
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
# 后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
  1. 退出MySQL控制台页面
# 退出命令
exit
# 或者通过快捷键退出:ctrl + d
  1. 检查端口
    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306

在这里插入图片描述

二、Tomcat安装部署

1.安装JDK环境

  1. 下载JDK软件
    https: / www.oracle.com/java/technologies/downloads
    在页面下方找到:
    在这里插入图片描述
    下载jdk-8u351-linux-x64.tar.gz
  2. 登陆Linux系统,切换到root用户
  3. 通过FinalShell,上传下载好的JDK安装包
  4. 创建文件夹,用来部署JDK,将JDK和Tomcat都安装部到:/export/server 内
mkdir -p /export/server
  1. 解压缩JDK安装文件
tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
  1. 配置JDK的软链接
ln -s /export/server/jdk1.8.0_351 /export/server/jdk
  1. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中
# 编辑/etc/profile文件
vim /etc/profile
加入:
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
  1. 生效环境变量
source /etc/profile
  1. 配置java执行程序的软链接
# 删除系统自带的java程序
rm -f /usr/bin/java
# 软链接我们自己安装的java程序
ln -s /export/server/jdk/bin/java /usr/bin/java
  1. 执行验证:
java -version
javac -version

2. 解压并安装Tomcat

Tomcat建议使用非Root用户安装并启动,可以创建一个用户:tomcat用以部署

  1. 首先,放行tomcat需要使用的8080端口的外部访问权限
    CentOS系统默认开启了防火墙,阻止外部网络流量访问系统内部
    所以,如果想要Tomcat可以正常使用,需要对Tomcat默认使用的8080端
    口进行放行
    放行有2种操作方式:1.关闭防火墙;2.配置防火墙规则,放行端口
# 以下操作2选一即可(root用户)
# 方式1:关闭防火墙
systemctl stop firewalld		# 关闭防火墙
systemctl disable firewalld		# 停止防火墙开机自启

# 方式2:放行8080端口的外部访问
firewall-cmd --add-port=8080/tcp --permanent		# --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效
firewall-cmd --reload								# 重新载入防火墙规则使其生效
  1. 以root用户操作,创建tomcat用户
# 使用root用户操作
useradd tomcat
# 可选,为tomcat用户配置密码
passwd tomcat
  1. 下载Tomcat安装包
    注意下载的链接一定要可以访问的地址链接;可以直接通过Windows下载后再在finalshell上传
# 使用root用户操作
wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
# 如果出现https相关错误,可以使用--no-check-certificate选项
wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
  1. 解压Tomcat安装包
# 使用root用户操作,否则无权限解压到/export/server内,除非修改此文件夹权限
tar -zxvf apache-tomcat-10.0.27.tar.gz -C /export/server
  1. 创建Tomcat软链接
# 使用root用户操作
ln -s /export/server/apache-tomcat-10.0.27 /export/server/tomcat
  1. 修改tomcat安装目录权限
# 使用root用户操作,同时对软链接和tomcat安装文件夹进行修改,使用通配符*进行匹配
chown -R tomcat:tomcat tomcat
chown -R tomcat:tomcat /export/server/tomcat文件
  1. 切换到tomcat用户
su - tomcat
  1. 启动tomcat
/export/server/tomcat/bin/startup.sh
  1. tomcat启动在8080端口,可以检查是否正常启动成功
netstat -anp | grep 8080
  1. 打开浏览器,输入:
    http: / centos:8080或http: / 192.168.88.130:8080使用主机名(需配置好本地的主机名映射)或IP地址访问Tomcat的WEB页面
    在这里插入图片描述

三、Nginx安装部署

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
同Tomcat一样,Nginx可以托管用户编写的WEB应用程序成为可访问的网页服务,同时也可以作为流量代理服务器,控制流量的中转。

Nginx同样需要配置额外的yum仓库,才可以使用yum安装
安装Nginx的操作需要root身份

  1. 安装yum依赖程序
# root执行
yum install -y yum-utils
  1. 手动添加,nginx的yum仓库
    yum程序使用的仓库配置文件,存放在:/etc/yum.repo.d内。
# root执行
# 创建文件使用vim编辑
vim /etc/yum.repos.d/nginx.repo
# 填入如下内容并保存退出
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  1. 通过yum安装最新稳定版的nginx
# root执行
yum install -y nginx
  1. 启动
# nginx自动注册了systemctl系统服务
systemctl start nginx		# 启动
systemctl stop nginx		# 停止
systemctl status nginx		# 运行状态
systemctl enable nginx		# 开机自启
systemctl disable nginx		# 关闭开机自启
  1. 配置防火墙放行
    nginx默认绑定80端口,需要关闭防火墙或放行80端口
# 方式1(推荐),关闭防火墙
systemctl stop firewalld		# 关闭
systemctl disable firewalld		# 关闭开机自启

# 方式2,放行80端口
firewall-cmd --add-port=80/tcp --permanent		# 放行tcp规则下的80端口,永久生效
firewall-cmd --reload							# 重新加载防火墙规则
  1. 启动后浏览器输入Linux服务器的IP地址或主机名即可访问
    http: / 192.168.88.130 或 http: / centos

80端口是访问网站的默认端口,所以后面无需跟随端口号
显示的指定端口也是可以的比如:
http: / 192.168.88.130:80
http: / centos:80

四、RabbitMQ安装部署

RabbitMQ一款知名的开源消息队列系统,为企业提供消息的发布、订阅、点对点传输等消息服务。
rabbitmq在yum仓库中的版本比较老,所以我们需要手动构建yum仓库

  1. 准备yum仓库
# root执行
# 1. 准备gpgkey密钥
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey

# 2. 准备仓库文件
vim /etc/yum.repos.d/rabbitmq.repo
# 填入如下内容
##
## Zero dependency Erlang
##

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

##
## RabbitMQ server
##

[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
  1. 安装RabbitMQ
# root执行
yum install erlang rabbitmq-server -y
完成提示如下
Installed:
  erlang.x86_64 0:23.3.4.11-1.el7           rabbitmq-server.noarch 0:3.10.0-1.el7
  1. 启动
# root执行
# 使用systemctl管控,服务名:rabbitmq-server
systemctl enable rabbitmq-server		# 开机自启
systemctl disable rabbitmq-server		# 关闭开机自启
systemctl start rabbitmq-server			# 启动
systemctl stop rabbitmq-server			# 关闭
systemctl status rabbitmq-server		# 查看状态
  1. 放行防火墙,RabbitMQ使用5672、15672、25672 3个端口
# 方式1(推荐),关闭防火墙
systemctl stop firewalld		# 关闭
systemctl disable firewalld		# 关闭开机自启

# 方式2,放行5672 25672端口
firewall-cmd --add-port=5672/tcp --permanent		# 放行tcp规则下的5672端口,永久生效
firewall-cmd --add-port=15672/tcp --permanent		# 放行tcp规则下的15672端口,永久生效
firewall-cmd --add-port=25672/tcp --permanent		# 放行tcp规则下的25672端口,永久生效
firewall-cmd --reload								# 重新加载防火墙规则
  1. 启动RabbitMQ的WEB管理控制台
rabbitmq-plugins enable rabbitmq_management
  1. 添加admin用户,并赋予权限
rabbitmqctl add_user admin 'Lipenghui66^'
rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
  1. 浏览器打开管理控制台
    http: / 192.168.88.130:15672
    在这里插入图片描述

五、Redis安装部署

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
redis的特点就是:,可以基于内存存储数据并提供超低延迟、超快的检索速度
一般用于在系统中提供快速缓存的能力。

  1. 配置EPEL仓库
    EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。
# root执行
yum install -y epel-release
  1. 安装redis
# root执行
yum install -y redis
  1. 启动redis
# root执行
# 使用systemctl管控,服务名:redis
systemctl enable redis		# 开机自启
systemctl disable redis		# 关闭开机自启
systemctl start redis		# 启动
systemctl stop redis		# 关闭
systemctl status redis		# 查看状态
  1. 放行防火墙,redis使用端口6379
# 方式1(推荐),关闭防火墙
systemctl stop firewalld		# 关闭
systemctl disable firewalld		# 关闭开机自启

# 方式2,放行6379端口
firewall-cmd --add-port=6379/tcp --permanent		# 放行tcp规则下的6379端口,永久生效
firewall-cmd --reload	
  1. 进入redis服务
# 执行redis-cli
[root@centos ~]# redis-cli
127.0.0.1:6379> set mykey hello
OK
127.0.0.1:6379> get mykey
"hello"
127.0.0.1:6379>

六、ElasticSearch安装部署

  1. 添加yum仓库
# root执行
# 导入仓库密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# 添加yum源
# 编辑文件 
vim /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# 更新yum缓存
yum makecache
  1. 安装es
yum install -y elasticsearch
  1. 配置es
vim /etc/elasticsearch/elasticsearch.yml

# 17行,设置集群名称(删除#)
cluster.name: my-cluster

# 23行,设置节点名称(删除#)
node.name: node-1

# 56行,允许外网访问(删除#)
network.host: 0.0.0.0

# 74行,配置集群master节点(删除#)
cluster.initial_master_nodes: ["node-1"]
  1. 启动es
systemctl start | stop | status | enable | disable elasticsearch
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 测试
    浏览器打开:http://ip:9200/?pretty
    在这里插入图片描述

七、集群化环境前置准备

部署
配置多台Linux虚拟机
安装集群化软件,首要条件就是要有多台Linux服务器可用。
我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用。

  1. 首先,关机当前CentOS系统虚拟机(可以使用root用户执行init 0来快速关
    机)
  2. 新建文件夹
    在这里插入图片描述
    文件夹起名为:虚拟机集群
  3. 克隆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4. 同样的操作克隆出:node2和node3

在这里插入图片描述
5. 开启node1,修改主机名为node1,并修改固定ip为:192.168.88.131

# 修改主机名
hostnamectl set-hostname node1

# 修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR="192.168.88.131"

# 重启网卡
systemctl stop network
systemctl start network
# 或者直接
systemctl restart network
  1. 同样的操作启动node2和node3,
    修改node2主机名为node2,设置ip为192.168.88.132
    修改node2主机名为node3,设置ip为192.168.88.133
  2. 配置FinalShell,配置连接到node1、node2、node3的连接

准备主机名映射
8.在Windows系统中修改hosts文件
(如果使用MacOS系统,请:
sudo su -,切换到root
修改/etc/hosts文件),填入如下内容:

192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3
  1. 在3台Linux的/etc/hosts文件中,填入如下内容( 3台都要添加 )
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3

配置SSH免密登录
SSH服务是一种用于远程登录的安全认证协议。
SSH服务支持:1. 通过账户+密码的认证方式来做用户认证。2. 通过账户+秘钥文件的方式做用户认证。
1.在每一台机器都执行:ssh-keygen -t rsa -b 4096,一路回车到底即可
2.在每一台机器都执行:

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

配置JDK环境
大数据集群软件,多数是需要Java运行环境的,所以我们为 每一台 机器都配置JDK环境
JDK配置参阅:Tomcat安装部署环节。

关闭防火墙和SELinux
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。(在每一台机器都执行)

systemctl stop firewalld
systemctl disable firewalld

Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。

vim /etc/sysconfig/selinux

# 将第七行,SELINUX=enforcing 改为
SELINUX=disabled
# 保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统

添加快照
为了避免后续出现问题,在完成上述设置后,为 每一台虚拟机 都制作快照,留待使用。


补充命令 - scp
我们能频繁的在多台服务器之间相互传输数据。
为了更加方面的互相传输,我们补充一个命令:scp
scp命令是cp命令的升级版,即:ssh cp,通过SSH协议完成文件的复制。
其主要的功能就是:在不同的Linux服务器之间,通过SSH协议互相传输文件。
只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件。

scp [-r] 参数1 参数2
- -r选项用于复制文件夹使用,如果复制文件夹,必须使用-r
- 参数1:本机路径 或 远程目标路径
- 参数2:远程目标路径 或 本机路径

如:
scp -r /export/server/jdk root@node2:/export/server/
将本机上的jdk文件夹, 以root的身份复制到node2的/export/server/内
同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)

如:
scp -r node2:/export/server/jdk /export/server/
将远程node2的jdk文件夹,复制到本机的/export/server/内


# scp命令的高级用法
cd /export/server
scp -r jdk node2:`pwd`/    # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
scp -r jdk node2:$PWD      # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下

八、Zookeeper集群安装部署

安装
Zookeeper是一款分布式的集群化软件,可以在多台服务器上部署,并协同组成分
布式集群一起工作。

  1. 首先,要确保已经完成了集群化环境前置准备环节的全部内容
  2. 【node1上操作】下载Zookeeper安装包,并解压
# 下载
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

# 确保如下目录存在,不存在就创建
mkdir -p /export/server

# 解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server
  1. 【node1上操作】创建软链接
ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper
  1. 【node1上操作】修改配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vim /export/server/zookeeper/conf/zoo.cfg

tickTime=2000
# zookeeper数据存储目录
dataDir=/export/server/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
  1. 【node1上操作】配置myid
# 1. 创建Zookeeper的数据目录
mkdir /export/server/zookeeper/data

# 2. 创建文件,并填入1
vim /export/server/zookeeper/data/myid
# 在文件内填入1即可
  1. 【在node2和node3上操作】,创建文件夹
mkdir -p /export/server
  1. 【node1上操作】将Zookeeper 复制到node2和node3
cd /export/server

scp -r apache-zookeeper-3.5.9-bin node2:`pwd`/
scp -r apache-zookeeper-3.5.9-bin node3:`pwd`/
  1. 【在node2上操作】
# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为2
  1. 【在node3上操作】
# 1. 创建软链接
ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

# 2. 修改myid文件
vim /export/server/zookeeper/data/myid
# 修改内容为3
  1. 【在node1、node2、node3上分别执行】启动Zookeeper
# 启动命令
/export/server/zookeeper/bin/zkServer.sh start		# 启动Zookeeper
  1. 【在node1、node2、node3上分别执行】检查Zookeeper进程是否启动
jps

# 结果中找到有:QuorumPeerMain 进程即可
  1. 【node1上操作】验证Zookeeper
    要分步进入文件夹下启动
/export/server/zookeeper/zkCli.sh 
#cd ... -> ./zkCli.sh

# 进入到Zookeeper控制台中后,执行
ls /

# 如无报错即配置成功

九、Kafka集群安装部署

同RabbitMQ一样,Kafka也是消息队列。不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错。
Kafka多用于大数据体系,因其更加专注于数据的吞吐能力。
安装

  1. 确保已经跟随前面的视频,安装并部署了JDK和Zookeeper服务
  2. 【在node1操作】下载并上传Kafka的安装包
# 下载安装包
wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz
  1. 【在node1操作】解压
mkdir -p /export/server			# 此文件夹如果不存在需先创建

# 解压
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/

# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
  1. 【在node1操作】修改Kafka目录内的config目录内的server.properties
    文件
cd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=1
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node1:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181
  1. 【在node1操作】将node1的kafka复制到node2和node3
    cd /export/server
# 复制到node2同名文件夹
scp -r kafka_2.12-2.4.1 node2:`pwd`/
# 复制到node3同名文件夹
scp -r kafka_2.12-2.4.1 node3:$PWD
  1. 【在node2操作】
# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

cd /export/server/kafka/config
# 指定broker的id
broker.id=2
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT://node2:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181
  1. 【在node3操作】
# 创建软链接
ln -s /export/server/kafka_2.12-2.4.1
/export/server/kafka

cd /export/server/kafka/config
# 指定broker的id
broker.id=3
# 指定 kafka的绑定监听的地址
listeners=PLAINTEXT: / node3:9092
# 指定Kafka数据的位置
log.dirs=/export/server/kafka/data
# 指定Zookeeper的三个节点
zookeeper.connect=node1:2181,node2:2181,node3:2181
  1. 启动kafka
# 请先确保Zookeeper已经启动了

# 方式1:【前台启动】分别在node1、2、3上执行如下语句
/export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties

# 方式2:【后台启动】分别在node1、2、3上执行如下语句
nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1 >> /export/server/kafka/kafka-server.log &
  1. 验证Kafka启动
# 在每一台服务器执行
jps

在这里插入图片描述

测试Kafka能否正常使用

  1. 创建测试主题
# 在node1执行,创建一个主题
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 3 --topic test
  1. 运行测试,请在FinalShell中打开2个node1的终端页面
# 打开一个终端页面,启动一个模拟的数据生产者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topic test
# 再打开一个新的终端页面,在启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning

十、大数据集群(Hadoop生态)安装部署

前置要求
JDK、SSH免密、关闭防火墙、配置主机名映射等前置操作
Hadoop集群角色

  1. Hadoop HDFS的管理角色:Namenode进程(仅需1个即可(管理者一个就
    够))
  2. Hadoop HDFS的工作角色:Datanode进程(需要多个(工人,越多越好,一
    个机器启动一个))
  3. Hadoop YARN的管理角色:ResourceManager进程(仅需1个即可(管理者
    一个就够))
  4. Hadoop YARN的工作角色:NodeManager进程(需要多个(工人,越多越
    好,一个机器启动一个))
  5. Hadoop 历史记录服务器角色:HistoryServer进程(仅需1个即可(功能进
    程无需太多1个足够))
  6. Hadoop 代理服务器角色:WebProxyServer进程(仅需1个即可(功能进程
    无需太多1个足够))
  7. Zookeeper的进程:QuorumPeerMain进程(仅需1个即可(Zookeeper的工
    作者,越多越好))

角色和节点分配

  1. node1:Namenode、Datanode、ResourceManager、NodeManager、
    HistoryServer、WebProxyServer、QuorumPeerMain
  2. node2:Datanode、NodeManager、QuorumPeerMain
  3. node3:Datanode、NodeManager、QuorumPeerMain
    在这里插入图片描述安装
    调整虚拟机内存
    如上图,可以看出node1承载了太多的压力。同时node2和node3也同时运行了不少程序
    为了确保集群的稳定,需要对虚拟机进行内存设置。2. node2和node3设置2GB或以上内存

Hadoop集群部署

  1. 下载Hadoop安装包、解压、配置软链接
# 1. 下载
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

# 2. 解压
# 请确保目录/export/server存在
tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/

# 3. 构建软链接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
  1. 修改配置文件:hadoop-env.sh
    cd 进入到/export/server/hadoop/etc/hadoop,文件夹中,配置文件都在这里
    修改hadoop-env.sh文件
    此文件是配置一些Hadoop用到的环境变量
    这些是临时变量,在Hadoop运行时有用
    如果要永久生效,需要写到/etc/profile中
vim hadoop-env.sh
# 在文件开头加入:
# 配置Java安装路径
export JAVA_HOME=/export/server/jdk
# 配置Hadoop安装路径
export HADOOP_HOME=/export/server/hadoop
# Hadoop hdfs配置文件路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN配置文件路径
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN 日志文件夹
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
# Hadoop hdfs 日志文件夹
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

# Hadoop的使用启动用户配置
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export YARN_PROXYSERVER_USER=root
  1. 修改配置文件:core-site.xml
    如下,清空文件(键盘d+G),填入如下内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
    <description></description>
  </property>

  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    <description></description>
  </property>
</configuration>
  1. 配置:hdfs-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
    <property>
        <name>dfs.datanode.data.dir.perm</name>
        <value>700</value>
    </property>

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
  </property>

  <property>
    <name>dfs.namenode.hosts</name>
    <value>node1,node2,node3</value>
    <description>List of permitted DataNodes.</description>
  </property>

  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
    <description></description>
  </property>


  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
    <description></description>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>
  1. 配置:mapred-env.sh文件
# 在文件的开头加入如下环境变量设置
export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
  1. 配置:mapred-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description></description>
  </property>

  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>node1:10020</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>node1:19888</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/data/mr-history/tmp</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/data/mr-history/done</value>
    <description></description>
  </property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>
  1. 配置:yarn-env.sh文件
# 在文件的开头加入如下环境变量设置
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
  1. 配置:yarn-site.xml文件
<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
    <description></description>
</property>

  <property>
    <name>yarn.web-proxy.address</name>
    <value>node1:8089</value>
    <description>proxy server hostname and port</description>
  </property>


  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>

  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/tmp/logs</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>


<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
    <description></description>
  </property>

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    <description></description>
  </property>

  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/nm-local</value>
    <description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description>
  </property>


  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/nm-log</value>
    <description>Comma-separated list of paths on the local filesystem where logs are written.</description>
  </property>


  <property>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
    <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>
  </property>



  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>Shuffle service that needs to be set for Map Reduce applications.</description>
  </property>
</configuration>
  1. 修改workers文件
# 全部内容如下
node1
node2
node3
  1. 分发hadoop到其它机器
   # 在node1执行
   cd /export/server
   
   scp -r hadoop-3.3.0 node2:`pwd`/
   scp -r hadoop-3.3.0 node2:`pwd`/
  1. 在node2、node3执行
# 创建软链接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
  1. 创建所需目录
    在node1执行:
mkdir -p /data/nn
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local

在node2执行:

mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local

在node3执行:

mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local
  1. 配置环境变量
    在node1、node2、node3修改/etc/profile
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行source /etc/profile生效
14.格式化NameNode,在node1执行(hadoop这个命令来自于:$HADOOP_HOME/bin中的程序,由于配置了环境变量PATH,所以可以在任意位置执行hadoop命令)

hadoop namenode -format
  1. 启动hadoop的hdfs集群,在node1执行即可(start-dfs.sh这个命令来自$HADOOP_HOME/sbin中的程序,由于配置了环境变量PATH,所以可以在任意位置执行start-dfs.sh命令)
start-dfs.sh
# 如需停止可以执行
stop-dfs.sh
  1. 启动hadoop的yarn集群,在node1执行即可
start-yarn.sh

# 如需停止可以执行
stop-yarn.sh
  1. 启动历史服务器
mapred --daemon start historyserver

# 如需停止将start更换为stop
  1. 启动web代理服务器
yarn-daemon.sh start proxyserver

# 如需停止将start更换为stop

验证Hadoop集群运行情况

  1. 在node1、node2、node3上通过jps验证进程是否都启动成功
  2. 验证HDFS,浏览器打开:http: / node1:9870
    创建文件test.txt,随意填入内容,并执行:
hadoop fs -put test.txt /test.txt

hadoop fs -cat /test.txt
  1. 验证YARN,浏览器打开:http: / node1:8088
    执行:
# 创建文件words.txt,填入如下内容
hhht hadoop
hhh hadoop hadoop
hhh itcast

# 将文件上传到HDFS中
hadoop fs -put words.txt /words.txt

# 执行如下命令验证YARN是否正常
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output

十一、大数据NoSQL数据库HBase集群部署

安装

  1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面
  2. 【node1执行】下载HBase安装包
# 下载
wget http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz

# 解压
tar -zxvf hbase-2.1.0-bin.tar.gz -C /export/server

# 配置软链接
ln -s /export/server/hbase-2.1.0 /export/server/hbase
  1. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件
# 在28行配置JAVA_HOME
2 export JAVA_HOME=/export/server/jdk
3 # 在126行配置:
4 # 意思表示,不使用HBase自带的Zookeeper,而是用独立
Zookeeper
5 export HBASE_MANAGES_ZK=false
6 # 在任意行,比如26行,添加如下内容:
7 export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
  1. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件
# 将文件的全部内容替换成如下内容:
<configuration>
        <!-- HBase数据在HDFS中的存放的路径 -->
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://node1:8020/hbase</value>
        </property>
        <!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <!-- ZooKeeper的地址 -->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>node1,node2,node3</value>
        </property>
        <!-- ZooKeeper快照的存储位置 -->
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/export/server/apache-zookeeper-3.6.0-bin/data</value>
        </property>
        <!--  V2.1版本,在分布式情况下, 设置为false -->
        <property>
            <name>hbase.unsafe.stream.capability.enforce</name>
            <value>false</value>
        </property>
</configuration>
  1. 【node1执行】,修改配置文件,修改conf/regionservers文件
# 填入如下内容
node1
node2
node3
  1. 【node1执行】,分发hbase到其它机器
scp -r /export/server/hbase-2.1.0 node2:/export/server/
scp -r /export/server/hbase-2.1.0 node3:/export/server/
  1. 【node2、node3执行】,配置软链接
ln -s /export/server/hbase-2.1.0 /export/server/hbase
  1. 【node1、node2、node3执行】,配置环境变量
# 配置在/etc/profile内,追加如下两行
export HBASE_HOME=/export/server/hbase
export PATH=$HBASE_HOME/bin:$PATH

source /etc/profile
  1. 【node1执行】启动HBase
    确保:Hadoop HDFS、Zookeeper是已经启动了的
start-hbase.sh

# 如需停止可使用
stop-hbase.sh
  1. 验证HBase
    浏览器打开:http: / node1:16010,即可看到HBase的WEB UI页面
  2. 简单测试使用HBase
    【node1执行】
hbase shell

# 创建表
create 'test', 'cf'

# 插入数据
put 'test', 'rk001', 'cf:info', 'penghui'

# 查询数据
get 'test', 'rk001'

# 扫描表数据
scan 'test'

十二、分布式内存计算Spark环境部署

基于:大数据集群(Hadoop生态)安装部署环节中所构建的Hadoop集群
安装

  1. 【node1执行】下载并解压
wget https://archive.apache.org/dist/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz

# 解压
tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /export/server/

# 软链接
ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
  1. 【node1执行】修改配置文件名称
# 改名
cd /export/server/spark/conf
mv spark-env.sh.template spark-env.sh
mv slaves.template slaves
  1. 【node1执行】修改配置文件,spark-env.sh
## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk

## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

## 指定spark老大Master的IP和提交任务的通信端口
export SPARK_MASTER_HOST=node1
export SPARK_MASTER_PORT=7077

SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
  1. 【node1执行】修改配置文件,slaves
node1
node2
node3
  1. 【node1执行】分发
scp -r spark-2.4.5-bin-hadoop2.7 node2:$PWD
scp -r spark-2.4.5-bin-hadoop2.7 node3:$PWD
  1. 【node2、node3执行】设置软链接
ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
  1. 【node1执行】启动Spark集群
/export/server/spark/sbin/start-all.sh

# 如需停止,可以
/export/server/spark/sbin/stop-all.sh
  1. 打开Spark监控页面,浏览器打开:http: / node1:8081
  2. 【node1执行】提交测试任务
/export/server/spark/bin/spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi /export/server/spark/examples/jars/spark-examples_2.11-2.4.5.jar

十三、分布式内存计算Flink环境部署

基于:大数据集群(Hadoop生态)安装部署环节中所构建的Hadoop集群
安装

  1. 【node1操作】下载安装包
wget https://archive.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz

# 解压
tar -zxvf flink-1.10.0-bin-scala_2.11.tgz -C /export/server/

# 软链接
ln -s /export/server/flink-1.10.0 /export/server/flink
  1. 【node1操作】修改配置文件,conf/flink-conf.yaml
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager JVM heap 内存大小
jobmanager.heap.size: 1024m
# TaskManager JVM heap 内存大小
taskmanager.heap.size: 1024m
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
jobmanager.web.port: 8081
  1. 【node1操作】,修改配置文件,conf/slaves
node1
node2
node3
  1. 【node1操作】分发Flink安装包到其它机器
cd /export/server
scp -r flink-1.10.0 node2:`pwd`/
scp -r flink-1.10.0 node3:`pwd`/
  1. 【node2、node3操作】
# 配置软链接
ln -s /export/server/flink-1.10.0 /export/server/flink
  1. 【node1操作】,启动Flink
/export/server/flink/bin/start-cluster.sh
  1. 验证Flink启动
# 浏览器打开
http://node1:8081
  1. 提交测试任务
    【node1执行】
/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/478045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统的进程调度

进程调度概述 一、操作系统的调度时机 1、什么时候进行进程调度&#xff1f; 主动放弃&#xff08;进程正常终止、运行过程中发生异常而终止、进程主动请求阻塞&#xff09; 被动放弃&#xff08;分给进程的时间片用完、有更紧急的事需要处理、有更高优先级的进程进入就绪队列…

CentOS7 安装MySQL8

CentOS7 安装MySQL8 安装 VMware 以及 CentOS更新系统添加 MySQL Yum 存储库安装 MySQL 8启动 MySQL检查 MySQL 状态查看临时密码用临时密码登录修改密码 安装 VMware 以及 CentOS 由于本博主之前写过&#xff0c;在这给出链接&#xff0c;不再赘述了 https://blog.csdn.net/w…

2023.4.30 第五十一次周报

目录 前言 文献阅读 背景 对现有技术的分析 主要思路和贡献 相关性分析和归一化处理 相关性分析 归一化处理 TCN 基于 TCN-LSTM 的 PM 浓度预测模型 敏感性分析 论文思路 求半方差 训练模型 -1 训练模型-2 总结 前言 This week I studied an article that cons…

R语言 | 进阶字符串的处理

目录 一、语句的分割 二、修改字符串的大小写 三、unique()函数的使用 四、字符串的连接 4.1 使用paste()函数常见的失败案例1 4.2 使用paste()函数常见的失败案例2 4.3 字符串的成功连接与collapse参数 4.4 再谈paste()函数 4.5 扑克牌向量有趣的应用 五、字符串数据的…

vue前端开发100问(持续更新)

1.export default的作用是 export主要用于对外输出本模块变量的接口&#xff0c;一个文件就可以被理解为一个模块。export就是导出。 import就是在一个模块中加载另一个含有export接口的模块&#xff0c; import就是导入。 2.什么样的内容需要放在export default里面&#xf…

mybatis使用(简单易上手)

mybatis使用 一、mybatis介绍1、mybatis是什么2、mybatis支持的数据库3、~~mybatis插件机制~~ 二、springboot集成mybatis1、引入依赖2、配置mybatis 三、使用mybatis1、注解方式使用mybatis2、XML文件方式 一、mybatis介绍 1、mybatis是什么 MyBatis是一个开源的Java持久层框…

第十七章 预制件prefab(下)

本章节我们来讲解如何编辑预制体文件。这里介绍三种打开编辑预制件的方式。第一就是通过预制件的实例游戏对象的Inspector检视面板上面的预制件“打开”按钮。 第二就是在Project工程面板中选中预制件文件&#xff08;Cube.prefab&#xff09;&#xff0c;然后在Inspector检视面…

山东专升本计算机第八章-多媒体技术基础

多媒体技术基础 多媒体技术 考点 7 图形/图像处理软件 图形/图像文件格式 • BMP • windows系统下的标准位图格式 • 未经压缩 • JPEG&#xff08;联合图像专家组&#xff09; • 有损压缩格式&#xff0c;色数量高达24位&#xff0c;广泛应用于Internet上的主页或图片…

excel实战小测第四

【项目背景】 本项目为某招聘网站部分招聘信息&#xff0c;要求对“数据分析师”岗位进行招聘需求分析&#xff0c;通过对城市、行业、学历要求、薪资待遇等不同方向进行相关性分析&#xff0c;加深对数据分析行业的了解。 结合企业真实招聘信息&#xff0c;可以帮助有意转向数…

【艾特淘】淘宝“客服3分钟响应率”考核调整

淘宝商家“客服3分钟响应率”考核调整&#xff0c;还不知道的商家赶紧来看看&#xff0c;具体都有哪些变化哦~ 一、考核范围 考核范围对象为店铺正常状态&#xff0c;达到一定经营模式的淘宝卖家。 此对象定义为&#xff1a;卖家的商家层级达到5以上&#xff0c;同时还将考虑…

C++实现二叉搜索树

文章目录 前言1.二叉树搜索树的相关介绍2.二叉搜索树的实现1.二叉搜索树插入数据的实现2.二叉搜索树的查找实现3.二叉搜索树的删除实现4.构造函数和析构函数以及赋值重载的实现 3.二叉搜索树的应用1.将之前的K模型二叉搜索树改造成KV模型2.代码演示 4.二叉搜索树的性能分析 前言…

本地Linux服务器安装宝塔面板,并公网远程登录【内网穿透】

文章目录 前言1. 安装宝塔2. 安装cpolar内网穿透3. 远程访问宝塔4. 固定http地址5. 配置二级子域名6. 测试访问二级子域名 前言 宝塔面板作为建站运维工具&#xff0c;它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能&#xff0c;可提高运维效率。…

人工智能导论:模型与算法,附录实验三:线性回归模型

本人研一&#xff0c;简单记录下上课的大作业&#xff0c;如果你不会自己写&#xff0c;相信你有缘能找到这篇博客 线性回归模型 1.实验内容 图像是一种非常常见的信息载体&#xff0c;但是在图像的获取、传输、存储过程中可能由于各种原因使得图像受到噪声的影响。如何去除…

程序员如何通过创作图文项目实现自己的代码价值

本文阅读适合人群&#xff1a; 1.程序员 2.图文赛道创业者 项目背景&#xff1a; 毫无疑问&#xff0c;这是一个优质内容的时代&#xff0c;从某种意义上说&#xff0c;优质内容Money。优质内容的形式包含很多&#xff0c;在头条的定义中包括&#xff1a;纯文字&#xff08;…

存储资源调优技术——SmartTier智能分级技术、SmartQoS智能服务质量控制技术

目录 SmartTier智能分级技术 基本概述 工作原理 实现SmartThier数据迁移的三个阶段 应用场景 SmartQoS智能服务质量控制 基本概念 两种关键技术 应用场景 SmartTier智能分级技术 基本概述 自动将不同活跃的数据和不同特点的存储介质动态匹配&#xff0c;提高性能。 NL…

ETL工具 - Kettle 转换算子介绍

一、Kettle 转换算子 上篇文章对 Kettle 中的输入输出算子进行了介绍&#xff0c;本篇文章继续对转换算子进行讲解。 下面是上篇文章的地址&#xff1a; ETL工具 - Kettle 输入输出算子介绍 转换是ETL里面的T&#xff08;Transform&#xff09;&#xff0c;主要做数据转换&am…

开放式基金净值估算数据 API 数据接口

开放式基金净值估算数据 API 数据接口 全量基金数据&#xff0c;实时数据&#xff0c;所有基金数据。 1. 产品功能 返回实时开放式基金净值估值可定义所有基金估值数据&#xff1b;多个基金属性值返回&#xff1b;多维指标&#xff0c;一次查询毫秒级返回&#xff1b;数据持续…

领域驱动设计事件驱动框架命令查询责任分离测试驱动开发

领域驱动设计: DDD 事件驱动框架: Event Driven Architecture 命令查询责任分离: CQRS(Command Query Responsibility Segregation) 测试驱动开发: TDD 先睹为快&#xff1a;架构图 入口&#xff1a;entrypoint 入口是系统外部客户访问系统内部的端口。常见的入口如http, …

算法刷题|647.回文子串、516.最长回文子序列

回文子串 题目&#xff1a;给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符…

【redis】redis分布式锁(三)自动续期

系列文章目录 【redis】redis分布式锁&#xff08;一&#xff09;手写分布式锁1.0~6.0 【redis】redis分布式锁&#xff08;二&#xff09;可重入锁设计模式 文章目录 系列文章目录前言一、CAPredis集群 APZooKeeper集群 CP 数据一致性Eureak集群 APnacos集群 AP 二、lua脚本脚…