赞
踩
yum install -y docker
查看 docker 是否安装成功
docker -v
rpm -qa | grep -i docker
卸载 docker
yum remove -y docker-*
安装依赖的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
添加 docker 的 Yum 源
配置 docker 的 yum 源是为了安装 docker 的时候速度更快,更稳定,成功率高
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 docker
yum install -y docker-ce docker-ce-cli containerd.io
查看 docker 是否安装成功
docker -v
卸载 docker
yum remove -y docker-*
安装 docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
查看 docker 是否安装成功
docker -v
启动 docker 服务
systemctl start docker
开机启动 docker 服务
systemctl enable docker
查看 docker 服务状态
systemctl status docker
重启 docker 服务
systemctl restart docker
配置镜像加速器是为了让我们从仓库拉取镜像的时候速度更快,更稳定,成功率高
配置加速器
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.ccs.tencentyun.com",
"https://3iy7bctt.mirror.aliyuncs.com"
]
}
重新加载配置文件
systemctl daemon-reload
重启 docker 服务
systemctl restart docker
查看 docker 服务状态
systemctl status docker
查看加速器是否配置成功
docker info
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
注意:
REPOSITORY:来源仓库
TAG:镜像的标签信息,表示镜像的版本,只是标记,并不能表示镜像内容
IMAGE ID:镜像 id,唯一表示一个镜像,如果两个镜像的 ID 相同,说明它们实际上指向了同一个镜像,只是具有不同标签名称而已
CREATED:镜像的最后更新时间
SIZE:镜像大小
docker search centos
当我们在本地主机上使用一个不存在的镜像时,Docker 就会自动下载这个镜像,如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它
docker pull centos:7.5.1804
docker pull mysql:5.7
docker pull hello-world
docker images
注意:如果不加版本号,则默认版本号为最新的
注意:镜像拉取完成后,我们可以用镜像来运行容器
使用 tag 标签删除镜像
注意:如果删除的时候报错:有容器使用了该镜像,则需要先删除使用过该镜像的容器,才能删除该镜像
# docker rmi 镜像名:版本号
docker rmi -f hello-world:latest
docker images
使用 id 删除镜像
# docker rmi id号
docker rmi -f feb5d9fea6a5
# docker save -o 本地路径+文件名
# 注意:文件名建议.tar结尾
docker save -o centos.tar centos:7.5.1804
方法一:
docker load -i centos.tar
docker load --input centos.tar
方法二:
docker load < centos.tar
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
注意:
容器的名称是唯一的
如果不指定容器名称,docker 会自动分配
# 查看所有容器
docker ps -a
# 查看所有运行状态的容器
docker ps
docker start 容器名称/ID
docker stop 容器名称/ID
方式一:
# docker exec -i -t 容器ID/名称 /bin/bash
方式二:
# docker attach 容器ID/名称
区别:exec 用 exit 退出时,不停止容器;attach 用 exit 退出时,停止容器
exit | ctrl+p->ctrl+q | |
---|---|---|
exec | 退出不停止容器 | 退出不停止容器 |
attach | 退出停止容器 | 退出不停止容器 |
exit
# docker restart 容器ID/名称
# docker rm 容器ID/名称
# docker stop 容器ID/名称
# docker rm -f 容器ID/名称
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="名称": 为容器指定一个名称
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
相当于
docker pull # (本地不存在镜像,则会拉取)
docker create
docker start
docker exec
后台启动容器
docker run -i -t -h bigdata3 --name centos103 -d centos:7.5.1804 /bin/bash
注意:
-d 指启动容器后,但不进入容器,挂后台
docker run -p 3307:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=000000 -d mysql:5.7
注意:
-p 指定主机映射的端口号和 MySQL 的端口号,格式为 3307:3306
-e 指定 root 用户名密码:-e MYSQL_ROOT_PASSWORD=000000
docker ps -a -q
docker rm -f $(docker ps -a -q)
docker rm -f `docker ps -a -q`
docker stop $(docker ps -a -q)
docker stop `docker ps -a -q`
docker kill $(docker ps -a -q)
docker kill `docker ps -a -q`
注意:docker kill 比 docker stop 停止容器要快
docker start $(docker ps -a -q)
docker start `docker ps -a -q`
思路:修改 centos 容器 --> 导出成 .tar 文件 --> .tar 文件导入到新系统(以镜像的方式存在) --> 通过镜像启动容器
docker export -o abc.tar 0925e9bc7ef1
docker export 0925e9bc7ef1 > abc.tar
# docker import 文件路径/文件名 镜像名:版本号
docker import abc.tar centos:2
容器和主机之间复制文件的时候,要保证容器已经启动
从主机复制文件到容器中:
docker cp ./docker101.txt 18e9a72a0bd4:/
从容器复制文件到主机中:
docker cp 18e9a72a0bd4:/docker102.txt ./
注意:
容器与主机之间复制文件,容器需要是启动状态
容器与容器之间不能复制文件
三台机器都要修改
vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 进入本机网卡配置文件
添加如下内容
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 # 域名服务
service network restart
使用 ping 命令测试网络的连通性
ping www.baidu.com
关闭 centos7 蜂鸣器声音
cd /etc/modprobe.d
vi pcspkr.conf
# 添加内容如下
blacklist pcspkr
保存之后重启
安装 net-tools 包
yum install net-tools
安装 vim 命令
yum -y install vim*
vim /etc/hostname
添加如下内容
bigdata1
另外两台分别添加
slave1
slave2
或者
三台机器同时执行
hostnamectl set-hostname bigdata1
bash # 查看更改是否生效
hostnamectl set-hostname slave1
bash # 查看更改是否生效
hostnamectl set-hostname slave2
bash # 查看更改是否生效
vim /etc/hosts
添加内容如下,另外两台也分别添加
192.168.44.100 bigdata1
192.168.44.110 slave1
192.168.44.120 slave2
设置完成后,重启三台主机(用第二种方式修改主机名可不重启)
reboot
三台机器同时执行
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 禁止开机启动
systemctl status firewalld # 检查防火墙状态
三台机器同时执行
修改 SELINUX 的配置文件
vim /etc/selinux/config
修改内容如下
# 将 SELINUX=enforcing 修改为 SELINUX=disabled
SELINUX=disabled
三台机器同时执行
ssh-keygen -t rsa # 生成公私钥
三台机器同时执行
ssh-copy-id bigdata1 # 拷贝公钥到bigdata1
在 bigdata1 机器上使用如下命令
scp -r /root/.ssh/authorized_keys slave1:/root/.ssh
scp -r /root/.ssh/authorized_keys slave2:/root/.ssh
三台机器同时执行
crontab -e
添加内容如下
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
或者
三台机器同时执行
timedatectl timezones Aisa/Shanghai
查看自带的 openjdk 并卸载
rpm -qa | grep java # 搜索java相关的rpm包
yum -y remove # 卸载当前jdk的rpm包
创建安装目录
mkdir -p /export/softwares # 软件包存放目录
mkdir -p /export/servers # 安装目录
上传并解压
在客户端(SerT)中进行登录,用 rz -E 的命令工具进行上传,如果没有,则进行下载
yum -y install lrzsz
cd /export/softwares/
rz -E
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /export/servers # 解压到/export/servers
将 jdk1.8.0_212 重命名为 java
cd /export/servers/
mv jdk1.8.0_212 java
配置环境变量
vim /etc/profile
添加内容如下
# JDK
export JAVA_HOME=/export/servers/java
export PATH=$PATH:$JAVA_HOME/bin
重启生效
source /etc/profile
测试是否成功安装
java -version
在 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
在 slave1 和 slave2 执行如下命令
source /etc/profile # 重启生效
配置环境变量对当前 root 用户生效
vim /root/.bash_profile
配置环境变量对全局生效
vim /etc/profile
集群规划
Bigdata1 | Slave1 | Slave2 | |
---|---|---|---|
HDFS | NameNode | ||
DataNode | DataNode | DataNode | |
SecondaryNameNode | |||
YARN | NodeManager | NodeManager | NodeManager |
ResourceManager |
上传并解压
cd /export/softwares/
rz -E
tar -zxvf hadoop-3.1.3.tar.gz -C /export/servers # 解压到/export/servers
将 hadoop-3.1.3 重命名为 hadoop
cd /export/servers/
mv hadoop-3.1.3 hadoop
配置环境变量
vim /etc/profile
添加内容如下
# HADOOP
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
重启生效
source /etc/profile
测试是否成功安装
hadoop version
在 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
在 slave1 和 slave2 执行如下命令
source /etc/profile # 重启生效
进入 HADOOP 配置文件目录下
cd /export/servers/hadoop/etc/hadoop
修改 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
修改 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>
修改 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>
修改 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>
修改 mapred-site.xml 配置文件
vim mapred-site.xml
<!-- 添加内容如下 -->
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改 workers 配置文件
vim workers
# 添加内容如下
bigdata1
slave1
slave2
在 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
启动集群
在 bigdata1 机器上对 NameNode 进行格式化
hdfs namenode -format
启动 HDFS
cd /export/servers/hadoop
sbin/start-dfs.sh
查看 HDFS 是否启动
[root@bigdata1 hadoop]# jps
1683 NameNode
2053 SecondaryNameNode
1853 DataNode
2174 Jps
启动 YARN
cd /export/servers/hadoop
sbin/start-yarn.sh
查看 YARN 是否启动
[root@bigdata1 hadoop]# jps
1683 NameNode
2053 SecondaryNameNode
2774 Jps
2312 ResourceManager
2459 NodeManager
1853 DataNode
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
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>
在 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
重新启动 YARN 后在 bigdata1 机器上启动历史服务器
stop-yarn.sh
start-yarn.sh
mapred --daemon start historyserver
查看历史服务器是否启动
[root@bigdata1 ~]# jps
10689 ResourceManager
10838 NodeManager
9079 DataNode
11399 Jps
8908 NameNode
9278 SecondaryNameNode
11342 JobHistoryServer
Web 端查看 YARN 的 JobHistory
浏览器中输入:http://192.168.44.100:19888
查看 YARN 上运行的 JobHistory 信息
在比赛期间,如果忘记了 hadoop 的配置文件该如何去写,可以用一种方法,在虚拟机上原有的 hadoop 安装包下载到我们 windows 上
cd /export/softwares
# 使用sz命令下载到Windows上
sz hadoop-3.1.3.tar.gz
查看 windows 下下载的 hadoop-3.1.3.tar.gz 压缩文件,进行解压缩,解压缩后进入 hadoop-3.1.3 文件夹
进入 hadoop-3.1.3\share\doc\hadoop 这个目录下,有一个 index 的 html 文件,双击进去
里面有相关 hadoop 的配置文档供我们查看并记忆,而且这样比赛不算违规
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rm -rf /etc/my.cnf
rpm -qa | grep mysql
检查 mysql 组是否存在
cat /etc/group | grep mysql
检查 mysql 用户是否存在
cat /etc/passwd | grep mysql
创建 mysql 用户组
groupadd mysql
创建 mysql 用户,并将 mysql 用户添加到 mysql 用户组
useradd -g mysql mysql
为 mysql 用户指定密码为 passwd
passwd mysql
cd /export/softwares/
rz -E
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /export/servers # 解压到/export/servers
将文件重命名为 mysql
cd /export/servers/
mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql
在 mysql 文件下创建 data 文件夹
cd /export/servers/mysql/
mkdir data
更改 mysql 文件夹所属的组和用户
cd /export/servers
# 更改 mysql 文件夹所属用户
chown -R mysql mysql/
# 更改 mysql 文件夹所属用户组
chgrp -R mysql mysql/
# 新建 my.cnf 文件
touch /etc/my.cnf
# 编辑 my.cnf 文件
vim /etc/my.cnf
在 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
生成初始化密码
cd /export/servers/mysql
./bin/mysqld --initialize --user=mysql --basedir=/export/servers/mysql --datadir=/export/servers/mysql/data
将 mysql.server 脚本复制到资源目录 /etc/rc.d/init.d/mysqld,并赋予执行权限
cd /export/servers/mysql
# 将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
执行下面命令将 mysqld 服务加入到系统服务
chkconfig --add mysqld
检测是否生效
chkconfig --list mysqld
执行下面命令启动 mysqld 服务
service mysqld start
vim /etc/profile
添加内容如下
# MYSQL
export MYSQL_HOME=/export/servers/mysql
export PATH=$PATH:$MYSQL_HOME/bin
重启生效
source /etc/profile
查看环境变量的值
echo $PATH
访问 mysql 数据库
mysql -uroot -p
注意:此时密码使用前面自动生成的初始化密码
执行 sql 语句,设置 root 密码
set password=password('123456');
选择数据库
use mysql;
修改 root 用户的访问密码
update user set authentication_string=PASSWORD('123456') where user='root';
设置远程访问
grant all privileges on *.* to root@"%" identified by "123456" with grant option;
刷新授权表使其生效
flush privileges;
退出
exit;
cd /export/softwares/
rz -E
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /export/servers # 解压到/export/servers
将 apache-hive-3.1.2-bin 重命名为 hive
cd /export/servers/
mv apache-hive-3.1.2-bin hive
vim /etc/profile
添加内容如下
# HIVE
export HIVE_HOME=/export/servers/hive
export PATH=$PATH:$HIVE_HOME/bin
重启生效
source /etc/profile
上传驱动
cd /export/softwares/
rz -E
拷贝 mysql jdbc 驱动到 hive 安装包 lib 下
cp /export/softwares/mysql-connector-java-5.1.38.jar /export/servers/hive/lib
解决 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 ./
修改 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
在 /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>
如在比赛时忘记 hive-site.xml 文件的内容,可以进入 conf 目录下 hive-default.xml.template 模板文件搜索
cd /export/servers/hive/conf
vim hive-default.xml.template
初始化 Hive 元数据库
schematool -initSchema -dbType mysql -verbose
在 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
先启动 hadoop 集群
start-all.sh
在第一个窗口中启动,进行查询数据表的操作
cd /export/servers/hive
bin/hive
hive> show databases;
hive> show tables;
克隆一个窗口,在克隆窗口中启动 Hive
hive
克隆窗口和原窗口都可以进行数据查询访问,即 MySQL 数据库已作为 Hive 元数据库
在 hive-site.xml 文件中添加如下配置信息
cd /export/servers/hive/conf
vim hive-site.xml
# 添加内容如下
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://bigdata1:9083</value>
</property>
启动 metastore 服务
# 前台启动
hive --service metastore
# 后台启动
nohup /export/servers/hive/bin/hive --service metastore &
启动 hive
cd /export/servers/hive
bin/hive
在 hive-site.xml 文件中添加如下配置信息
cd /export/servers/hive/conf
vim hive-site.xml
# 添加内容如下
<!-- 指定 hiveserver2 连接的 host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>bigdata1</value>
</property>
启动 hiveserver2 服务
# 前台启动
hive --service hiveserver2
# 后台启动
nohup /export/servers/hive/bin/hive --service hiveserver2 &
在 hadoop 的配置文件 core-site.xml 中添加如下属性:
cd /export/servers/hadoop/etc/hadoop
vim core-site.xml
# 添加内容如下
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
在 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
重新启动 hadoop 集群
stop-all.sh
start-all.sh
启动 beeline 客户端(需要多等待一会)
连接访问
/export/servers/hive/bin/beeline
beeline> ! connect jdbc:hive2://bigdata1:10000
beeline> root
beeline> 123456
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
打印当前库和表头
cd /export/servers/hive/conf
vim hive-site.xml
# 添加内容如下
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
这样子进入 hive 客户端时,便可以清楚的知道是在哪个数据库,哪个表头
在 hive 的安装目录下,在 conf 目录创建 log4j.properties
日志的配置文件,然后写入以下信息就可以了
cd /export/servers/hive/conf
vim log4j.properties
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
cd /export/softwares/
rz -E
tar -zxvf zookeeper-3.4.5.tar.gz -C /export/servers # 解压到/export/servers
将 zookeeper-3.4.5 重命名为 zookeeper
cd /export/servers/
mv zookeeper-3.4.5 zookeeper
vim /etc/profile
添加内容如下
# ZOOKEEPER
export ZOOKEEPER_HOME=/export/servers/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
刷新环境变量
source /etc/profile
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
cd /export/servers/zookeeper/zkdatas/
touch myid
echo 1 > /export/servers/zookeeper/zkdatas/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
在 slave1 和 slave2 执行如下命令
source /etc/profile # 重启生效
在 slave1 机器上修改myid的值为2
cd /export/servers/zookeeper/zkdatas/
echo 2 > /export/servers/zookeeper/zkdatas/myid
在 slave2 机器上修改myid的值为3
cd /export/servers/zookeeper/zkdatas/
echo 3 > /export/servers/zookeeper/zkdatas/myid
三台机器同时执行:
/export/servers/zookeeper/bin/zkServer.sh start
查看启动状态
/export/servers/zookeeper/bin/zkServer.sh status
启动 zookeeper 客户端
zkCli.sh
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服务
cd /export/softwares/
rz -E
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/servers # 解压到/export/servers
将 kafka 重命名为 kafka
cd /export/servers/
mv kafka_2.12-2.4.1 kafka
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
scp -r /export/servers/kafka slave1:/export/servers/ # 将/export/servers/kafka发送给slave1
scp -r /export/servers/kafka slave2:/export/servers/ # 将/export/servers/kafka发送给slave2
在 slave1 机器上修改 /export/servers/kafka/config/server.properties 中的 broker.id=1 的值为1
cd /export/servers/kafka/config/
vim server.properties
# 修改内容如下
broker.id=1
在 slave2 机器上修改 /export/servers/kafka/config/server.properties 中的 broker.id=1 的值为2
cd /export/servers/kafka/config/
vim server.properties
# 修改内容如下
broker.id=2
vim /etc/profile
添加内容如下
# KAFKA
export KAFKA_HOME=/export/servers/kafka/
export PATH=$PATH:$KAFKA_HOME/bin
刷新环境变量
source /etc/profile
在 bigdata1 机器上执行如下命令
scp -r /etc/profile slave1:/etc/profile # 将/etc/profile发送给slave1
scp -r /etc/profile slave2:/etc/profile # 将/etc/profile发送给slave
在 slave1 和 slave2 执行如下命令
source /etc/profile # 重启生效
在 bigdata1 机器上启动 zookeeper 脚本,再去启动 kafka
start_zk.sh
然后依次在 bigdata1、slave1、slave2 节点上启动 kafka
cd /export/servers/kafka/
bin/kafka-server-start.sh -daemon config/server.properties
查看集群启动状态
[root@bigdata1 kafka]# jps
7942 Kafka
8038 Jps
7466 QuorumPeerMain
关闭集群
cd /export/servers/kafka/
bin/kafka-server-stop.sh
注意事项
停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 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 集群地址
bootstrap.server - 新版Kafka的参数
cd /export/servers/kafka/
bin/kafka-topics.sh --create --bootstrap-server bigdata1:9092 --topic news
其中,2181是 ZooKeeper 的监听端口,9092是 Kafka 的监听端口
cd /export/servers/kafka/
bin/kafka-topics.sh --list \
--zookeeper bigdata1:2181,slave1:2181,slave2:2181
cd /export/servers/kafka/
bin/kafka-topics.sh --list --bootstrap-server bigdata1:9092
cd /export/servers/kafka/
bin/kafka-topics.sh --delete \
--zookeeper bigdata1:2181,slave1:2181,slave2:2181 --topic news
cd /export/servers/kafka/
bin/kafka-topics.sh --delete --bootstrap-server bigdata1:9092 --topic news
在 slave1 机器上创建生产者,发送数据
cd /export/servers/kafka/
bin/kafka-console-producer.sh \
--broker-list bigdata1:9092,slave1:9092,slave2:9092 \
--topic news
cd /export/servers/kafka/
bin/kafka-console-consumer.sh --topic news --bootstrap-server bigdata1:9092
在 slave2 机器上创建消费者,查看数据
cd /export/servers/kafka/
bin/kafka-console-consumer.sh \
--from-beginning --topic news \
--bootstrap-server bigdata1:9092,slave1:9092,slave2:9092
后续会直接启动脚本来创建消费者数据
cd /export/softwares/
rz -E
tar -zxvf spark-3.1.1-bin-hadoop3.2.tgz -C /export/servers # 解压到/export/servers
将 spark-3.1.1-bin-hadoop3.2 重命名为 spark
cd /export/servers/
mv spark-3.1.1-bin-hadoop3.2 spark
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
scp -r /export/servers/spark/ slave1:/export/servers # 将/export/servers/spark/发送给slave1
scp -r /export/servers/spark/ slave2:/export/servers # 将/export/servers/spark/发送给slave2
cd /export/servers/spark/
sbin/start-all.sh
Web 端查看 SPARK 的启动状态
浏览器中输入:http://192.168.44.100:8080
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
查看运行结果
关闭 Spark 集群
cd /export/servers/spark/sbin
./stop-all.sh
启动 HDFS 和 YARN
start-all.sh
提交应用
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
在 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
查看运行结果
cd /export/softwares/
rz -E
tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /export/servers/ # 解压到/export/servers
将 flink-1.14.0 重命名为 flink
cd /export/servers/
mv flink-1.14.0 flink
修改 flink-conf.yaml 文件
cd /export/servers/flink/conf
vim flink-conf.yaml
# 原内容
jobmanager.rpc.address: localhost
# 修改后内容
jobmanager.rpc.address: bigdata1
这就指定了 bigdata1 节点服务器为 JobManager 节点
修改 masters 文件,指定管理者
cd /export/servers/flink/conf
vim masters
bigdata1:8081
修改 workers 文件,将另外两台节点服务器添加为本 Flink 集群的 TaskManager 节点
cd /export/servers/flink/conf
vim workers
slave1
slave2
这样就指定了 slave1 和 slave2 为 TaskManager 节点
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
cd /export/servers/flink/bin
./start-cluster.sh
./stop-cluster.sh
查看 Web UI
浏览器中输入:http://192.168.44.100:8081,对 flink 集群和任务进行监控管理
进入 examples/batch/ 目录
cd /export/servers/flink/examples/batch
/export/servers/flink/bin/flink run WordCount.jar
进入 flink 下的 conf 目录,修改 flink-conf.yaml 文件
cd /export/servers/flink/conf
vim flink-conf.yaml
# 添加内容如下
classloader.check-leaked-classloader: false # false 前面有空格
将四个 jar 文件包拷贝到 flink 的 lib 目录下
cd /export/servers/hadoop/share/hadoop/yarn/
cp hadoop-yarn-api-3.1.3.jar /export/servers/flink/lib/
cd /export/servers/hadoop/share/hadoop/yarn/sources/
cp hadoop-yarn-api-3.1.3-sources.jar /export/servers/flink/lib/
cd /export/servers/flink/lib/
rz -E
commons-cli-1.4.jar
cd /export/servers/flink/lib/
rz -E
flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar
或者
将 hadoop 的环境全部加载出来,且不用上传 jar 包(简单)
cd /export/servers/flink/
export HADOOP_CLASSPATH=`hadoop classpath`
提交应用
先启动 Hadoop 集群
start-all.sh
直接使用 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
cd /export/softwares/
rz -E
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /export/servers/ # 解压到/export/servers
将 apache-flume-1.9.0-bin 重命名为 flume
cd /export/servers/
mv apache-flume-1.9.0-bin flume
进入 flume 文件下的 conf 目录,将 flume-env.sh.template 这个文件修改为 flume-env.sh 文件
cd /export/servers/flume/conf/
mv flume-env.sh.template flume-env.sh
修改 flume-env.sh 文件,将 flume 配置指定路径
vim flume-env.sh
# 修改内容如下
export JAVA_HOME=/export/servers/java
cd /export/servers/flume
bin/flume-ng version # 显示版本号为安装成功
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
启动 flume
cd /export/servers/flume/
bin/flume-ng agent -n a1 -c conf/ -f job/flume_kafka_netcat.conf
cd /export/softwares/
rz -E
tar -zxvf hbase-2.2.3-bin.tar.gz -C /export/servers/ # 解压到/export/servers
将 hbase-2.2.3 重命名为 hbase
cd /export/servers/
mv hbase-2.2.3 hbase
进入 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
进入 hbase 的 conf 目录下,修改 regionservers 文件
cd /export/servers/hbase/conf/
vim regionservers
# 修改内容如下
bigdata1
slave1
slave2
进入 hbase 的 conf 目录下,修改 hbase-site.xml 文件
cd /export/servers/hbase/conf/
vim hbase-site.xml
# 修改内容如下
<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>
分发 HBase 文件
scp -r /export/servers/hbase/ slave1:/export/servers/
scp -r /export/servers/hbase/ slave2:/export/servers/
首先要启动 Zookeeper 和 hadoop
start_zk.sh
start-all.sh
群起命令
cd /export/servers/hbase/
bin/start-hbase.sh
访问 HBase 管理页面
浏览器中输入:http://192.168.44.100:16010
cd /export/softwares/
rz -E
tar -zxvf maxwell-1.29.0.tar.gz -C /export/servers/ # 解压到/export/servers
将 maxwell-1.29.0 重命名为 maxwell
cd /export/servers/
mv maxwell-1.29.0 maxwell
修改 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
重启 MySQL 服务
service mysqld restart
登录 mysql 并查看是否修改完成
mysql -uroot -p123456
show variables like '%binlog%';
进入 mysql 下的 data 目录,查看 MySQL 生成的 binlog 文件
cd /export/servers/mysql/data
注:MySQL 生成的 binlog 文件初始大小一定是 154 字节,然后前缀是 log-bin 参数配置的,后缀是默认从.000001,然后依次递增。除了 binlog 文件以外,MySQL 还会额外生产一个.index 索引文件用来记录当前使用的 binlog 文件
在 MySQL 中建立一个 maxwell 库用于存储 Maxwell 的元数据
mysql -uroot -p123456
create database maxwell;
设置 mysql 用户密码安全级别(可不记)
set global validate_password_length=4;
set global validate_password_policy=0;
分配一个账号可以操作该数据库
grant all on maxwell.* to 'maxwell'@'%' identified by '123456';
分配这个账号可以监控其他数据库的权限
grant select,replication slave,replication client on *.* to maxwell@'%';
刷新 mysql 表权限
flush privileges;
退出
exit;
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 集群)
修改配置文件,定制化启动 Maxwell 进程
cd /export/servers/maxwell/
cp config.properties.example config.properties
vim config.properties
bin/maxwell --config ./config.properties
cd /export/softwares/
rz -E
tar -zxvf clickhouse-common-static-21.9.4.35.tgz -C /export/servers/ # 解压到/export/servers
cd /export/softwares/
rz -E
tar -zxvf clickhouse-common-static-dbg-21.9.4.35.tgz -C /export/servers/ # 解压到/export/servers
cd /export/softwares/
rz -E
tar -zxvf clickhouse-server-21.9.4.35.tgz -C /export/servers/ # 解压到/export/servers
cd /export/softwares/
rz -E
tar -zxvf clickhouse-client-21.9.4.35.tgz -C /export/servers/ # 解压到/export/servers
cd /export/servers/clickhouse-common-static-21.9.4.35/install/
./doinst.sh
cd /export/servers/clickhouse-common-static-dbg-21.9.4.35/install/
./doinst.sh
cd /export/servers/clickhouse-server-21.9.4.35/install/
./doinst.sh
# 可输入 ClickHouse 默认用户名的密码,也可以不输入,直接回车跳过即可
cd /export/servers/clickhouse-client-21.9.4.35/install/
./doinst.sh
clickhouse start
clickhouse-client # 无密码进入 ClickHouse 客户端
clickhouse-client --password # 有密码进入 ClickHouse 客户端
show databases;
# 删除 ClickHouse 相关配置文件
rm -rf /usr/bin/clickhouse*
rm -rf /var/lib/clickhouse
rm -rf /etc/clickhouse*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。