注意:安装操作需要root权限
1.MySQL数据库管理系统安装[单机软件]
MySQL的安装操可以通过前面学习的yum命令进行。
1.1 MySQL5.7在CentOS版本
安装
1. 配置yum仓库
#更新密钥(导入yum仓库需要的密钥)rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
#安装MySQL yum库(从网络中获取软件包,类似Windows中的exe)rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
2. 使用yum安装MySQL
#yum安装mysqlyum -y install mysql-community-server
3. 安装完成后,启动MySQL并配置开机自启动systemctl start mysqld #启动systemctl enable mysqld #开启自启
MySQL安装完成后,会自动配置为名称叫做:mysql的服务,可以被systemctl所管理;
4. 检查MySQL的运行状态systemctl status mysqld
配置
主要配置管理员用户root的密码以及配置允许远程登录的权限;
5. 获取MySQL的初始密码
grep 'temporary password' /var/log/mysql.log
6. 登录MySQL数据库系统
#执行
mysql -uroot -p
解释
# -u,登录的用户,MySQL数据库的管理员用户同Linux一样,都是root
# -p,表示使用密码登录
# 执行完毕后输入刚刚得到的初始化密码,即可进入MySQL数据库,实现执行sql语句;
1.2 MySQL8.0在CentOS版本
安装流程和安装5.7类似;
1.3 MySQL5.7在Ubuntu(WSL环境)版本
安装操作需root权限
1. 通过 sudo su -,切换到root用户
2. 或在每一个命令前,加上sudo,用来临时提升权限
安装
3. 下载apt仓库文件
#下载apt仓库的安装包,Ubuntu的安装包是.deb文件
wget https://dev.mysql.com/get/mysql-apt-config.0.8.12-1_all.deb
4. 配置apt仓库
#使用dpkg命令安装仓库
dpkg -i mysql-apt-config_0.8.12-1_all.deb
弹出框中选择:ubuntu bionic(Ubuntu18.04系统的代号是bionic,选择18.0的版本库用来安装)
5. 更新apt仓库的信息
# 首先导入仓库的密钥信息
apt -key adv --keyserver keyserver.ubuntu.com --recv-keys 4678942D3A79BD29
# 更新仓库信息
apt update
6. 检查是否成功配置MySQL5.7的仓库
apt -cache polity mysql-server
7. 安装MySQL5.7
#使用apt安装mysql客户端和mysql服务器
apt install -f -y mysql-client=5.7* mysql-community-server=5.7*
弹出框中输入root密码并选择ok,密码任意;
8. 启动MySQL
/etc/init.d/mysql start #启动
/etc/init.d/mysql stop #停止
/etc/init.d/mysql status #查看状态9. 对MySQL进行初始化
1.4 MySQL8.0在Ubuntu(WSL环境)版本
安装流程和安装5.7类似;
2.Tomcat安装部署
Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全域管理和Tomcat阀等。
tomcat是一个Web应用程序的托管平台,可以让用户编写的WEB应用程序,被Tomcat所托管,并提供网站服务;
即让与用户开发的web应用程序,变成可以被访问的网页;
安装
Tomcat的安装主要分为2部分:
1.安装jdk环境;2.解压并安装Tomcat;
注意:tomcat建议使用非root用户安装并启动,可以创建一个用户:tomcat用以部署;
3.Nginx安装部署
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了MMAP/POP3/SMTP服务,同Tomcat一样,Nginx可以托管用户编写的WEB应用程序成为可访问的网页服务,同时也可以作为流量代理服务器,控制流量的中转;
Nginx在WEB开发领域,基本上也是必备组件之一;
注意:安装Nginx的操作需要root权限;
1. 安装yum依赖程序
2. 手动添加,nginx的yum仓库;
3. 通过yum安装最新稳定版的nginx;
4. 启动;
5. 配置防火墙放行;
4.RabbbitMQ安装
RabbitMQ一款知名的开源消息队列系统,为企业提供消息的发布、订阅、点对点传输等消息服务,RabbitMQ在企业开发中十分常见;
1. 准备yum仓库;
2. 安装RabbitMQ;
3. 启动;
4. 放行防火墙,RabbitMQ使用5672、15672、25672,3个端口;
5. 启动RbbitMQ的WEB管理控制台;
6. 添加admin用户,并赋予权限;
7. 浏览器打开管理控制台;
5.Redis安装[单机软件]
redis是一个开源的,使用C语言编写的、支持网络交互的、可基于内存也可持久化的key-value数据库;
redis的特点是:快,可以基于内存存储数据并提供超低延迟、超快的检索速度,一般用于在系统中提供快速缓存的能力;
1. 配置EPEL仓库;
2. 安装redis;
3. 启动redis;
4. 放行防火墙,redis是哟个端口6379;
5. 进入redis服务;
6.Elasticsearch安装[单机软件]
全文搜索最常见的需求,开源的Elasticsearch(简称es)是目前全文搜索引擎的首选,它可以快速的储存,搜索和分析海量数据,维基百科、stack overflow、Github都采用它;
Elasticsearch简称es,在企业内同样是一款应用非常广泛的搜索引擎服务,很多服务中的搜索功能,都是基于es来实现的;
1. 添加yum仓库;
2. 安装es;
3. 配置es;
4. 启动es;
5. 关闭防火墙;
6. 测试;
7.集群化软件安装前置准备
部署:
一、配置多台Linux虚拟机
安装集群化软件,首要条件就是要有多台Linux服务器可用;
可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆3台来使用;
1.首先,关机当前CentOS系统虚拟机(可以使用root用户执行init 0来快速关机);
2. 新建文件夹,文件夹起名为:虚拟机集群;
3. 克隆;
4. 同样的操作克隆出:node2和node3(类似有多台Linux服务器,它们之间可以通过网络进行通信);
5. 开启node1,修改主机名为node1,并修改固定ip为:192.168.88.131;
6. 同样的操作启动node2和node3;
修改node2主机名为node2,设置ip为192.168.88.132;
修改node3主机名为node3,设置ip为192.168.88.133;
7. 配置FinalShell,配置连接到node1,node2,node3的连接;二、准备主机名映射
8. 在Windows系统中修改hosts文件,填入如下内容:
sudo su -,切换到root
修改/etc/hosts文件
主机名映射:
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3
9. 在3台Linux的/etc/hosts文件中,填写如下内容(3台都要添加)
192.168.88.131 node1
192.168.88.132 node2
192.168.88.133 node3 三、配置SSH免密登录
简介:
SSH服务是一种用于远程登录的安全认证协议,通过FinalShell远程连接到Linux,就是使用SSH服务;
SSH服务支持:
通过账户+密码的认证方式来做用户认证;
通过账户+密钥文件的方式做用户认证;
SSH可以让我们通过SSH命令,远程的登录到其他的主机上,比如:
node1执行:ssh root@node2,将以root用户登录node2服务器,输入密码即可成功登录;
SSH免密配置
后续安装的集群化软件,多数需要远程登录以及远程执行命令,可以简单起见,配置三台Linux服务器之间的免密码互相SSH登录;
10. 在每一台机器都执行:ssh root-keygen -t rsa -b 4096,一路回车到底即可;
11. 在每一台机器都执行:
ssh -copy -id node1
ssh -copy -id node2
ssh -copy -id node3
12. 执行完毕后,node1,node2,node3之间将完成root用户之间的免密互通;四、配置jdk环境
后续大数据集群软件,多数是需要Java运行环境的,所以需要为每一台机器都配置jdk环境;
jdk配置参阅:Tomcat安装部署环节;五、关闭防火墙和SELinux
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,可以简单的在集群内部关闭防火墙
每台机器都执行:
systemctl stop firewalld
systemctl disable firewalld
Linux有一个安装模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定;
SELinux的配置同防火墙一样,非常复杂,课程中不多涉及,后续是情况可以出一章SELinux的配置课程;
当前只需关闭SELinux功能,避免导致后面的软件运行出现问题即可;
vim /etc/sysconfig/selinux六、添加快照
为了避免后续出现问题,在完成上述设置后,为每一台虚拟机都制作快照,留待使用;
8.scp命令
scp命令是cp命令的升级版,即ssh、cp,通过SSH协议完成文件的复制;
其主要的功能就是,在不同的Linux服务器之间,通过【SSH协议互相传输文件】;
只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件
语法:
scp [-r] 参数1 参数2
-r 选项用于复制文件夹使用,如果复制文件夹,必须使用-r;
参数1:本机路径 或 远程目标路径;
参数2:远程目标路径 或 本机路径;
9.Zookeeper安装部署[集群化软件]
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等;
除了为Hadoop和HBase提供协调服务外,Zookeeper也被其他许多软件采用作为器分布式状态一致性的依赖,比如Kafka,又或者一些软件项目中,也经常能见到Zookeeper作为一致性协调服务存在;
Zookeeper不论是大数据领域亦或是其他服务器开发领域,涉及到分布式状态一致性的场景,总有它的身影存在;安装:
Zookeeper是一款分布式的集群化软件,可以在多台服务器上部署,并协同组成分布式集群一起工作;
1. 首先,要确保已经完成了集群化环境前置准备环节的全部内容;
2. 【node1上操作】下载Zookeeper安装包,并解压;
3. 【node1上操作】创建软链接;
4. 【node1上操作】修改配置文件;
5. 【node1上操作】配置myid
10.Kafka集群部署[集群化软件]
Kafka是一款分布式的,去中心化的、高吞吐低延迟、订阅模式的消息队列系统;
同RabbitMQ一样,Kafaka也是消息队列,不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错;
Kafka多用于大数据体系,因其更加专注于数据的吞吐能力;
Kafka多数都是运行在分布式(集群化)模式下,所以课程将以3台服务器,来完成Kafka集群的安装部署;
安装:
1. 确保已经跟随前面学习,安装不熟练JDK和Zookeeper服务;
2. 【node1上操作】下载并上传Kafka的安装包;
3. 【node1上操作】解压;
4. 【node1上操作】修改Kafka目录内config目录内的server.properties文件;
5. 【node1上操作】将node1的Kafka复制到node2和node3;
6. 【node2上操作】
7. 【node3上操作】
8. 启动Kafka(前台启动,后台启动);
9. 验证Kafka启动;
10. 测试Kafka能否正常使用
创建测试主题(在node1执行,创建一个主题)->运行测试,在finalShell中打开2个node1的终端页面(终端页面1:启动一个模拟的数据生产者、终端页面2:再启动一个模拟的 数据消费者);
11.Hadoop集群部署[集群化软件]
Hadoop是一个由Apache基金会所开发的分布式系统基础架构;
主要解决海量数据的存储和海量数据的分析计算问题;
广义上来说,Hadoop通常是指一个更广泛的概念---Hadoop生态圈;
三大组件:
Hadoop HDFS 提供分布式海量数据存储能力;
Hadoop YARN 提供分布式集群资源管理能力;
Hadoop MapReduce 提供分布式海量数据计算能力;前置要求:
请确保完成了集群化环境前置章节的内容;
即:JDK、SSH免密、关闭防火墙、配置主机名映射等前置操作;Hadoop集群角色:
Hadoop生态体系中总共会出现如下进程角色:
1. Hadoop HDFS的管理角色:Namenode进程(仅需一个即可,管理者一个就够);
2. Hadoop HDFS的工作角色:Datanode进程(需要多个(工人,越多越好,一个机器启动一个));
3. Hadoop YARN的管理角色:ResourceManager进程(仅需一个即可,管理者一个就够);
4. Hadoop YARN的工作角色:NodeManager进程(需要多个(工人,越多越好,一个机器启动一个));
5. Hadoop历史记录服务器角色:HistoryServer进程(仅需一个即可,功能进程无需太多,一个足够);
6. Hadoop代理服务器角色:WebProxyServer进程(仅需一个即可,功能进程无需太多,一个足够);
7. Zookeeper的进程:QuorumPeerMain进程(仅需一个即可,Zookeeper的工作者,越多越好);
Hadoop集群部署
8. 下载Hadoop安装包、解压、配置软链接;
9. 修改配置文件:hadoop-env.sh ;
10. 修改配置文件:core-site.xml;
11. 配置:hdfs-site.xml文件;
12. 配置:mapred-env.sh文件;
13. 配置:mapred-site.xml文件;
14. 配置:yarn-env.sh文件;
15. 配置:yarn-site.xml文件;
16. 修改workers文件;
17. 分发hadoop到其他机器;
18. 在node2、node3执行;
19. 创建所需目录;
20. 配置环境变量;
21. 格式化NameNode,在node执行;
22. 启动Hadoop的hdfs集群,在node1执行即可;
23. 启动hdoop的yarn集群,在node1执行即可;
24. 启动历史服务器;
25. 启动web代理服务器;
验证Hadoop集群运行情况
26. node1、node2、node3上通过jps验证进程是否都启动成功;
27. 验证HDFS,浏览器打开:http://node1:9870
28. 验证YARN,浏览器打开:http://node1:8088
12.HBase集群部署[集群化软件]
HBase是一种分布式,可扩展、支持海量数据存储的NoSQL数据库;
和Redis一样,HBase是一款KeyValue型存储的数据库;
不过和Redis设计方向不同:
- redis设计为少量数据,超快检索;
- HBase设计为海量数据,快速检索;
- HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署HBase集群;安装:
1. HBase依赖Zookeeprer、JDK、Hadoop(HDFS),请确保已经完成前面;
2. 【node1执行】下载HBase安装包;
3. 【node1执行】修改配置文件,修改conf/hbase-env.sh文件;
4. 【node1执行】修改配置文件,修改conf/hbase-site.xml文件;
5. 【node1执行】修改配置文件,修改conf/regionservers文件;
6. 【node1执行】分发hbase到其他机器;
7. 【node2、node3执行】配置软链接;
8. 【node1、node2、node3执行】,配置环境变量;
9. 【node1执行】启动HBase;
10. 验证HBase;
11. 简单测试使用HBase;
13.Spark分布式内存计算集群部署[集群化软件]
Spark是一款分布式内存计算引擎,可以支撑海量数据的分布式计算;
Spark在大数据体系是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算;
在大数据领域广泛应用,是目前世界上使用最多的大数据分布式计算引擎;
将基于前面构建的Hadoop、部署Spark Standalone集群;安装:
1. 【node1执行】下载并解压;
2. 【node1执行】修改配置文件名称;
3. 【node1执行】修改配置文件,spark-env.sh;
4. 【node1执行】修改配置文件,slaves;
5. 【node1执行】分发;
6. 【node2、node3执行】设置软链接;
7. 【node1执行】启动Spark集群;
8. 打开Spark监控页面,浏览器打开:http://node1:8081;
9. 【node1执行】提交测试任务;
14.Flink分布式内存计算集群部署[集群化软件]
Flink同Spark一样,是一款分布式内存计算引擎,可以支持海量数据的分布式计算;
Flink在大数据体系同样是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算;
在大数据领域广泛应用,是目前世界上出去Spark以外,应用最为广泛的分布式计算引擎;将基于前面构建的Hadoop集群,部署Flink、Standalone集群;
Spark更加偏向于离线计算而Flink更加偏向于实时计算;安装:
1. 【node1操作】下载安装包;
2. 【node1操作】修改配置文件,conf/flink-conf.yaml;
3. 【node1操作】修改配置文件,conf/slaves;
4. 【node1操作】分发Flink安装包到其他机器;
5. 【node2、node3操作】
6. 【node1操作】,启动Flink;
7. 验证Flink启动;
8. 提交测试任务;