MySQL
5.7在CentOS
安装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
yum
安装MySQL
:yum -y install mysql-community-server
MySQL
并配置开机自启动
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
主要配置管理员用户root的密码以及配置允许远程登陆的权限
MySQL
的初始密码:grep 'temporary password' /var/log/mysqld.log
MySQL
数据库系统
mysql -uroot -p
-u
:登陆的用户,MySQL数据库的管理员用户同Linux一样,是root-p
:表示使用密码登陆MySQL
数据库root
用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
abc
root
的简单密码
1 2 |
set global validate_password.policy=0; # 密码安全级别低 set global validate_password.length=4; # 密码长度最低4位即可 |
root
运行远程登录
1 2 3 4 5 6 7 |
# 授权root远程登录 grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option; # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址 # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同 # 刷新权限,生效 flush privileges; |
MySQL
控制台页面
1 2 3 4 |
# 退出命令 exit # 或者通过快捷键退出:ctrl + d |
MySQL
默认绑定了3306端口,可以通过端口占用检查MySQL
的网络状态
1 |
netstat -anp | grep 3306 |
MySQL
8.0版本在CentOS
系统安装配置yum
仓库
1 2 3 4 5 |
# 更新密钥 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 |
使用yum
安装MySQL
:yum -y install mysql-community-server
安装完成后,启动MySQL
并配置开机自启动
1 2 |
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启 |
MySQL
安装完成后,会自动配置为名称叫做:mysqld
的服务,可以被systemctl所管理
检查MySQL
的运行状态:systemctl status mysqld
基本上同[[Linux#5.1.2 配置]]
允许root
远程登录,并设置远程登录密码
默认情况下,
root
用户是不运行远程登录的,只允许在MySQL
所在的Linux
服务器登陆MySQL
系统允许
root
远程登录会带来安全风险
1 2 3 4 5 |
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; |
Linux
系统,切换到root
用户:su -
FinalShell
,上传下载好的JDK
安装包JDK
,将JDK
和Tomcat
都安装部署到/export/server
内:mkdir -p /export/server
JDK
安装文件:tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
JDK
的软链接:ln -s /export/server/jdk1.8.0_351 /export/server/jdk
JAVA_HOME
环境变量,以及将$JAVA_HOME/bin
文件夹加入PATH
环境变量中
1 2 3 |
# 编辑/etc/profile文件 export JAVA_HOME=/export/server/jdk export PATH=$PATH:$JAVA_HOME/bin |
source /etc/profile
java
执行程序的软链接
1 2 3 4 |
# 删除系统自带的java程序 rm -f /usr/bin/java # 软链接我们自己安装的java程序 ln -s /export/server/jdk/bin/java /usr/bin/java |
1 2 |
java -version javac -version |
Tomcat
建议使用非
Root
用户安装并启动
首先,放行tomcat
需要使用的8080端口的外部访问权限,以下操作2选一即可
关闭防火墙
1 2 |
systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 停止防火墙开机自启 |
配置防火墙规则,放行端口
1 2 |
firewall-cmd --add-port=8080/tcp --permanent # --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效 firewall-cmd --reload # 重新载入防火墙规则使其生效 |
以root
用户操作,创建tomcat
用户
1 2 3 4 |
# 使用root用户操作 useradd tomcat # 可选,为tomcat用户配置密码 passwd tomcat |
下载Tomcat
安装包
1 2 3 4 |
# 使用root用户操作 wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz # 如果出现https相关错误,可以使用--no-check-certificate选项 wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz |
解压Tomcat
安装包:tar -zxvf apache-tomcat-10.0.27.tar.gz -C /export/server
root
用户操作,否则无权限解压到/export/server
内,除非修改此文件夹权限创建Tomcat
软链接:ln -s /export/server/apache-tomcat-10.0.27 /export/server/tomcat
修改tomcat
安装目录权限:chown -R tomcat:tomcat /export/server/*tomcat*
root
用户操作,同时对软链接和tomcat
安装文件夹进行修改,使用通配符*
进行匹配切换到tomcat
用户:su - tomcat
启动tomcat
:/export/server/tomcat/bin/startup.sh
tomcat
启动在8080端口,可以检查是否正常启动成功:netstat -anp | grep 8080
http://centos:8080
或http://192.168.88.130:8080
IP
地址访问Tomcat
的WEB
页面Nginx
安装部署安装
Nginx
的操作需要root
身份
安装yum
依赖程序:yum install -y yum-utils
手动添加,nginx
的yum
仓库,yum
程序使用的仓库配置文件,存放在/etc/yum.repo.d
内
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 创建文件使用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 |
通过yum
安装最新稳定版的nginx
:yum install -y nginx
启动
1 2 3 4 5 6 |
# nginx自动注册了systemctl系统服务 systemctl start nginx # 启动 systemctl stop nginx # 停止 systemctl status nginx # 运行状态 systemctl enable nginx # 开机自启 systemctl disable nginx # 关闭开机自启 |
配置防火墙放行:nginx
默认绑定80端口,需要关闭防火墙或放行80端口
1 2 3 4 5 6 7 |
# 方式1,关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启 # 方式2,放行80端口 firewall-cmd --add-port=80/tcp --permanent # 放行tcp规则下的80端口,永久生效 firewall-cmd --reload # 重新加载防火墙规则 |
启动后浏览器输入Linux
服务器的IP
地址或主机名即可访问http://192.168.88.130
或http://centos
rabbitmq
在yum
仓库中的版本比较老,所以我们需要手动构建yum
仓库需要
root
权限
准备yum
仓库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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 |
安装RabbitMQ
:yum install erlang rabbitmq-server -y
启动
1 2 3 4 5 6 |
# 使用systemctl管控,服务名:rabbitmq-server systemctl enable rabbitmq-server # 开机自启 systemctl disable rabbitmq-server # 关闭开机自启 systemctl start rabbitmq-server # 启动 systemctl stop rabbitmq-server # 关闭 systemctl status rabbitmq-server # 查看状态 |
放行防火墙,RabbitMQ
使用5672、15672、25672这3个端口
1 2 3 4 5 6 7 8 9 |
# 方式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 # 重新加载防火墙规则 |
启动RabbitMQ
的WEB
管理控制台:rabbitmq-plugins enable rabbitmq_management
添加admin
用户,并赋予权限
1 2 3 |
rabbitmqctl add_user admin 'Itheima66^' rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*" rabbitmqctl set_user_tags admin administrator |
浏览器打开管理控制台http://192.168.88.130:15672
Redis
安装部署需要
root
权限
配置EPEL
仓库:yum install -y epel-release
安装redis
:yum install -y redis
启动redis
1 2 3 4 5 6 |
# 使用systemctl管控,服务名:redis systemctl enable redis # 开机自启 systemctl disable redis # 关闭开机自启 systemctl start redis # 启动 systemctl stop redis # 关闭 systemctl status redis # 查看状态 |
放行防火墙,redis
使用端口6379
1 2 3 4 5 6 7 |
# 方式1,关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启 # 方式2,放行6379端口 firewall-cmd --add-port=6379/tcp --permanent # 放行tcp规则下的6379端口,永久生效 firewall-cmd --reload |
进入redis
服务
1 2 3 4 5 6 7 |
# 执行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
安装部署需要
root
权限
添加yum
仓库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 导入仓库密钥 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 |
安装es
:yum install -y elasticsearch
配置es
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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"] |
启动es
:systemctl start | stop | status | enable | disable elasticsearch
关闭防火墙
1 2 |
systemctl stop firewalld systemctl disable firewalld |
浏览器打开http://ip:9200/?pretty
Linux
虚拟机安装集群化软件,首要条件就是要有多台Linux
服务器可用
我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用
关闭当前CentOS
系统虚拟机(可以使用root
用户执行init 0
来快速关机)
新建文件夹 如:虚拟机集群
克隆,分别命名为node1
,node2
,node3
开启node1
,修改主机名为node1
,并修改固定ip
为192.168.88.131
1 2 3 4 5 6 7 8 9 10 11 12 |
# 修改主机名 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 |
同样的操作启动node2
和node3
node2
主机名为node2
,设置ip
为192.168.88.132node2
主机名为node3
,设置ip
为192.168.88.133配置FinalShell
,配置连接到node1
、node2
、node3
的连接
在Windows
系统中修改hosts
文件,填入如下内容:
1 2 3 |
192.168.88.131 node1 192.168.88.132 node2 192.168.88.133 node3 |
在3台Linux
的/etc/hosts
文件中,都填入如下内容
1 2 3 |
192.168.88.131 node1 192.168.88.132 node2 192.168.88.133 node3 |
SSH
免密登录在每一台机器都执行ssh-keygen -t rsa -b 4096
,一直回车即可
在每一台机器都执行
1 2 3 |
ssh-copy-id node1 ssh-copy-id node2 ssh-copy-id node3 |
执行完毕后,node1
、node2
、node3
之间将完成root
用户之间的免密互通
JDK
环境[[Linux#5.3.1 安装JDK环境]]
SELinux
关闭防火墙
1 2 |
systemctl stop firewalld systemctl disable firewalld |
关闭SELinux
1 2 3 4 5 |
vim /etc/sysconfig/selinux # 将SELINUX=enforcing 改为 SELINUX=disabled # 保存退出后,重启虚拟机即可 |
scp
Linux
服务器之间,通过SSH
协议互相传输文件。scp [-r] 参数1 参数2
-r
:用于复制文件夹使用,如果复制文件夹,必须使用-rscp -r /export/server/jdk root@node2:/export/server/
jdk
文件夹, 以root
的身份复制到node2
的/export/server/
内,账户名可以省略(使用本机当前的同名账户登陆)scp -r node2:/export/server/jdk /export/server/
node2
的jdk
文件夹,复制到本机的/export/server/
内 1 2 3 |
cd /export/server scp -r jdk node2:`pwd`/ # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下 scp -r jdk node2:$PWD # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下 |
Zookeeper
集群安装部署确保完成5.8 集群化环境前置准备
【node1
上操作】下载Zookeeper
安装包,并解压
1 2 3 4 5 6 7 8 |
# 下载 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 |
【node1
上操作】创建软链接:ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper
【node1
上操作】修改配置文件
1 2 3 4 5 6 7 8 9 10 11 |
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 |
【node1
上操作】配置myid
1 2 3 4 5 6 |
# 1. 创建Zookeeper的数据目录 mkdir /export/server/zookeeper/data # 2. 创建文件,并填入1 vim /export/server/zookeeper/data/myid # 在文件内填入1即可 |
【在node2
和node3
上操作】创建文件夹:mkdir -p /export/server
【node1
上操作】将Zookeeper
复制到node2
和node3
1 2 3 4 |
cd /export/server scp -r apache-zookeeper-3.5.9 node2:`pwd`/ scp -r apache-zookeeper-3.5.9 node3:`pwd`/ |
【node2
上操作】
1 2 3 4 5 6 |
# 1. 创建软链接 ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper # 2. 修改myid文件 vim /export/server/zookeeper/data/myid # 修改内容为2 |
【node3
上操作】
1 2 3 4 5 6 |
# 1. 创建软链接 ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper # 2. 修改myid文件 vim /export/server/zookeeper/data/myid # 修改内容为3 |
【在node1
、node2
、node3
上分别执行】启动Zookeeper
:/export/server/zookeeper/bin/zkServer.sh start
【在node1
、node2
、node3
上分别执行】检查Zookeepe
r进程是否启动
1 2 3 |
jps # 结果中找到有:QuorumPeerMain 进程即可 |
【node1
上操作】验证Zookeeper
1 2 3 4 5 6 |
/export/server/zookeeper/zkCli.sh # 进入到Zookeeper控制台中后,执行 ls / # 如无报错即配置成功 |
Kafka
集群安装部署确保已完成5.3.1 安装JDK环境和5.9 Zookeeper集群安装部署
【node1
操作】下载并上传Kafka
的安装包:wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz
【node1
操作】解压
1 2 3 4 5 6 7 |
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 |
【node1
操作】修改Kafka
目录内的config
目录内的server.properties
文件
1 2 3 4 5 6 7 8 9 |
cd /export/server/kafka/config # 指定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 |
【node1
操作】将node1
的kafka
复制到node2
和node3
1 2 3 4 5 6 |
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 |
【node2
操作】
1 2 3 4 5 6 7 8 9 10 11 12 |
# 创建软链接 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 |
【node3
操作】
1 2 3 4 5 6 7 8 9 10 11 12 |
# 创建软链接 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 |
启动kafka
1 2 3 4 5 6 7 |
# 请先确保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 & |
验证Kafka
启动,在每一台服务器执行:jps
node1
操作】创建测试主题:/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 3 --topic test
FinalShell
中打开2个node1
的终端页面
1 2 3 4 |
# 打开一个终端页面,启动一个模拟的数据生产者 /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
集群角色Hadoop
生态体系中的进程角色
Hadoop HDFS
的管理角色:Namenode
进程(仅需1个即可(管理者一个就够))Hadoop HDFS
的工作角色:Datanode
进程(需要多个(工人,越多越好,一个机器启动一个))Hadoop YARN
的管理角色:ResourceManager
进程(仅需1个即可(管理者一个就够))Hadoop YARN
的工作角色:NodeManager
进程(需要多个(工人,越多越好,一个机器启动一个))Hadoop
历史记录服务器角色:HistoryServer
进程(仅需1个即可(功能进程无需太多1个足够))Hadoop
代理服务器角色:WebProxyServer
进程(仅需1个即可(功能进程无需太多1个足够))Zookeeper
的进程:QuorumPeerMain
进程(仅需1个即可(Zookeeper
的工作者,越多越好))角色分配如下
node1
:Namenode
、Datanode
、ResourceManager
、NodeManager
、HistoryServer
、WebProxyServer
、QuorumPeerMain
node2
:Datanode
、NodeManager
、QuorumPeerMain
node3
:Datanode、
NodeManager、
QuorumPeerMain`node1
设置4GB
或以上内存node2
和node3
设置2GB
或以上内存Hadoop
集群部署下载Hadoop
安装包、解压、配置软链接
1 2 3 4 5 6 7 8 9 |
# 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 |
修改配置文件:hadoop-env.sh
cd
进入到/export/server/hadoop/etc/hadoop
文件夹中,配置文件都在这里hadoop-env.sh
文件
- 此文件是配置一些
Hadoop
用到的环境变量- 这些是临时变量,在
Hadoop
运行时有用- 如果要永久生效,需要写到
/etc/profile
中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 在文件开头加入: # 配置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 |
修改配置文件:core-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
配置:hdfs-site.xml
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
配置:mapred-env.sh
文件
1 2 3 4 |
# 在文件的开头加入如下环境变量设置 export JAVA_HOME=/export/server/jdk export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000 export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA |
配置:mapred-site.xml
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
配置:yarn-env.sh
文件
1 2 3 4 5 6 7 |
# 在文件的开头加入如下环境变量设置 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 |
配置:yarn-site.xml
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
|
修改workers
文件
1 2 3 |
node1 node2 node3 |
【node31操作】分发
hadoop`到其它机器
1 2 3 4 |
cd /export/server scp -r hadoop-3.3.0 node2:`pwd`/ scp -r hadoop-3.3.0 node2:`pwd`/ |
在node2
、node3
创建软链接:ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
创建所需目录
在node1执行
1 2 3 4 |
mkdir -p /data/nn mkdir -p /data/dn mkdir -p /data/nm-log mkdir -p /data/nm-local |
在node2执行
1 2 3 |
mkdir -p /data/dn mkdir -p /data/nm-log mkdir -p /data/nm-local |
在node3执行
1 2 3 |
mkdir -p /data/dn mkdir -p /data/nm-log mkdir -p /data/nm-local |
配置环境变量
在node1
、node2
、node3
修改/etc/profile
1 2 |
export HADOOP_HOME=/export/server/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin |
执行source /etc/profile
生效
格式化NameNode
,在node1
执行:hadoop namenode -format
启动hadoop
的hdfs
集群,在node1
执行
1 2 3 4 |
start-dfs.sh # 如需停止可以执行 stop-dfs.sh |
启动hadoop
的yarn
集群,在node1执行
1 2 3 4 |
start-yarn.sh # 如需停止可以执行 stop-yarn.sh |
启动历史服务器
1 2 3 |
mapred --daemon start historyserver # 如需停止将start更换为stop |
启动web
代理服务器
1 2 3 |
yarn-daemon.sh start proxyserver # 如需停止将start更换为stop |
Hadoop
集群运行情况在node1
、node2
、node3
上通过jps
验证进程是否都启动成功
验证HDFS
,浏览器打开:http://node1:9870
创建文件test.txt
,随意填入内容,并执行:
1 2 3 |
hadoop fs -put test.txt /test.txt hadoop fs -cat /test.txt |
验证YARN
,浏览器打开:http://node1:8088
执行
1 2 3 4 5 6 7 8 9 10 |
# 创建文件words.txt,填入如下内容 itheima itcast hadoop itheima hadoop hadoop itheima 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
集群部署HBase
依赖Zookeeper
、JDK
、Hadoop(HDFS)
,请确保已经完成安装
JDK
)Zookeeper
Hadoop
【node1
执行】下载HBase
安装包
1 2 3 4 5 6 7 8 |
# 下载 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 |
【node1
执行】,修改配置文件,修改conf/hbase-env.sh
文件
1 2 3 4 5 6 7 |
# 在28行配置JAVA_HOME export JAVA_HOME=/export/server/jdk # 在126行配置: # 意思表示,不使用HBase自带的Zookeeper,而是用独立Zookeeper export HBASE_MANAGES_ZK=false # 在任意行,比如26行,添加如下内容: export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true" |
【node1
执行】,修改配置文件,修改conf/hbase-site.xml
文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 将文件的全部内容替换成如下内容: |
【node1
执行】,修改配置文件,修改conf/regionservers
文件
1 2 3 |
node1 node2 node3 |
【node1
执行】,分发hbase
到其它机器
1 2 |
scp -r /export/server/hbase-2.1.0 node2:/export/server/ scp -r /export/server/hbase-2.1.0 node3:/export/server/ |
【node2
、node3
执行】,配置软链接:ln -s /export/server/hbase-2.1.0 /export/server/hbase
【node1
、node2
、node3
执行】,配置环境变量
1 2 3 4 5 |
# 配置在/etc/profile内,追加如下两行 export HBASE_HOME=/export/server/hbase export PATH=$HBASE_HOME/bin:$PATH source /etc/profile |
【node1
执行】启动HBase
请确保:Hadoop HDFS、Zookeeper是已经启动
1 2 3 4 |
start-hbase.sh # 如需停止可使用 stop-hbase.sh |
验证HBase
,浏览器打开:http://node1:16010
简单测试使用HBase
,node1
执行
1 2 3 4 5 6 7 8 9 10 11 12 13 |
hbase shell # 创建表 create 'test', 'cf' # 插入数据 put 'test', 'rk001', 'cf:info', 'itheima' # 查询数据 get 'test', 'rk001' # 扫描表数据 scan 'test' |
本小节的操作基于:大数据集群(Hadoop生态)安装部署
环节中所构建的Hadoop
集群
【node1
执行】下载并解压
1 2 3 4 5 6 7 |
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 |
【node1
执行】修改配置文件名称
1 2 3 |
cd /export/server/spark/conf mv spark-env.sh.template spark-env.sh mv slaves.template slaves |
【node1
执行】修改配置文件,spark-env.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
## 设置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 |
【node1
执行】修改配置文件,slaves
1 2 3 |
node1 node2 node3 |
【node1
执行】分发
1 2 |
scp -r spark-2.4.5-bin-hadoop2.7 node2:$PWD scp -r spark-2.4.5-bin-hadoop2.7 node3:$PWD |
【node2
、node3
执行】设置软链接:ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
【node1
执行】启动Spark
集群
1 2 3 4 |
/export/server/spark/sbin/start-all.sh # 如需停止,可以 /export/server/spark/sbin/stop-all.sh |
打开Spark
监控页面,浏览器打开:http://node1:8081
【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集群
【node1
操作】下载安装包
1 2 3 4 5 6 7 |
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 |
【node1
操作】修改配置文件conf/flink-conf.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 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 |
【node1
操作】,修改配置文件conf/slaves
1 2 3 |
node1 node2 node3 |
【node1
操作】分发Flink
安装包到其它机器
1 2 3 |
cd /export/server scp -r flink-1.10.0 node2:`pwd`/ scp -r flink-1.10.0 node3:`pwd`/ |
【node2
、node3
操作】配置软链接:ln -s /export/server/flink-1.10.0 /export/server/flink
【node1
操作】启动Flink
:/export/server/flink/bin/start-cluster.sh
验证Flink
启动,浏览器打开:http://node1:8081
【node1
执行】提交测试任务:/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar
Zabbix
部署Zabbix Server
和Zabbix Agent
在开始安装Zabbix Server
和Agent
之前,首先需要完成准备工作。请确保按照指南在服务器上安装了 MySQL 数据库。
下载安装文件
在开始安装之前,你需要从 Zabbix 官方网站 下载适合你系统版本的 Zabbix 安装包。
安装Zabbix
yum
库
运行以下命令来添加 Zabbix 的 yum 库:
1 2 |
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm yum clean all |
安装Zabbix Server
、前端、Agent
使用以下命令安装 Zabbix Server
、前端和 Agent
:
1 2 3 |
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent # 如果只需要安装 Agent 的话 yum -y install zabbix-agent |
Mysql
数据库在 MySQL 中操作来初始化数据库:
1 2 3 4 5 6 |
# 登录 MySQL 数据库 mysql -uroot -pYourPassword mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; # 或者: grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; mysql> quit; |
接着,测试在 Zabbix Server 服务器上是否能够远程登录 MySQL 数据库:
1 |
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix |
Zabbix Server
的数据库编辑文件 /etc/zabbix/zabbix_server.conf
,设置以下参数:
1 2 |
DBPassword=password DBHost=mysql-host-ip-or-hostname |
Zabbix
的PHP
前端编辑文件 /etc/httpd/conf.d/zabbix.conf
,确保配置正确。之后,运行以下命令启动、重启服务,并设置开机自启:
1 2 |
systemctl restart zabbix-server zabbix-agent httpd systemctl enable zabbix-server zabbix-agent httpd |
Zabbix
前端(WEB UI)最后,在浏览器中访问 http://192.168.88.131/zabbix
进行 Zabbix 前端的配置和管理