当前位置:   article > 正文

大数据平台环境搭建_使用dockers搭建大数据环境

使用dockers搭建大数据环境

文章目录

任务一:大数据平台环境搭建

注:配上大数据组件下载地址:Index of /dist (apache.org)
一、Docker 容器环境安装配置
1. 安装 Docker 服务
Docker 旧版本
yum install -y docker
  • 1

查看 docker 是否安装成功

docker -v
  • 1
rpm -qa | grep -i docker
  • 1

卸载 docker

yum remove -y docker-*
  • 1
Docker 新版本(手动安装)

安装依赖的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1

添加 docker 的 Yum 源

配置 docker 的 yum 源是为了安装 docker 的时候速度更快,更稳定,成功率高

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1

安装 docker

yum install -y docker-ce docker-ce-cli containerd.io
  • 1

查看 docker 是否安装成功

docker -v
  • 1
Docker 新版本(自动安装)

卸载 docker

yum remove -y docker-*
  • 1

安装 docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • 1

查看 docker 是否安装成功

docker -v
  • 1
2. Docker 服务

启动 docker 服务

systemctl start docker
  • 1

开机启动 docker 服务

systemctl enable docker
  • 1

查看 docker 服务状态

systemctl status docker
  • 1

重启 docker 服务

systemctl restart docker
  • 1
3. 配置 docker 镜像加速器

配置镜像加速器是为了让我们从仓库拉取镜像的时候速度更快,更稳定,成功率高

配置加速器

vim /etc/docker/daemon.json
  • 1
{
"registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.ccs.tencentyun.com",
        "https://3iy7bctt.mirror.aliyuncs.com"
 ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

重新加载配置文件

systemctl daemon-reload
  • 1

重启 docker 服务

systemctl restart docker
  • 1

查看 docker 服务状态

systemctl status docker
  • 1

查看加速器是否配置成功

docker info
  • 1
4. Docker 镜像基本命令
查看镜像
docker images
  • 1

REPOSITORY TAG IMAGE ID CREATED SIZE

注意:

REPOSITORY:来源仓库

TAG:镜像的标签信息,表示镜像的版本,只是标记,并不能表示镜像内容

IMAGE ID:镜像 id,唯一表示一个镜像,如果两个镜像的 ID 相同,说明它们实际上指向了同一个镜像,只是具有不同标签名称而已

CREATED:镜像的最后更新时间

SIZE:镜像大小

搜索镜像
docker search centos
  • 1
拉取镜像

当我们在本地主机上使用一个不存在的镜像时,Docker 就会自动下载这个镜像,如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它

docker pull centos:7.5.1804
docker pull mysql:5.7
docker pull hello-world
docker images
  • 1
  • 2
  • 3
  • 4

注意:如果不加版本号,则默认版本号为最新的

注意:镜像拉取完成后,我们可以用镜像来运行容器

删除镜像

使用 tag 标签删除镜像

注意:如果删除的时候报错:有容器使用了该镜像,则需要先删除使用过该镜像的容器,才能删除该镜像

# docker rmi 镜像名:版本号

docker rmi -f hello-world:latest
  • 1
  • 2
  • 3
docker images
  • 1

使用 id 删除镜像

# docker rmi id号

docker rmi -f feb5d9fea6a5
  • 1
  • 2
  • 3
把镜像保存为具体文件
# docker save -o 本地路径+文件名
# 注意:文件名建议.tar结尾

docker save -o centos.tar centos:7.5.1804
  • 1
  • 2
  • 3
  • 4
把镜像加载到 docker 中

方法一:

docker load -i centos.tar
  • 1
docker load --input centos.tar
  • 1

方法二:

docker load < centos.tar
  • 1
5. Docker 容器基本命令
创建容器
docker create -i -t -h bigdata2 --name centos100 centos:7.5.1804 /bin/bash

# -h HOSTNAME:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts
# docker create -i -t -h master --name masterbigdata centos:7.5.1804 /bin/bash
# --name="名称": 为容器指定一个名称

docker create -it centos:7.5.1804 /bin/bash
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注意:

  • 容器的名称是唯一的

  • 如果不指定容器名称,docker 会自动分配

查看容器
# 查看所有容器
docker ps -a
# 查看所有运行状态的容器
docker ps
  • 1
  • 2
  • 3
  • 4
启动容器
docker start 容器名称/ID
  • 1
停止容器
docker stop 容器名称/ID
  • 1
进入容器

方式一:

# docker exec -i -t 容器ID/名称 /bin/bash
  • 1

方式二:

# docker attach 容器ID/名称
  • 1

区别:exec 用 exit 退出时,不停止容器;attach 用 exit 退出时,停止容器

exitctrl+p->ctrl+q
exec退出不停止容器退出不停止容器
attach退出停止容器退出不停止容器
退出容器
exit
  • 1
重启容器
# docker restart 容器ID/名称
  • 1
删除容器
  • 删除未启动的容器
# docker rm 容器ID/名称
  • 1
  • 删除启动的容器
# docker stop 容器ID/名称
  • 1
  • 强制删除启动的容器
# docker rm -f 容器ID/名称
  • 1
一步完成新建和启动容器
docker run -i -t -h bigdata2 --name centos102 centos:7.5.1804 /bin/bash

# -h HOSTNAME:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts
# docker run -i -t -h master --name masterbigdata centos:7.5.1804 /bin/bash
# --name="名称": 为容器指定一个名称
  • 1
  • 2
  • 3
  • 4
  • 5
docker run -i -t -d -h master --name masterbigdata centos:7.5.1804 /bin/bash
docker run -i -t -d -h slave1 --name slave1bigdata centos:7.5.1804 /bin/bash
docker run -i -t -d -h slave2 --name slave2bigdata centos:7.5.1804 /bin/bash

# docker exec -i -t 容器ID/名称 /bin/bash
  • 1
  • 2
  • 3
  • 4
  • 5

相当于

docker pull # (本地不存在镜像,则会拉取)
docker create
docker start
docker exec
  • 1
  • 2
  • 3
  • 4

后台启动容器

docker run -i -t -h bigdata3 --name centos103 -d centos:7.5.1804 /bin/bash
  • 1

注意:

-d 指启动容器后,但不进入容器,挂后台

启动 MySQL 容器
docker run -p 3307:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=000000 -d mysql:5.7
  • 1

注意:

-p 指定主机映射的端口号和 MySQL 的端口号,格式为 3307:3306

-e 指定 root 用户名密码:-e MYSQL_ROOT_PASSWORD=000000

获取所有的容器 ID
docker ps -a -q
  • 1
删除所有容器
docker rm -f $(docker ps -a -q)
  • 1
docker rm -f `docker ps -a -q`
  • 1
杀死所有运行容器
docker stop $(docker ps -a -q)
  • 1
docker stop `docker ps -a -q`
  • 1
docker kill $(docker ps -a -q)
  • 1
docker kill `docker ps -a -q`
  • 1

注意:docker kill 比 docker stop 停止容器要快

启动所有容器
docker start $(docker ps -a -q)
  • 1
docker start `docker ps -a -q`
  • 1
导入和导出容器

思路:修改 centos 容器 --> 导出成 .tar 文件 --> .tar 文件导入到新系统(以镜像的方式存在) --> 通过镜像启动容器

  • 导出容器
docker export -o abc.tar 0925e9bc7ef1
  • 1
docker export 0925e9bc7ef1 > abc.tar
  • 1
  • 导入容器
# docker import 文件路径/文件名 镜像名:版本号

docker import abc.tar centos:2
  • 1
  • 2
  • 3
容器与主机之间复制文件

容器和主机之间复制文件的时候,要保证容器已经启动

从主机复制文件到容器中:

docker cp ./docker101.txt 18e9a72a0bd4:/
  • 1

从容器复制文件到主机中:

docker cp 18e9a72a0bd4:/docker102.txt ./
  • 1

注意:

  • 容器与主机之间复制文件,容器需要是启动状态

  • 容器与容器之间不能复制文件

二、Hadoop 完全分布式安装配置
1. 修改 IP 和 MAC 地址

三台机器都要修改

vi /etc/sysconfig/network-scripts/ifcfg-ens33	# 进入本机网卡配置文件
  • 1

添加如下内容

ONBOOT="yes"	# 启动时是否激活 yes | no
BOOTPROTO="static"	# 协议类型
IPADDR=192.168.44.100	# 网络IP地址
NETMASK=255.255.255.0	# 网络子网地址
GATEWAY=192.168.44.2	# 网关地址
HWADDR=00:0C:29:11:26:A1	# 网卡MAC地址
DNS1=8.8.8.8	# 域名服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重启网卡

service network restart
  • 1

使用 ping 命令测试网络的连通性

ping www.baidu.com
  • 1

关闭 centos7 蜂鸣器声音

cd /etc/modprobe.d
vi pcspkr.conf
# 添加内容如下
blacklist pcspkr
  • 1
  • 2
  • 3
  • 4

保存之后重启

安装 net-tools 包

yum install net-tools
  • 1

安装 vim 命令

yum -y install vim*
  • 1
2. 修改主机名
vim /etc/hostname
  • 1

添加如下内容

bigdata1
  • 1

另外两台分别添加

slave1
  • 1
slave2
  • 1

或者

三台机器同时执行

hostnamectl set-hostname bigdata1

bash	# 查看更改是否生效
  • 1
  • 2
  • 3
hostnamectl set-hostname slave1

bash	# 查看更改是否生效
  • 1
  • 2
  • 3
hostnamectl set-hostname slave2

bash	# 查看更改是否生效
  • 1
  • 2
  • 3
3. 设置 IP 和域名映射
vim /etc/hosts
  • 1

添加内容如下,另外两台也分别添加

192.168.44.100 bigdata1
192.168.44.110 slave1 
192.168.44.120 slave2 
  • 1
  • 2
  • 3

设置完成后,重启三台主机(用第二种方式修改主机名可不重启)

reboot
  • 1
4. 关闭防火墙

三台机器同时执行

systemctl stop firewalld	# 关闭防火墙
systemctl disable firewalld	# 禁止开机启动
systemctl status firewalld	# 检查防火墙状态
  • 1
  • 2
  • 3
5. 关闭 SELINUX

三台机器同时执行

修改 SELINUX 的配置文件

vim /etc/selinux/config
  • 1

修改内容如下

# 将 SELINUX=enforcing 修改为 SELINUX=disabled
SELINUX=disabled
  • 1
  • 2
6. 免密登录

三台机器同时执行

ssh-keygen -t rsa	# 生成公私钥
  • 1

三台机器同时执行

ssh-copy-id bigdata1	# 拷贝公钥到bigdata1
  • 1

在 bigdata1 机器上使用如下命令

scp -r /root/.ssh/authorized_keys slave1:/root/.ssh
scp -r /root/.ssh/authorized_keys slave2:/root/.ssh
  • 1
  • 2
7. 时钟同步

三台机器同时执行

crontab -e
  • 1

添加内容如下

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
  • 1

或者

三台机器同时执行

timedatectl timezones Aisa/Shanghai
  • 1
8. JDK 安装

查看自带的 openjdk 并卸载

rpm -qa | grep java	# 搜索java相关的rpm包
yum -y remove	# 卸载当前jdk的rpm包
  • 1
  • 2

创建安装目录

mkdir -p /export/softwares	# 软件包存放目录
mkdir -p /export/servers   # 安装目录
  • 1
  • 2

上传并解压

在客户端(SerT)中进行登录,用 rz -E 的命令工具进行上传,如果没有,则进行下载

yum -y install lrzsz
  • 1
cd /export/softwares/
rz -E
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 jdk1.8.0_212 重命名为 java

cd /export/servers/

mv jdk1.8.0_212 java
  • 1
  • 2
  • 3

配置环境变量

vim /etc/profile
  • 1

添加内容如下

# JDK
export JAVA_HOME=/export/servers/java
export PATH=$PATH:$JAVA_HOME/bin
  • 1
  • 2
  • 3

重启生效

source /etc/profile
  • 1

测试是否成功安装

java -version
  • 1

在 bigdata1 机器上执行如下命令

scp -r /export/servers/java/ slave1:/export/servers	# 将JDK发送给slave1
scp -r /export/servers/java/ slave2:/export/servers	# 将JDK发送给slave2
scp -r /etc/profile slave1:/etc/profile	# 将/etc/profile发送给slave1
scp -r /etc/profile slave2:/etc/profile	# 将/etc/profile发送给slave2
  • 1
  • 2
  • 3
  • 4

在 slave1 和 slave2 执行如下命令

source /etc/profile	# 重启生效
  • 1

配置环境变量对当前 root 用户生效

vim /root/.bash_profile
  • 1

配置环境变量对全局生效

vim /etc/profile
  • 1
9. HADOOP 安装

集群规划

Bigdata1Slave1Slave2
HDFSNameNode
DataNodeDataNodeDataNode
SecondaryNameNode
YARNNodeManagerNodeManagerNodeManager
ResourceManager

上传并解压

cd /export/softwares/
rz -E
tar -zxvf hadoop-3.1.3.tar.gz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 hadoop-3.1.3 重命名为 hadoop

cd /export/servers/

mv hadoop-3.1.3 hadoop
  • 1
  • 2
  • 3

配置环境变量

vim /etc/profile
  • 1

添加内容如下

# HADOOP
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4

重启生效

source /etc/profile
  • 1

测试是否成功安装

hadoop version
  • 1

在 bigdata1 机器上执行如下命令

scp -r /export/servers/hadoop/ slave1:/export/servers/	# 将HADOOP发送给slave1
scp -r /export/servers/hadoop/ slave2:/export/servers/	# 将HADOOP发送给slave1
scp -r /etc/profile slave1:/etc/profile	# 将/etc/profile发送给slave1
scp -r /etc/profile slave2:/etc/profile	# 将/etc/profile发送给slave2
  • 1
  • 2
  • 3
  • 4

在 slave1 和 slave2 执行如下命令

source /etc/profile	# 重启生效
  • 1

进入 HADOOP 配置文件目录下

cd /export/servers/hadoop/etc/hadoop
  • 1
  • 修改 hadoop-env.sh 配置文件

    vim hadoop-env.sh
    # 添加内容如下
    export JAVA_HOME=/export/servers/java
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 修改 core-site.xml 配置文件

    vim core-site.xml
    <!-- 添加内容如下 -->
    <configuration>
            <!-- 指定 HDFS 中 NameNode 的地址 -->
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://bigdata1:8020</value>
            </property>
            
            <!-- 指定 hadoop 运行时产生文件的存储目录 -->
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/export/servers/hadoop/data</value>
            </property>
            
            <!-- 配置 HDFS 网页登录使用的静态用户为 root -->
    		<property>
    			 <name>hadoop.http.staticuser.user</name>
                 <value>root</value>
    		</property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 修改 hdfs-site.xml 配置文件

    vim hdfs-site.xml
    <!-- 添加内容如下 -->
    <configuration>
    		<!-- nn web 端访问地址-->
            <property>
                    <name>dfs.namenode.http-address</name>
                    <value>bigdata1:9870</value>
            </property>
            
            <!-- 2nn web 端访问地址-->
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>bigdata1:9868</value>
            </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 修改 yarn-site.xml 配置文件

    vim yarn-site.xml
    <!-- 添加内容如下 -->
    <configuration>
    		<!-- 指定 MR 走 shuffle -->
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
    
            <!-- 指定 ResourceManager 的地址-->
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>bigdata1</value>
            </property>
    
            <!-- 环境变量的继承 -->
            <property>
                    <name>yarn.nodemanager.env-whitelist</name>
                	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_C
    ONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
            </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 修改 mapred-site.xml 配置文件

    vim mapred-site.xml
    <!-- 添加内容如下 -->
    <configuration>
    		<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 修改 workers 配置文件

    vim workers
    # 添加内容如下
    bigdata1
    slave1
    slave2
    
    • 1
    • 2
    • 3
    • 4
    • 5

在 bigdata1 机器上执行如下命令

scp -r /export/servers/hadoop/etc/hadoop/ slave1:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave1
scp -r /export/servers/hadoop/etc/hadoop/ slave2:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave2
  • 1
  • 2

启动集群

  • 在 bigdata1 机器上对 NameNode 进行格式化

    hdfs namenode -format
    
    • 1
  • 启动 HDFS

    cd /export/servers/hadoop
    
    • 1
    sbin/start-dfs.sh
    
    • 1

    查看 HDFS 是否启动

    [root@bigdata1 hadoop]# jps
    1683 NameNode
    2053 SecondaryNameNode
    1853 DataNode
    2174 Jps
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 启动 YARN

    cd /export/servers/hadoop
    
    • 1
    sbin/start-yarn.sh
    
    • 1

    查看 YARN 是否启动

    [root@bigdata1 hadoop]# jps
    1683 NameNode
    2053 SecondaryNameNode
    2774 Jps
    2312 ResourceManager
    2459 NodeManager
    1853 DataNode
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • Web 端查看 HDFS 的 NameNode

    浏览器中输入:http://192.168.44.100:9870

    查看 HDFS 上存储的数据信息

  • Web 端查看 YARN 的 ResourceManager

    浏览器中输入:http://192.168.44.100:8088

    查看 YARN 上运行的 Job 信息

配置历史服务器

cd /export/servers/hadoop/etc/hadoop
  • 1
vim mapred-site.xml
<!-- 添加内容如下 -->
<configuration>
		<!-- 历史服务器端地址 -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>bigdata1:10020</value>
        </property>
        
        <!-- 历史服务器 web 端地址 -->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>bigdata1:19888</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在 bigdata1 机器上执行如下命令

scp -r /export/servers/hadoop/etc/hadoop/ slave1:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave1
scp -r /export/servers/hadoop/etc/hadoop/ slave2:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave2
  • 1
  • 2

重新启动 YARN 后在 bigdata1 机器上启动历史服务器

stop-yarn.sh
start-yarn.sh
  • 1
  • 2
mapred --daemon start historyserver
  • 1

查看历史服务器是否启动

[root@bigdata1 ~]# jps
10689 ResourceManager
10838 NodeManager
9079 DataNode
11399 Jps
8908 NameNode
9278 SecondaryNameNode
11342 JobHistoryServer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Web 端查看 YARN 的 JobHistory

浏览器中输入:http://192.168.44.100:19888

查看 YARN 上运行的 JobHistory 信息

10. HADOOP 官方文档

在比赛期间,如果忘记了 hadoop 的配置文件该如何去写,可以用一种方法,在虚拟机上原有的 hadoop 安装包下载到我们 windows 上

cd /export/softwares

# 使用sz命令下载到Windows上
sz hadoop-3.1.3.tar.gz
  • 1
  • 2
  • 3
  • 4

查看 windows 下下载的 hadoop-3.1.3.tar.gz 压缩文件,进行解压缩,解压缩后进入 hadoop-3.1.3 文件夹

进入 hadoop-3.1.3\share\doc\hadoop 这个目录下,有一个 index 的 html 文件,双击进去

里面有相关 hadoop 的配置文档供我们查看并记忆,而且这样比赛不算违规

三、Mysql 安装配置
1. 卸载系统自带的 Mariadb
rpm -qa | grep mariadb
  • 1
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
  • 1
2. 删除 etc 目录下的 my.cnf 文件
rm -rf /etc/my.cnf
  • 1
3. 检查 MySQL 是否存在
rpm -qa | grep mysql
  • 1

检查 mysql 组是否存在

cat /etc/group | grep mysql
  • 1

检查 mysql 用户是否存在

cat /etc/passwd | grep mysql
  • 1

创建 mysql 用户组

groupadd mysql
  • 1

创建 mysql 用户,并将 mysql 用户添加到 mysql 用户组

useradd -g mysql mysql
  • 1

为 mysql 用户指定密码为 passwd

passwd mysql
  • 1
4. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将文件重命名为 mysql

cd /export/servers/
mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql
  • 1
  • 2

在 mysql 文件下创建 data 文件夹

cd /export/servers/mysql/
mkdir data
  • 1
  • 2

更改 mysql 文件夹所属的组和用户

cd /export/servers
# 更改 mysql 文件夹所属用户 
chown -R mysql mysql/
# 更改 mysql 文件夹所属用户组 
chgrp -R mysql mysql/
  • 1
  • 2
  • 3
  • 4
  • 5
5. 新建配置文件 my.cnf
# 新建 my.cnf 文件
touch /etc/my.cnf 
# 编辑 my.cnf 文件
vim /etc/my.cnf
  • 1
  • 2
  • 3
  • 4

在 my.cnf 文件内添加以下配置

[mysql] 
# 设置 mysql 客户端默认字符集 
default-character-set=utf8 
[mysqld] 
# skip-name-resolve
# 设置 3306 端口 
port=3306 
# 设置 mysql 的安装目录
basedir=/export/servers/mysql/
# 设置 mysql 数据库的数据的存放目录
datadir=/export/servers/mysql/data
# 允许最大连接数 
max_connections=200 
# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集 
character-set-server=utf8 
# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB 
# lower_case_table_name=1
max_allowed_packet=16M
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
6. 初始化 mysqld

生成初始化密码

cd /export/servers/mysql
  • 1
./bin/mysqld --initialize --user=mysql --basedir=/export/servers/mysql --datadir=/export/servers/mysql/data
  • 1
7. 设置开机启动

将 mysql.server 脚本复制到资源目录 /etc/rc.d/init.d/mysqld,并赋予执行权限

cd /export/servers/mysql
  • 1
# 将mysql.server脚本复制到资源目录/etc/rc.d/init.d/mysqld
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld 
# 赋予执行权限 
chmod +x /etc/rc.d/init.d/mysqld
  • 1
  • 2
  • 3
  • 4

执行下面命令将 mysqld 服务加入到系统服务

chkconfig --add mysqld
  • 1

检测是否生效

chkconfig --list mysqld
  • 1

执行下面命令启动 mysqld 服务

service mysqld start
  • 1
8. 配置环境变量
vim /etc/profile
  • 1

添加内容如下

# MYSQL
export MYSQL_HOME=/export/servers/mysql 
export PATH=$PATH:$MYSQL_HOME/bin
  • 1
  • 2
  • 3

重启生效

source /etc/profile
  • 1

查看环境变量的值

echo $PATH
  • 1
9. 修改访问密码

访问 mysql 数据库

mysql -uroot -p
  • 1

注意:此时密码使用前面自动生成的初始化密码

执行 sql 语句,设置 root 密码

set password=password('123456');
  • 1

选择数据库

use mysql;
  • 1

修改 root 用户的访问密码

update user set authentication_string=PASSWORD('123456') where user='root';
  • 1

设置远程访问

grant all privileges on *.* to root@"%" identified by "123456" with grant option;
  • 1

刷新授权表使其生效

flush privileges;
  • 1

退出

exit;
  • 1
四、Hive 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 apache-hive-3.1.2-bin 重命名为 hive

cd /export/servers/

mv apache-hive-3.1.2-bin hive
  • 1
  • 2
  • 3
2. 配置环境变量
vim /etc/profile
  • 1

添加内容如下

# HIVE
export HIVE_HOME=/export/servers/hive
export PATH=$PATH:$HIVE_HOME/bin
  • 1
  • 2
  • 3

重启生效

source /etc/profile
  • 1
3. 将 Hive 元数据配置到 MySQL

上传驱动

cd /export/softwares/
rz -E
  • 1
  • 2

拷贝 mysql jdbc 驱动到 hive 安装包 lib 下

cp /export/softwares/mysql-connector-java-5.1.38.jar /export/servers/hive/lib
  • 1

解决 Hive 与 Hadoop 之间guava版本差异

cd /export/servers/hive/lib/
rm -rf guava-19.0.jar
cp /export/servers/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar ./
  • 1
  • 2
  • 3

修改 hive-env.sh 配置文件

cd /export/servers/hive/conf/
mv hive-env.sh.template hive-env.sh

vim hive-env.sh
# 添加内容如下
export HADOOP_HOME=/export/servers/hadoop
export HIVE_CONF_DIR=/export/servers/hive/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在 /export/servers/hive/conf 目录下新建 hive-site.xml 文件

vim hive-site.xml
<!-- 添加内容如下 -->
<configuration>
	<!-- jdbc 连接的 URL -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://bigdata1:3306/metastore?createDatabaseIfNotExist=true</value>
	</property>
 
	<!-- jdbc 连接的 Driver-->
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>

	<!-- jdbc 连接的 username-->
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>root</value>
	</property>

	<!-- jdbc 连接的 password -->
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>123456</value>
	</property>
   
	<!-- 关闭元数据存储授权  --> 
	<property>
		<name>hive.metastore.event.db.notification.api.auth</name>
		<value>false</value>
	</property>
</configuration>
  • 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

如在比赛时忘记 hive-site.xml 文件的内容,可以进入 conf 目录下 hive-default.xml.template 模板文件搜索

cd /export/servers/hive/conf

vim hive-default.xml.template 
  • 1
  • 2
  • 3

初始化 Hive 元数据库

schematool -initSchema -dbType mysql -verbose
  • 1

在 hdfs 创建 hive 存储目录(如存在则不用操作)

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod 777 /tmp
hadoop fs -chmod 777 /user/hive/warehouse
  • 1
  • 2
  • 3
  • 4
5. 再次启动 Hive

先启动 hadoop 集群

start-all.sh
  • 1

在第一个窗口中启动,进行查询数据表的操作

cd /export/servers/hive
bin/hive
  • 1
  • 2
hive> show databases;
hive> show tables;
  • 1
  • 2

克隆一个窗口,在克隆窗口中启动 Hive

hive
  • 1

克隆窗口和原窗口都可以进行数据查询访问,即 MySQL 数据库已作为 Hive 元数据库

6. 使用元数据服务的方式访问 Hive

在 hive-site.xml 文件中添加如下配置信息

cd /export/servers/hive/conf
vim hive-site.xml
# 添加内容如下
  • 1
  • 2
  • 3
<!-- 指定存储元数据要连接的地址 -->
<property>
        <name>hive.metastore.uris</name>
        <value>thrift://bigdata1:9083</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

启动 metastore 服务

# 前台启动
hive --service metastore
# 后台启动
nohup /export/servers/hive/bin/hive --service metastore &
  • 1
  • 2
  • 3
  • 4

启动 hive

cd /export/servers/hive
bin/hive
  • 1
  • 2
7. 使用 JDBC 方式访问 Hive

在 hive-site.xml 文件中添加如下配置信息

cd /export/servers/hive/conf
vim hive-site.xml
# 添加内容如下
  • 1
  • 2
  • 3
<!-- 指定 hiveserver2 连接的 host -->
<property>
        <name>hive.server2.thrift.bind.host</name>
        <value>bigdata1</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

启动 hiveserver2 服务

# 前台启动
hive --service hiveserver2
# 后台启动
nohup /export/servers/hive/bin/hive --service hiveserver2 &
  • 1
  • 2
  • 3
  • 4

在 hadoop 的配置文件 core-site.xml 中添加如下属性:

cd /export/servers/hadoop/etc/hadoop
vim core-site.xml
# 添加内容如下
  • 1
  • 2
  • 3
<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在 bigdata1 机器上执行如下命令

scp -r /export/servers/hadoop/etc/hadoop/ slave1:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave1
scp -r /export/servers/hadoop/etc/hadoop/ slave2:/export/servers/hadoop/etc/	# 将HADOOP的配置文件发送给slave2
  • 1
  • 2

重新启动 hadoop 集群

stop-all.sh
start-all.sh
  • 1
  • 2

启动 beeline 客户端(需要多等待一会)

连接访问

/export/servers/hive/bin/beeline

beeline> ! connect jdbc:hive2://bigdata1:10000
beeline> root
beeline> 123456
  • 1
  • 2
  • 3
  • 4
  • 5
8. 常见属性配置

Hive 运行日志信息配置

Hive 的 log 默认存放在 /tmp/root 目录下(当前用户名下)

修改 hive 的 log 存放日志

cd /export/servers/hive/conf/
mv hive-log4j2.properties.template hive-log4j2.properties

vim hive-log4j2.properties
# 修改如下内容
# 原内容
property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
# 修改后内容
property.hive.log.dir = /export/servers/hive/logs
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

打印当前库和表头

cd /export/servers/hive/conf

vim hive-site.xml
# 添加内容如下
  • 1
  • 2
  • 3
  • 4
<property>
		<name>hive.cli.print.header</name>
		<value>true</value>
</property>	
<property>
		<name>hive.cli.print.current.db</name>
		<value>true</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这样子进入 hive 客户端时,便可以清楚的知道是在哪个数据库,哪个表头

9. 解决 hive shell 中有许多日志信息的方法

在 hive 的安装目录下,在 conf 目录创建 log4j.properties日志的配置文件,然后写入以下信息就可以了

cd /export/servers/hive/conf

vim log4j.properties
  • 1
  • 2
  • 3
log4j.rootLogger=WARN, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
  • 1
  • 2
  • 3
  • 4
五、Zookeeper 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf zookeeper-3.4.5.tar.gz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 zookeeper-3.4.5 重命名为 zookeeper

cd /export/servers/

mv zookeeper-3.4.5 zookeeper
  • 1
  • 2
  • 3
2. 配置环境变量
vim /etc/profile
  • 1

添加内容如下

# ZOOKEEPER
export ZOOKEEPER_HOME=/export/servers/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
  • 1
  • 2
  • 3

刷新环境变量

source /etc/profile
  • 1
3. 修改配置文件
cd /export/servers/zookeeper/conf/

cp zoo_sample.cfg zoo.cfg

mkdir -p /export/servers/zookeeper/zkdatas/

vim zoo.cfg
# 添加内容如下
dataDir=/export/servers/zookeeper/zkdatas
# 保留多少个快照  (保留多少个生成的日志文件数)
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址  集群中myid==1 的服务器为bigdata1,并开启2888和3888两个端口
server.1=bigdata1:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
4. 添加 myid 配置
cd /export/servers/zookeeper/zkdatas/

touch myid

echo 1 > /export/servers/zookeeper/zkdatas/myid
  • 1
  • 2
  • 3
  • 4
  • 5
5. 分发并修改 myid 的值

在 bigdata1 机器上执行如下命令

scp -r /export/servers/zookeeper/ slave1:/export/servers	# 将/export/servers/zookeeper/发送给slave1
scp -r /export/servers/zookeeper/ slave2:/export/servers	# 将/export/servers/zookeeper/发送给slave2
scp -r /etc/profile slave1:/etc/profile	# 将/etc/profile发送给slave1
scp -r /etc/profile slave2:/etc/profile	# 将/etc/profile发送给slave
  • 1
  • 2
  • 3
  • 4

在 slave1 和 slave2 执行如下命令

source /etc/profile	# 重启生效
  • 1

在 slave1 机器上修改myid的值为2

cd /export/servers/zookeeper/zkdatas/
echo 2 > /export/servers/zookeeper/zkdatas/myid
  • 1
  • 2

在 slave2 机器上修改myid的值为3

cd /export/servers/zookeeper/zkdatas/
echo 3 > /export/servers/zookeeper/zkdatas/myid
  • 1
  • 2
6. 启动 zookeeper 服务

三台机器同时执行:

/export/servers/zookeeper/bin/zkServer.sh start
  • 1

查看启动状态

/export/servers/zookeeper/bin/zkServer.sh status
  • 1

启动 zookeeper 客户端

zkCli.sh
  • 1
7. 启动zookeeper 脚本
cd /export/servers/zookeeper/bin	# 进入到zookeeper的bin目录

vim start_zk.sh	# 新建脚本文件
# 添加内容如下
#! /bin/sh
for host in bigdata1 slave1 slave2
do
        ssh $host "source /etc/profile;zkServer.sh start"
        echo "$host zookeeper Server 正在启动......"
done

# 为start_zk.sh脚本文件赋予777权限
chmod 777 start_zk.sh

# 运行start_zk.sh脚本文件
cd /export/servers/zookeeper/bin
./start_zk.sh	# 即可启动三台主机的zookeeper服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
六、Kafka 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 kafka 重命名为 kafka

cd /export/servers/

mv kafka_2.12-2.4.1 kafka
  • 1
  • 2
  • 3
2. 修改配置文件
cd /export/servers/kafka/config/

vim server.properties
# 修改内容如下
broker.id=0
log.dirs=/export/servers/kafka/data
zookeeper.connect=bigdata1:2181,slave1:2181,slave2:2181/kafka
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
3. 分发文件
scp -r /export/servers/kafka slave1:/export/servers/	# 将/export/servers/kafka发送给slave1
scp -r /export/servers/kafka slave2:/export/servers/	# 将/export/servers/kafka发送给slave2
  • 1
  • 2

在 slave1 机器上修改 /export/servers/kafka/config/server.properties 中的 broker.id=1 的值为1

cd /export/servers/kafka/config/

vim server.properties
# 修改内容如下
broker.id=1
  • 1
  • 2
  • 3
  • 4
  • 5

在 slave2 机器上修改 /export/servers/kafka/config/server.properties 中的 broker.id=1 的值为2

cd /export/servers/kafka/config/

vim server.properties
# 修改内容如下
broker.id=2
  • 1
  • 2
  • 3
  • 4
  • 5
4. 配置环境变量
vim /etc/profile
  • 1

添加内容如下

# KAFKA
export KAFKA_HOME=/export/servers/kafka/
export PATH=$PATH:$KAFKA_HOME/bin
  • 1
  • 2
  • 3

刷新环境变量

source /etc/profile
  • 1

在 bigdata1 机器上执行如下命令

scp -r /etc/profile slave1:/etc/profile	# 将/etc/profile发送给slave1
scp -r /etc/profile slave2:/etc/profile	# 将/etc/profile发送给slave
  • 1
  • 2

在 slave1 和 slave2 执行如下命令

source /etc/profile	# 重启生效
  • 1
5. 启动集群

在 bigdata1 机器上启动 zookeeper 脚本,再去启动 kafka

start_zk.sh
  • 1

然后依次在 bigdata1、slave1、slave2 节点上启动 kafka

cd /export/servers/kafka/
bin/kafka-server-start.sh -daemon config/server.properties
  • 1
  • 2

查看集群启动状态

[root@bigdata1 kafka]# jps
7942 Kafka
8038 Jps
7466 QuorumPeerMain
  • 1
  • 2
  • 3
  • 4

关闭集群

cd /export/servers/kafka/
bin/kafka-server-stop.sh
  • 1
  • 2

注意事项

停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了

6. Kafka 操作
  • 创建主题

zookeeper - 旧版Kafka的参数

cd /export/servers/kafka/

bin/kafka-topics.sh --create \
--topic news \
--partitions 3 \
--replication-factor 1 \
--zookeeper bigdata1:2181,slave1:2181,slave2:2181

# --create 创建主题
# --topic 主题名称
# --partitions 分区数量
# --replication-factor 每个分区副本因子个数即每个分区有多少副本
# --zookeeper zookeeper 集群地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

bootstrap.server - 新版Kafka的参数

cd /export/servers/kafka/
bin/kafka-topics.sh --create --bootstrap-server bigdata1:9092 --topic news
  • 1
  • 2

其中,2181是 ZooKeeper 的监听端口,9092是 Kafka 的监听端口

  • 查看主题
cd /export/servers/kafka/

bin/kafka-topics.sh --list \
--zookeeper bigdata1:2181,slave1:2181,slave2:2181
  • 1
  • 2
  • 3
  • 4
cd /export/servers/kafka/
bin/kafka-topics.sh --list --bootstrap-server bigdata1:9092
  • 1
  • 2
  • 删除主题
cd /export/servers/kafka/

bin/kafka-topics.sh --delete \
--zookeeper bigdata1:2181,slave1:2181,slave2:2181 --topic news
  • 1
  • 2
  • 3
  • 4
cd /export/servers/kafka/
bin/kafka-topics.sh --delete --bootstrap-server bigdata1:9092 --topic news
  • 1
  • 2
  • 创建生产者

在 slave1 机器上创建生产者,发送数据

cd /export/servers/kafka/

bin/kafka-console-producer.sh \
--broker-list bigdata1:9092,slave1:9092,slave2:9092 \
--topic news
  • 1
  • 2
  • 3
  • 4
  • 5
cd /export/servers/kafka/
bin/kafka-console-consumer.sh --topic news --bootstrap-server bigdata1:9092
  • 1
  • 2
  • 创建消费者

在 slave2 机器上创建消费者,查看数据

cd /export/servers/kafka/

bin/kafka-console-consumer.sh \
--from-beginning --topic news \
--bootstrap-server bigdata1:9092,slave1:9092,slave2:9092
  • 1
  • 2
  • 3
  • 4
  • 5

后续会直接启动脚本来创建消费者数据

七、Spark Standalone 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz -C /export/servers	# 解压到/export/servers
  • 1
  • 2
  • 3

将 spark-3.1.1-bin-hadoop3.2 重命名为 spark

cd /export/servers/

mv spark-3.1.1-bin-hadoop3.2 spark
  • 1
  • 2
  • 3
2. 修改配置文件
cd /export/servers/spark/conf

mv workers.template workers
mv spark-env.sh.template spark-env.sh

vim workers
# 添加内容如下
bigdata1
slave1
slave2

vim spark-env.sh
# 添加内容如下
export JAVA_HOME=/export/servers/java
SPARK_MASTER_HOST=bigdata1
SPARK_MASTER_PORT=7077

# standalone模式下可以不配置以下内容
export YARN_CONF_DIR=/export/servers/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/export/servers/hadoop/etc/hadoop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
3. 分发文件
scp -r /export/servers/spark/ slave1:/export/servers	# 将/export/servers/spark/发送给slave1
scp -r /export/servers/spark/ slave2:/export/servers	# 将/export/servers/spark/发送给slave2
  • 1
  • 2
4. 启动集群
cd /export/servers/spark/

sbin/start-all.sh
  • 1
  • 2
  • 3

Web 端查看 SPARK 的启动状态

浏览器中输入:http://192.168.44.100:8080

5. 提交应用
cd /export/servers/spark

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://192.168.44.100:7077 \
./examples/jars/spark-examples_2.12-3.1.1.jar 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查看运行结果

6. Spark on Yarn 提交应用

关闭 Spark 集群

cd /export/servers/spark/sbin

./stop-all.sh
  • 1
  • 2
  • 3

启动 HDFS 和 YARN

start-all.sh
  • 1

提交应用

cd /export/servers/spark

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.1.1.jar 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在 cluster 模式下不会出现 Pi

cd /export/servers/spark

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.1.1.jar 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

查看运行结果

八、Flink 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3

将 flink-1.14.0 重命名为 flink

cd /export/servers/

mv flink-1.14.0 flink
  • 1
  • 2
  • 3
2. 修改集群配置

修改 flink-conf.yaml 文件

cd /export/servers/flink/conf

vim flink-conf.yaml 

# 原内容
jobmanager.rpc.address: localhost
# 修改后内容
jobmanager.rpc.address: bigdata1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这就指定了 bigdata1 节点服务器为 JobManager 节点

修改 masters 文件,指定管理者

cd /export/servers/flink/conf

vim masters

bigdata1:8081
  • 1
  • 2
  • 3
  • 4
  • 5

修改 workers 文件,将另外两台节点服务器添加为本 Flink 集群的 TaskManager 节点

cd /export/servers/flink/conf

vim workers

slave1
slave2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这样就指定了 slave1 和 slave2 为 TaskManager 节点

3. 分发文件
scp -r /export/servers/flink/ slave1:/export/servers	# 将/export/servers/flink-1.14.0/发送给slave1
scp -r /export/servers/flink/ slave2:/export/servers	# 将/export/servers/flink-1.14.0/发送给slave2
  • 1
  • 2
3. 本地启动和关闭
cd /export/servers/flink/bin

./start-cluster.sh

./stop-cluster.sh
  • 1
  • 2
  • 3
  • 4
  • 5

查看 Web UI

浏览器中输入:http://192.168.44.100:8081,对 flink 集群和任务进行监控管理

5. 提交应用

进入 examples/batch/ 目录

cd /export/servers/flink/examples/batch

/export/servers/flink/bin/flink run WordCount.jar
  • 1
  • 2
  • 3
6. Flink on Yarn(flink-per-job) 提交应用

进入 flink 下的 conf 目录,修改 flink-conf.yaml 文件

cd /export/servers/flink/conf

vim flink-conf.yaml

# 添加内容如下
classloader.check-leaked-classloader: false	# false 前面有空格
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

将四个 jar 文件包拷贝到 flink 的 lib 目录下

cd /export/servers/hadoop/share/hadoop/yarn/

cp hadoop-yarn-api-3.1.3.jar /export/servers/flink/lib/
  • 1
  • 2
  • 3
cd /export/servers/hadoop/share/hadoop/yarn/sources/

cp hadoop-yarn-api-3.1.3-sources.jar /export/servers/flink/lib/
  • 1
  • 2
  • 3
cd /export/servers/flink/lib/
rz -E
commons-cli-1.4.jar
  • 1
  • 2
  • 3
cd /export/servers/flink/lib/
rz -E
flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar
  • 1
  • 2
  • 3

或者

将 hadoop 的环境全部加载出来,且不用上传 jar 包(简单)

cd /export/servers/flink/

export HADOOP_CLASSPATH=`hadoop classpath`
  • 1
  • 2
  • 3

提交应用

先启动 Hadoop 集群

start-all.sh
  • 1

直接使用 flink run 运行即可(无需启动 flink 集群)

cd /export/servers/flink/

bin/flink run -m yarn-cluster examples/batch/WordCount.jar
bin/flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G examples/batch/WordCount.jar
  • 1
  • 2
  • 3
  • 4
九、Flume 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3

将 apache-flume-1.9.0-bin 重命名为 flume

cd /export/servers/

mv apache-flume-1.9.0-bin flume
  • 1
  • 2
  • 3
2. 修改配置文件

进入 flume 文件下的 conf 目录,将 flume-env.sh.template 这个文件修改为 flume-env.sh 文件

cd /export/servers/flume/conf/

mv flume-env.sh.template flume-env.sh
  • 1
  • 2
  • 3

修改 flume-env.sh 文件,将 flume 配置指定路径

vim flume-env.sh

# 修改内容如下

export JAVA_HOME=/export/servers/java
  • 1
  • 2
  • 3
  • 4
  • 5
3. 查看 flume 是否安装成功
cd /export/servers/flume

bin/flume-ng version	# 显示版本号为安装成功
  • 1
  • 2
  • 3
4. flume 对接 kafka
cd /export/servers/flume/

mkdir job

cd /export/servers/flume/job

# flume_kafka_netcat.conf 在 job 目录下
vim flume_kafka_netcat.conf

# 添加内容如下

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 描述/配置源
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 25001

# 描述接收器
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.bootstrap.servers = bigdata1:9092,slave1:9092,slave2:9092
a1.sinks.k1.kafka.topic = maxwell

# 使用一个通道缓冲内存中的事件 
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 1000

# 将source和sink绑定到通道
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
  • 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

启动 flume

cd /export/servers/flume/

bin/flume-ng agent -n a1 -c conf/ -f job/flume_kafka_netcat.conf
  • 1
  • 2
  • 3
十、HBase 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf hbase-2.2.3-bin.tar.gz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3

将 hbase-2.2.3 重命名为 hbase

cd /export/servers/

mv hbase-2.2.3 hbase
  • 1
  • 2
  • 3
2. 修改配置文件

进入 hbase 的 conf 目录下,修改 hbase-env.sh 文件

cd /export/servers/hbase/conf/
vim hbase-env.sh

# 修改内容如下
export HBASE_MANAGES_ZK=false
export JAVA_HOME=/export/servers/java
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

进入 hbase 的 conf 目录下,修改 regionservers 文件

cd /export/servers/hbase/conf/
vim regionservers

# 修改内容如下
bigdata1
slave1
slave2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

进入 hbase 的 conf 目录下,修改 hbase-site.xml 文件

cd /export/servers/hbase/conf/
vim hbase-site.xml

# 修改内容如下
  • 1
  • 2
  • 3
  • 4
<property>
	<name>hbase.zookeeper.quorum</name>
	<value>bigdata1,slave1,slave2</value>
</property>

<property>
	<name>hbase.rootdir</name>
	<value>hdfs://bigdata1:8020/hbase</value>
</property>

<property>
	<name>hbase.cluster.distributed</name>
	<value>true</value>
</property>

<property>
	<name>hbase.unsafe.stream.capability.enforce</name>
	<value>false</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
3. HBase 服务的启动

分发 HBase 文件

scp -r /export/servers/hbase/ slave1:/export/servers/
scp -r /export/servers/hbase/ slave2:/export/servers/
  • 1
  • 2

首先要启动 Zookeeper 和 hadoop

start_zk.sh
start-all.sh
  • 1
  • 2

群起命令

cd /export/servers/hbase/
bin/start-hbase.sh
  • 1
  • 2
4. 查看 HBase 页面

访问 HBase 管理页面

浏览器中输入:http://192.168.44.100:16010

十一、Maxwell 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf maxwell-1.29.0.tar.gz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3

将 maxwell-1.29.0 重命名为 maxwell

cd /export/servers/

mv maxwell-1.29.0 maxwell
  • 1
  • 2
  • 3
2. MYSQL 环境准备

修改 mysql 的配置文件,开启 MySQL Binlog 设置

vim /etc/my.cnf

# 在[mysqld]模块下添加如下内容
[mysqld]

server_id=1
log-bin=mysql-bin
binlog_format=row
# binlog-do-db=test_maxwell	# 指定数据库监听

# 可不记
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

重启 MySQL 服务

service mysqld restart
  • 1

登录 mysql 并查看是否修改完成

mysql -uroot -p123456
  • 1
show variables like '%binlog%';
  • 1

进入 mysql 下的 data 目录,查看 MySQL 生成的 binlog 文件

cd /export/servers/mysql/data
  • 1

注:MySQL 生成的 binlog 文件初始大小一定是 154 字节,然后前缀是 log-bin 参数配置的,后缀是默认从.000001,然后依次递增。除了 binlog 文件以外,MySQL 还会额外生产一个.index 索引文件用来记录当前使用的 binlog 文件

3. 初始化 Maxwell 元数据库

在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据

mysql -uroot -p123456
  • 1
create database maxwell;
  • 1

设置 mysql 用户密码安全级别(可不记)

set global validate_password_length=4;
set global validate_password_policy=0;
  • 1
  • 2

分配一个账号可以操作该数据库

grant all on maxwell.* to 'maxwell'@'%' identified by '123456';
  • 1

分配这个账号可以监控其他数据库的权限

grant select,replication slave,replication client on *.* to maxwell@'%';
  • 1

刷新 mysql 表权限

flush privileges;
  • 1

退出

exit;
  • 1
4. Maxwell 进程启动

Maxwell 进程启动方式有如下两种:

使用命令行参数启动 Maxwell 进程

cd /export/servers/maxwell/

bin/maxwell --user='maxwell' --password='123456' --host='bigdata1' --producer=stdout 
# --user 连接 mysql 的用户
# --password 连接 mysql 的用户的密码
# --host mysql 安装的主机名
# --producer 生产者模式(stdout:控制台 kafka:kafka 集群)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

修改配置文件,定制化启动 Maxwell 进程

cd /export/servers/maxwell/

cp config.properties.example config.properties

vim config.properties

bin/maxwell --config ./config.properties
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
十二、ClickHouse 安装配置
1. 上传并解压
cd /export/softwares/
rz -E
tar -zxvf clickhouse-common-static-21.9.4.35.tgz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3
cd /export/softwares/
rz -E
tar -zxvf clickhouse-common-static-dbg-21.9.4.35.tgz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3
cd /export/softwares/
rz -E
tar -zxvf clickhouse-server-21.9.4.35.tgz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3
cd /export/softwares/
rz -E
tar -zxvf clickhouse-client-21.9.4.35.tgz -C /export/servers/	# 解压到/export/servers
  • 1
  • 2
  • 3
2. ClickHouse 安装
cd /export/servers/clickhouse-common-static-21.9.4.35/install/

./doinst.sh
  • 1
  • 2
  • 3
cd /export/servers/clickhouse-common-static-dbg-21.9.4.35/install/

./doinst.sh
  • 1
  • 2
  • 3
cd /export/servers/clickhouse-server-21.9.4.35/install/

./doinst.sh

# 可输入 ClickHouse 默认用户名的密码,也可以不输入,直接回车跳过即可
  • 1
  • 2
  • 3
  • 4
  • 5
cd /export/servers/clickhouse-client-21.9.4.35/install/

./doinst.sh
  • 1
  • 2
  • 3
3. 连接 ClickHouse
clickhouse start

clickhouse-client	# 无密码进入 ClickHouse 客户端

clickhouse-client --password	# 有密码进入 ClickHouse 客户端
  • 1
  • 2
  • 3
  • 4
  • 5
show databases;
  • 1
4. ClickHouse 卸载
# 删除 ClickHouse 相关配置文件
rm -rf /usr/bin/clickhouse*
rm -rf /var/lib/clickhouse
rm -rf /etc/clickhouse*
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/342307
推荐阅读
相关标签
  

闽ICP备14008679号