「Linux」软件安装

news2025/1/22 20:46:48

MySQL5.7在CentOS安装

安装

  1. 配置yum仓库
    1. 更新密钥:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    2. 安装MySQL yum库:rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
  2. 使用yum安装MySQLyum -y install mysql-community-server
  3. 安装完成后,启动MySQL并配置开机自启动
    1. 启动:systemctl start mysqld
    2. 开机自启:systemctl enable mysqld
  4. 检查MySQL的运行状态:systemctl status mysqld

配置

主要配置管理员用户root的密码以及配置允许远程登陆的权限

  1. 获取MySQL的初始密码:grep 'temporary password' /var/log/mysqld.log
  2. 登陆MySQL数据库系统
    1. mysql命令:mysql -uroot -p
      1. -u:登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
      2. -p:表示使用密码登陆
    2. 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
  3. 修改root用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
    1. 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
  4. 配置root的简单密码
    1
    2
    
    set global validate_password.policy=0;	# 密码安全级别低
    set global validate_password.length=4;	# 密码长度最低4位即可
    
  5. 配置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;
    
  6. 退出MySQL控制台页面
    1
    2
    3
    4
    
    # 退出命令
    exit
    
    # 或者通过快捷键退出:ctrl + d
    
  7. 检查端口:MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
    1
    
    netstat -anp | grep 3306
    

    image-20221012183746802

MySQL8.0版本在CentOS系统安装

安装

  1. 配置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
    
  2. 使用yum安装MySQLyum -y install mysql-community-server

  3. 安装完成后,启动MySQL并配置开机自启动

    1
    2
    
    systemctl start mysqld		# 启动
    systemctl enable mysqld		# 开机自启
    

    MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

  4. 检查MySQL的运行状态:systemctl status mysqld

配置

基本上同[[Linux#5.1.2 配置]]

  1. 允许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 '密码';
    

Tomcat安装部署

安装JDK环境

  1. 下载JDK 
  2. 登陆Linux系统,切换到root用户:su -
  3. 通过FinalShell,上传下载好的JDK安装包
  4. 创建文件夹,用来部署JDK,将JDKTomcat都安装部署到/export/server内:mkdir -p /export/server
  5. 解压缩JDK安装文件:tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
  6. 配置JDK的软链接:ln -s /export/server/jdk1.8.0_351 /export/server/jdk
  7. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中
    1
    2
    3
    
    # 编辑/etc/profile文件
    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    
  8. 生效环境变量:source /etc/profile
  9. 配置java执行程序的软链接
    1
    2
    3
    4
    
    # 删除系统自带的java程序
    rm -f /usr/bin/java
    # 软链接我们自己安装的java程序
    ln -s /export/server/jdk/bin/java /usr/bin/java
    
  10. 执行验证
    1
    2
    
    java -version
    javac -version
    

解压并部署Tomcat

建议使用非Root用户安装并启动

  1. 首先,放行tomcat需要使用的8080端口的外部访问权限,以下操作2选一即可

    1. 关闭防火墙

      1
      2
      
      systemctl stop firewalld		# 关闭防火墙
      systemctl disable firewalld		# 停止防火墙开机自启
      
    2. 配置防火墙规则,放行端口

      1
      2
      
      firewall-cmd --add-port=8080/tcp --permanent	# --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效
      firewall-cmd --reload		# 重新载入防火墙规则使其生效
      
  2. root用户操作,创建tomcat用户

    1
    2
    3
    4
    
    # 使用root用户操作
    useradd tomcat
    # 可选,为tomcat用户配置密码
    passwd tomcat
    
  3. 下载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
    
  4. 解压Tomcat安装包:tar -zxvf apache-tomcat-10.0.27.tar.gz -C /export/server

    1. 使用root用户操作,否则无权限解压到/export/server内,除非修改此文件夹权限
  5. 创建Tomcat软链接:ln -s /export/server/apache-tomcat-10.0.27 /export/server/tomcat

    1. 使用root用户操作
  6. 修改tomcat安装目录权限:chown -R tomcat:tomcat /export/server/*tomcat*

    1. 使用root用户操作,同时对软链接和tomcat安装文件夹进行修改,使用通配符*进行匹配
  7. 切换到tomcat用户:su - tomcat

  8. 启动tomcat/export/server/tomcat/bin/startup.sh

    1. tomcat启动在8080端口,可以检查是否正常启动成功:netstat -anp | grep 8080
    2. 打开浏览器,输入:http://centos:8080http://192.168.88.130:8080
      1. 使用主机名(需配置好本地的主机名映射)或IP地址访问TomcatWEB页面

Nginx安装部署

安装Nginx的操作需要root身份

  1. 安装yum依赖程序:yum install -y yum-utils

  2. 手动添加,nginxyum仓库,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
    
  3. 通过yum安装最新稳定版的nginxyum install -y nginx

  4. 启动

    1
    2
    3
    4
    5
    6
    
    # nginx自动注册了systemctl系统服务
    systemctl start nginx		# 启动
    systemctl stop nginx		    # 停止
    systemctl status nginx		# 运行状态
    systemctl enable nginx		# 开机自启
    systemctl disable nginx		# 关闭开机自启
    
  5. 配置防火墙放行: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    # 重新加载防火墙规则
    
  6. 启动后浏览器输入Linux服务器的IP地址或主机名即可访问http://192.168.88.130 或http://centos

RabbitMQ安装部署

rabbitmqyum仓库中的版本比较老,所以我们需要手动构建yum仓库

需要root权限

  1. 准备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
    
  2. 安装RabbitMQyum install erlang rabbitmq-server -y

  3. 启动

    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		# 查看状态
    
  4. 放行防火墙,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    # 重新加载防火墙规则
    
  5. 启动RabbitMQWEB管理控制台:rabbitmq-plugins enable rabbitmq_management

  6. 添加admin用户,并赋予权限

    1
    2
    3
    
    rabbitmqctl add_user admin 'Itheima66^'
    rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
    rabbitmqctl set_user_tags admin administrator
    
  7. 浏览器打开管理控制台http://192.168.88.130:15672

Redis安装部署

需要root权限

  1. 配置EPEL仓库:yum install -y epel-release

  2. 安装redisyum install -y redis

  3. 启动redis

    1
    2
    3
    4
    5
    6
    
    # 使用systemctl管控,服务名:redis
    systemctl enable redis    # 开机自启
    systemctl disable redis    # 关闭开机自启
    systemctl start redis    # 启动
    systemctl stop redis    # 关闭
    systemctl status redis    # 查看状态
    
  4. 放行防火墙,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	
    
  5. 进入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权限

  1. 添加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
    
  2. 安装esyum install -y elasticsearch

  3. 配置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"]
    
  4. 启动essystemctl start | stop | status | enable | disable elasticsearch

  5. 关闭防火墙

    1
    2
    
    systemctl stop firewalld
    systemctl disable firewalld
    
  6. 浏览器打开http://ip:9200/?pretty

集群化环境前置准备

配置多台Linux虚拟机

安装集群化软件,首要条件就是要有多台Linux服务器可用

我们可以使用VMware提供的克隆功能,将我们的虚拟机额外克隆出3台来使用

  1. 关闭当前CentOS系统虚拟机(可以使用root用户执行init 0来快速关机)

  2. 新建文件夹 如:虚拟机集群

  3. 克隆,分别命名为node1node2node3

  4. 开启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
    
  5. 同样的操作启动node2node3

    1. 修改node2主机名为node2,设置ip为192.168.88.132
    2. 修改node2主机名为node3,设置ip为192.168.88.133
  6. 配置FinalShell,配置连接到node1node2node3的连接

准备主机名映射

  1. Windows系统中修改hosts文件,填入如下内容:

    1
    2
    3
    
    192.168.88.131 node1
    192.168.88.132 node2
    192.168.88.133 node3
    
  2. 在3台Linux/etc/hosts文件中,都填入如下内容

    1
    2
    3
    
    192.168.88.131 node1
    192.168.88.132 node2
    192.168.88.133 node3
    

配置SSH免密登录

  1. 在每一台机器都执行ssh-keygen -t rsa -b 4096,一直回车即可

  2. 在每一台机器都执行

    1
    2
    3
    
    ssh-copy-id node1
    ssh-copy-id node2
    ssh-copy-id node3
    
  3. 执行完毕后,node1node2node3之间将完成root用户之间的免密互通

配置JDK环境

[[Linux#5.3.1 安装JDK环境]]

关闭防火墙和SELinux

  1. 关闭防火墙

    1
    2
    
    systemctl stop firewalld
    systemctl disable firewalld
    
  2. 关闭SELinux

    1
    2
    3
    4
    5
    
    vim /etc/sysconfig/selinux
    
    # 将SELINUX=enforcing 改为
    SELINUX=disabled
    # 保存退出后,重启虚拟机即可
    

补充命令 - scp

  1. 功能:在不同的Linux服务器之间,通过SSH协议互相传输文件。
  2. 语法:scp [-r] 参数1 参数2
    1. -r:用于复制文件夹使用,如果复制文件夹,必须使用-r
    2. 参数1:本机路径或远程目标路径
    3. 参数2:远程目标路径或本机路径
    1. scp -r /export/server/jdk root@node2:/export/server/
      1. 将本机上的jdk文件夹, 以root的身份复制到node2/export/server/内,账户名可以省略(使用本机当前的同名账户登陆)
    2. scp -r node2:/export/server/jdk /export/server/
      1. 将远程node2jdk文件夹,复制到本机的/export/server/
  3. scp命令的高级用法
    1
    2
    3
    
    cd /export/server
    scp -r jdk node2:`pwd`/    # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
    scp -r jdk node2:$PWD    # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
    

Zookeeper集群安装部署

  1. 确保完成5.8 集群化环境前置准备

  2. 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
    
  3. node1上操作】创建软链接:ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

  4. 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
    
  5. node1上操作】配置myid

    1
    2
    3
    4
    5
    6
    
    # 1. 创建Zookeeper的数据目录
    mkdir /export/server/zookeeper/data
    
    # 2. 创建文件,并填入1
    vim /export/server/zookeeper/data/myid
    # 在文件内填入1即可
    
  6. 【在node2node3上操作】创建文件夹:mkdir -p /export/server

  7. node1上操作】将Zookeeper复制到node2node3

    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`/
    
  8. 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
    
  9. 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
    
  10. 【在node1node2node3上分别执行】启动Zookeeper/export/server/zookeeper/bin/zkServer.sh start

  11. 【在node1node2node3上分别执行】检查Zookeeper进程是否启动

    1
    2
    3
    
    jps
    
    # 结果中找到有:QuorumPeerMain 进程即可
    
  12. node1上操作】验证Zookeeper

    1
    2
    3
    4
    5
    6
    
    /export/server/zookeeper/zkCli.sh
    
    # 进入到Zookeeper控制台中后,执行
    ls /
    
    # 如无报错即配置成功
    

Kafka集群安装部署

安装

  1. 确保已完成5.3.1 安装JDK环境和5.9 Zookeeper集群安装部署

  2. node1操作】下载并上传Kafka的安装包:wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

  3. 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
    
  4. 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
    
  5. node1操作】将node1kafka复制到node2node3

    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
    
  6. 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
    
  7. 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
    
  8. 启动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 &
    
  9. 验证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
  2. 运行测试,在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生态)安装部署

前置要求

  • 请确保完成了集群化环境前置准备章节的内容
  • 即:JDKSSH免密、关闭防火墙、配置主机名映射等前置操作

Hadoop集群角色

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. node1NamenodeDatanodeResourceManagerNodeManagerHistoryServerWebProxyServerQuorumPeerMain
  2. node2DatanodeNodeManagerQuorumPeerMain
  3. node3:Datanode、NodeManagerQuorumPeerMain`

安装

调整虚拟机内存
  1. node1设置4GB或以上内存
  2. node2node3设置2GB或以上内存
Hadoop集群部署
  1. 下载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
    
  2. 修改配置文件:hadoop-env.sh

    1. cd进入到/export/server/hadoop/etc/hadoop文件夹中,配置文件都在这里
    2. 修改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
    
  3. 修改配置文件:core-site.xml

    1. 清空文件,填入如下内容
      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
      
      <?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>
      
  4. 配置: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
    
    <?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>
    
  5. 配置: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
    
  6. 配置: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
    
    <?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>
    
  7. 配置: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
    
  8. 配置: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
    
    <?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>
    
  9. 修改workers文件

    1
    2
    3
    
    node1
    node2
    node3
    
  10. 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`/
    
  11. node2node3创建软链接:ln -s /export/server/hadoop-3.3.0 /export/server/hadoop

  12. 创建所需目录

    1. 在node1执行

      1
      2
      3
      4
      
      mkdir -p /data/nn
      mkdir -p /data/dn
      mkdir -p /data/nm-log
      mkdir -p /data/nm-local
      
    2. 在node2执行

      1
      2
      3
      
      mkdir -p /data/dn
      mkdir -p /data/nm-log
      mkdir -p /data/nm-local
      
    3. 在node3执行

      1
      2
      3
      
      mkdir -p /data/dn
      mkdir -p /data/nm-log
      mkdir -p /data/nm-local
      
  13. 配置环境变量

    1. node1node2node3修改/etc/profile

      1
      2
      
      export HADOOP_HOME=/export/server/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    2. 执行source /etc/profile生效

  14. 格式化NameNode,在node1执行:hadoop namenode -format

  15. 启动hadoophdfs集群,在node1执行

    1
    2
    3
    4
    
    start-dfs.sh
    
    # 如需停止可以执行
    stop-dfs.sh
    
  16. 启动hadoopyarn集群,在node1执行

    1
    2
    3
    4
    
    start-yarn.sh
    
    # 如需停止可以执行
    stop-yarn.sh
    
  17. 启动历史服务器

    1
    2
    3
    
    mapred --daemon start historyserver
    
    # 如需停止将start更换为stop
    
  18. 启动web代理服务器

    1
    2
    3
    
    yarn-daemon.sh start proxyserver
    
    # 如需停止将start更换为stop
    
验证Hadoop集群运行情况
  1. node1node2node3上通过jps验证进程是否都启动成功

  2. 验证HDFS,浏览器打开:http://node1:9870

  3. 创建文件test.txt,随意填入内容,并执行:

    1
    2
    3
    
    hadoop fs -put test.txt /test.txt
    
    hadoop fs -cat /test.txt
    
  4. 验证YARN,浏览器打开:http://node1:8088

  5. 执行

    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集群部署

  1. HBase依赖ZookeeperJDKHadoop(HDFS),请确保已经完成安装

    • 集群化软件前置准备(JDK)
    • Zookeeper
    • Hadoop
  2. 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
    
  3. 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"
    
  4. 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
    
    # 将文件的全部内容替换成如下内容:
    <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>
    
  5. node1执行】,修改配置文件,修改conf/regionservers文件

    1
    2
    3
    
    node1
    node2
    node3
    
  6. 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/
    
  7. node2node3执行】,配置软链接:ln -s /export/server/hbase-2.1.0 /export/server/hbase

  8. node1node2node3执行】,配置环境变量

    1
    2
    3
    4
    5
    
    # 配置在/etc/profile内,追加如下两行
    export HBASE_HOME=/export/server/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    
    source /etc/profile
    
  9. node1执行】启动HBase

    请确保:Hadoop HDFS、Zookeeper是已经启动

    1
    2
    3
    4
    
    start-hbase.sh
    
    # 如需停止可使用
    stop-hbase.sh
    
  10. 验证HBase,浏览器打开:http://node1:16010

  11. 简单测试使用HBasenode1执行

    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'
    

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

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

  1. 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
    
  2. node1执行】修改配置文件名称

    1
    2
    3
    
    cd /export/server/spark/conf
    mv spark-env.sh.template spark-env.sh
    mv slaves.template slaves
    
  3. 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
    
  4. node1执行】修改配置文件,slaves

    1
    2
    3
    
    node1
    node2
    node3
    
  5. 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
    
  6. node2node3执行】设置软链接:ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark

  7. node1执行】启动Spark集群

    1
    2
    3
    4
    
    /export/server/spark/sbin/start-all.sh
    
    # 如需停止,可以
    /export/server/spark/sbin/stop-all.sh
    
  8. 打开Spark监控页面,浏览器打开:http://node1:8081

  9. 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操作】下载安装包

    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
    
  2. 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
    
  3. node1操作】,修改配置文件conf/slaves

    1
    2
    3
    
    node1
    node2
    node3
    
  4. node1操作】分发Flink安装包到其它机器

    1
    2
    3
    
    cd /export/server
    scp -r flink-1.10.0 node2:`pwd`/
    scp -r flink-1.10.0 node3:`pwd`/
    
  5. node2node3操作】配置软链接:ln -s /export/server/flink-1.10.0 /export/server/flink

  6. node1操作】启动Flink/export/server/flink/bin/start-cluster.sh

  7. 验证Flink启动,浏览器打开:http://node1:8081

  8. node1执行】提交测试任务:/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar

运维监控Zabbix部署

安装Zabbix ServerZabbix Agent

在开始安装Zabbix ServerAgent之前,首先需要完成准备工作。请确保按照指南在服务器上安装了 MySQL 数据库。

  1. 下载安装文件

    在开始安装之前,你需要从 Zabbix 官方网站  下载适合你系统版本的 Zabbix 安装包。

  2. 安装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
    
  3. 安装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

配置ZabbixPHP前端

编辑文件 /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 前端的配置和管理

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

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

相关文章

原神4.0.1单机版【开局满级】纯单机,无限原石材料

版本介绍 版本4.0.1稳定版【过分追新并不稳&#xff0c;合理才完美】 独家原神&#xff0c;游戏内自带剧情任务&#xff0c;完美仿官&#xff0c;一比一完美复制&#xff01; 已经拥有完美剧情、任务、副本、卡池、深渊、全物品、和全部功能和皮肤。 修改注意 如果要进行不…

线性代数的本质——1 向量

向量是线性代数中最为基础的概念。 何为向量&#xff1f; 从物理上看&#xff0c; 向量就是既有大小又有方向的量&#xff0c;只要这两者一定&#xff0c;就可以在空间中随便移动。 从计算机应用的角度看&#xff0c;向量和列表很接近&#xff0c;可以用来描述某对象的几个不同…

不懂编程?节点包来凑——Dynamo常用节点包推荐(下)

接上篇文章&#xff0c;我们继续给大家分享节点包&#xff0c;这次呢&#xff0c;分享一些小众的节点包&#xff0c;可玩性也很高&#xff0c;但是不一定每个人都会用到&#xff0c;分享给大家&#xff0c;希望能帮到需要的人。 十一、Ampersand——★★★☆☆ Ampersand节…

Hive调优——explain执行计划

一、explain查询计划概述 explain将Hive SQL 语句的实现步骤、依赖关系进行解析&#xff0c;帮助用户理解一条HQL 语句在底层是如何实现数据的查询及处理&#xff0c;通过分析执行计划来达到Hive 调优&#xff0c;数据倾斜排查等目的。 官网指路&#xff1a; https://cwiki.ap…

Illegal escape character in string literal

问题 笔者进行Android项目开发&#xff0c;编译器提示报错 Illegal escape character in string literal详细问题 textView.setText(“A\B”); 解决方案 修改代码为A\B textView.setText(“A\B”) 产生原因 问题产生的原因是在字符串字面值中使用了非法的转义字符。在…

AMD FPGA设计优化宝典笔记(2)亚稳态

一 亚稳态 亚稳态的产生是由于寄存器采样不满足建立时间或保持时间要求导致的&#xff0c;亚稳态的产生是无法避免的&#xff0c;我们能做的只是想办法降低其发生的频率。在跨时钟域设计中&#xff0c;由于时钟域存在跨域&#xff0c;如果不采取手段&#xff0c;则会有很大概率…

【JVM篇】分析并讲解字节码文件

文章目录 &#x1f354;字节码文件⭐打开字节码文件的工具⭐字节码文件的组成✨具体分析 &#x1f354;字节码文件 字节码文件是一种中间表示形式&#xff0c;它通常由编译器将高级编程语言&#xff08;如Java、Python等&#xff09;源代码编译而成。字节码文件包含了程序的指…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书信息删除实现

锋哥原创的PyQt6图书管理系统视频教程&#xff1a; PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

【办公类-23-02】20240212徐迟《江南小镇(南浔古镇)》“水晶晶”和景物”数量提取66个

作品展示 背景需求&#xff1a; 2024年春节前夕&#xff0c;我与家人前往浙江湖州、南浔旅行。探寻母亲、外婆外公、曾外婆的祖籍南浔的风土人情。在古镇上看到了”著名诗人“徐迟”的介绍。 母亲说&#xff1a;我的姑母就是在南浔读了小学和中学&#xff0c;她小学时的老师就…

【剪映】什么样的音乐符合版权校验规则?

什么样的音乐符合版权校验规则&#xff1f; 您的模版中仅存在一首背景音乐&#xff0c;允许变速、裁剪处理。

【C语言】模拟实现库函数qsort

qsort的头文件是stdlib.h 他的四个参数分别是要进行排序的数组base的首地址&#xff0c;base数组的元素个数&#xff0c;每个元素的大小&#xff0c;以及一个函数指针&#xff0c;这个函数指针指向了一个函数&#xff0c;这个函数的参数是两个void*类型的指针&#xff0c;返回类…

《Linux 简易速速上手小册》第9章: 备份与恢复策略(2024 最新版)

文章目录 9.1 理解备份的重要性9.1.1 重点基础知识9.1.2 重点案例&#xff1a;数据中心遭受火灾9.1.3 拓展案例&#xff1a;个人电脑硬盘故障9.1.4 企业级数据库被恶意软件加密 9.2 实施备份策略9.2.1 重点基础知识9.2.2 重点案例&#xff1a;为中小企业实施备份策略9.2.3 拓展…

算法学习——LeetCode力扣二叉树篇5

算法学习——LeetCode力扣二叉树篇5 513. 找树左下角的值 513. 找树左下角的值 - 力扣&#xff08;LeetCode&#xff09; 描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 示例 1: 输入: r…

mac无法往硬盘里存东西 Mac硬盘读不出来怎么办 Mac硬盘格式 硬盘检测工具

mac有时候会出现一些问题&#xff0c;比如无法往硬盘里存东西&#xff0c;或者无法往硬盘上拷贝文件。这些问题会给用户带来很大的困扰&#xff0c;影响正常的工作和学习。那么&#xff0c;mac无法往硬盘里存东西&#xff0c;mac无法往硬盘上拷贝怎么办呢&#xff1f;软妹子将为…

【C++】类的隐式类型转换

文章目录 前言一、隐式类型转换二、explicit关键字总结 前言 一、隐式类型转换 C 类的隐式类型转换是指当一个类定义了适当的构造函数或转换函数时&#xff0c;可以在需要时自动进行类型转换&#xff0c;而无需显式调用转换函数或构造函数。这使得代码更具灵活性和简洁性。下面…

基于RBF神经网络的自适应控制器simulink建模与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1自适应控制器 4.2 RBF神经网络模型 5.完整程序 1.程序功能描述 在simulink中&#xff0c;使用S函数编写基于RBF神经网络的自适应控制器&#xff0c;然后实现基于RBF神经网络的自适应控制…

Linux下的自动化任务与计划任务:让你的系统更智能

在日常的Linux系统管理中&#xff0c;你是否经常需要定时执行某些任务&#xff0c;或者希望在系统启动时自动运行某些脚本&#xff1f;如果是的话&#xff0c;那么自动化任务和计划任务将是你的得力助手。它们可以帮助你提高系统效率、减少人工干预&#xff0c;并确保任务能够按…

OCP使用CLI创建和构建应用

文章目录 环境登录创建project赋予查看权限部署第一个image创建route检查pod扩展应用 部署一个Python应用连接数据库创建secret加载数据并显示国家公园地图 清理参考 环境 RHEL 9.3Red Hat OpenShift Local 2.32 登录 通过 crc console --credentials 可以查看登录信息&…

MyBatis篇----第二篇

系列文章目录 文章目录 系列文章目录前言一、MyBatis 框架适用场合二、MyBatis 与 Hibernate 有哪些不同?三、#{}和${}的区别是什么?四、当实体类中的属性名和表中的字段名不一样 ,怎么办?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一…

WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater

前面跟大家介绍了『如何修改WordPress后台管理员用户名&#xff1f;推荐2种简单方法』一文&#xff0c;但是对于有很多用户的站长来说&#xff0c;操作有点复杂&#xff0c;而且无法发邮件通知对方&#xff0c;所以今天boke112百科向大家推荐一款可以直接在WordPress后台修改所…