上篇:用户行为数据采集 第 3 节 项目经验之Hadoop参数调优
1、Zookeeper安装
详见参照:zookeeper分布式安装部署
集群规划
服务器flink105 | 服务器flink106 | 服务器flink107 | |
---|---|---|---|
Zookeeper | Zookeeper | Zookeeper | Zookeeper |
2、编写ZK集群脚本
(1)创建一个普通用户名
//创建用户名:MrZhou
[root@Flink105 ~]# useradd MrZhou
//切换MrZhou用户名
[root@Flink105 ~]# su MrZhou
[MrZhou@Flink105 root]$
//查看当前目录
[MrZhou@Flink105 ~]$ pwd
/home/MrZhou
//创建bin文件
[MrZhou@Flink105 ~]$ mkdir bin
//在bin文件目录下创建一个xsync文件
[MrZhou@Flink105 bin]$ mkdir xsync
[MrZhou@Flink105 bin]$ ll
total 0
drwxrwxr-x. 2 MrZhou MrZhou 6 Apr 3 18:19 xsync
(2)编辑脚本
[MrZhou@Flink105 bin]$ vim zk.sh
//添加参数
#! /bin/bash
case $1 in
"start"){
for i in Flink105 Flink106 Flink107
do
ssh $i "/opt/hadoop/module/zookeeper-3.4.5/bin/zkServer.sh start"
done
};;
"stop"){
for i in Flink105 Flink106 Flink107
do
ssh $i "/opt/hadoop/module/zookeeper-3.4.5/bin/zkServer.sh stop"
done
};;
"status"){
for i in Flink105 Flink106 Flink107
do
ssh $i "/opt/hadoop/module/zookeeper-3.4.5/bin/zkServer.sh status"
done
};;
esac
(3)增加脚本执行权限
[MrZhou@Flink105 bin]$ ll
total 4
drwxrwxr-x. 2 MrZhou MrZhou 6 Apr 3 18:19 xsync
-rw-rw-r--. 1 MrZhou MrZhou 417 Apr 3 18:26 zk.sh
[MrZhou@Flink105 bin]$ chmod 777 zk.sh
[MrZhou@Flink105 bin]$
(4)关闭防火墙
//注意,三台机器示例,需要关闭防火墙
[root@Flink105 ~]# systemctl stop firewalld.service
[root@Flink106 ~]# systemctl stop firewalld.service
[root@Flink107 ~]# systemctl stop firewalld.service
(5)Zookeeper集群停止脚本
//查看当前所在文件路径
[root@Flink105 bin]# pwd
/home/MrZhou/bin
//查看当前运行进程
[root@Flink105 bin]# jps
8056 Jps
8027 QuorumPeerMain
//停止zookeeper脚本
[root@Flink105 bin]# ./zk.sh stop
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /opt/hadoop/module/zookeeper-3.4.5/zkData/zookeeper_server.pid)
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /opt/hadoop/module/zookeeper-3.4.5/zkData/zookeeper_server.pid)
//查看当前运行进程
[root@Flink105 bin]# jps
8089 Jps
[root@Flink105 bin]#
3、Linux环境变量
-
修改/etc/profile文件:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效。使用bash命令,需要source /etc/profile一下。
-
修改~/.bashrc文件:针对某一个特定的用户,环境变量的设置只对该用户自己有效。使用bash命令,只要以该用户身份运行命令行就会读取该文件。
-
把/etc/profile里面的环境变量追加到~/.bashrc目录
(1) 查看当前隐藏文件
[root@Flink105 ~]# ls -al
total 56
dr-xr-x---. 4 root root 253 Apr 3 18:49 .
dr-xr-xr-x. 17 root root 224 Mar 6 18:48 ..
-rw-------. 1 root root 1404 Feb 27 14:15 anaconda-ks.cfg
-rw-------. 1 root root 5823 Apr 3 18:50 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw-------. 1 root root 347 Feb 27 16:14 .mysql_history
drwxr-xr-x. 2 root root 74 Feb 27 16:07 .oracle_jre_usage
-rw-------. 1 root root 166 Mar 7 15:16 .scala_history
drwx------. 2 root root 80 Mar 6 14:19 .ssh
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
-rw-------. 1 root root 8916 Apr 3 18:49 .viminfo
-rw-r--r--. 1 root root 67 Apr 3 19:04 zookeeper.out
(2) 编辑环境变量生效
[root@Flink105 ~]# vim .bashrc
(3)把/etc/profile里面的环境变量追加到~/.bashrc目录
//追加生效
[root@Flink105 ~]# source /etc/profile >> ~/.bashrc
//查看追加
[root@Flink105 ~]# cat /etc/profile >> ~/.bashrc
//编辑进去查看
[root@Flink105 ~]# vim .bashrc
配置参数,已经进来了,如图所示:
注意:flink106、flink107机器也要执行这个命令
[root@Flink106 ~]# cat /etc/profile >> ~/.bashrc
[root@Flink107 ~]# cat /etc/profile >> ~/.bashrc
(4)启动zookeeper脚本
//启动zookeeper脚本
[root@Flink105 bin]# ./zk.sh start
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
//查看flink105机器的进程,已经有:QuorumPeerMain
[root@Flink105 bin]# jps
11120 Jps
11093 QuorumPeerMain
[root@Flink105 bin]#
//查看flink106机器的进程,已经有:QuorumPeerMain
[root@Flink106 ~]# jps
7994 QuorumPeerMain
8026 Jps
[root@Flink106 ~]#
//查看flink107机器的进程,已经有:QuorumPeerMain
[root@Flink107 ~]# jps
8131 QuorumPeerMain
8156 Jps
[root@Flink107 ~]#
//查看状态
[root@Flink105 bin]# ./zk.sh status
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower //状态为:follower
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader //状态为:leader
JMX enabled by default
Using config: /opt/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower //状态为:follower
4、日志生成
(1)把idea代码打包好了,上传jar文件到Linux环境上
自己使用SecureCRT工具,
第1种上传方式:
上传文件快捷键:alt+p
弹出:
sftp>
随后,我们只需要上传的文件托进去即可,如图所示:
第2种上传方式:
上传文件快捷键:rz
,由于第一次使用自己没有安装rz
,Linux系统缺少工具包,所以才报错,如错误提示:
-bash: rz: command not found
需要安装rz
,执行命令:
[root@Flink105 home]# yum -y install lrzsz
//上传文件执行这个命令,注意:若单独只执行rz可能上传的文件不完整,后面解压会失败,需要执行参数-be
[root@localhost java]# rz -be
如图所示:
随后,也要把这个jar分分发到其两台机器上:
[root@hadoop1 module]# scp -r log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar hadoop2.x:/usr/local/etc/hadoop/module/
[root@hadoop1 module]# scp -r log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar hadoop3.x:/usr/local/etc/hadoop/module/
机器hadoop2.x与hadoop3.x机器都会有这个文件数据信息
这时,我们可以对jar包运行,执行命令是:
[root@hadoop1 module]# java -classpath log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.study.appclient.AppMain > /opt/BigData/test.log
在/opt/BigData文件目录的test.log ,查看数据cat test.log
当然,我们也可以在/tmp/logs文件查看数据cat app-2020-04-06.log
[root@hadoop1 BigData]# cd /tmp/logs/
[root@hadoop1 logs]# ll
total 2096
-rw-r--r--. 1 root root 2144209 Apr 6 18:15 app-2020-04-06.log
5、集群日志生成启动脚本
- 在/home/MrZhou/bin目录下创建脚本lg.sh
[root@hadoop1 BigData]# cd /home/MrZhou/bin/
[root@hadoop1 bin]# ll
total 4
drwxrwxr-x. 2 MrZhou MrZhou 6 Apr 6 17:56 xsync
-rwxrwxrwx. 1 root root 561 Apr 6 13:00 zk.sh
[root@hadoop1 bin]# vim lg.sh
//添加数据
#! /bin/bash
for i in hadoop1.x hadoop2.x
do
ssh $i "java -classpath /usr/local/etc/hadoop/module/log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.study.appclient.AppMain $1 $2 >/opt/BigData/test.log &"
done
- 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 lg.sh
- 测试
//进入BigData文件目录下,先把test.log删除
[root@hadoop1 MrZhou]# cd /opt/BigData/
[root@hadoop1 BigData]# ll
total 780
-rw-r--r--. 1 root root 795164 Apr 6 19:18 test.log
[root@hadoop1 BigData]# rm -rf test.log
//进入执行脚本文件目录
[root@hadoop1 BigData]# cd /home/MrZhou/bin/
//执行脚本
[root@hadoop1 bin]# ./lg.sh
//进入写文件的目录查看,发现数据又被写进来了
[root@hadoop1 bin]# cd /opt/BigData/
[root@hadoop1 BigData]# ll
total 760
-rw-r--r--. 1 root root 776843 Apr 6 19:19 test.log
6、集群时间同步修改脚本
//查看当前时间
[root@hadoop1 BigData]# cd /tmp/logs/
[root@hadoop1 logs]# date
Mon Apr 6 19:24:05 GMT 2020
步骤:
- 在/home/MrZhou/bin目录下创建脚本dt.sh
[root@hadoop1 logs]# cd /home/MrZhou/bin/
[root@hadoop1 bin]# vim dt.sh
- 在脚本中编写如下内容
#!/bin/bash
log_date=$1
for i in hadoop1.x hadoop2.x hadoop3.x
do
ssh -t $i "sudo date -s $log_date"
done
说明(ssh -t):https://www.cnblogs.com/kevingrace/p/6110842.html
- 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 dt.sh
- 启动脚本
[root@hadoop1 bin]# ./dt.sh 2020-4-7
Tue Apr 7 00:00:00 GMT 2020
Connection to hadoop1.x closed.
Tue Apr 7 00:00:00 GMT 2020
Connection to hadoop2.x closed.
Tue Apr 7 00:00:00 GMT 2020
Connection to hadoop3.x closed.
7、集群所有进程查看脚本
- 在/home/MrZhou/bin目录下创建脚本xcall.sh
[root@hadoop1 bin]# vim xcall.sh
- 在脚本中编写如下内容
#! /bin/bash
for i in hadoop1.x hadoop2.x hadoop3.x
do
echo --------- $i ----------
ssh $i "$*"
done
- 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 xcall.sh
- 启动脚本
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
10470 Jps
--------- hadoop2.x ----------
7933 Jps
--------- hadoop3.x ----------
7781 Jps
[root@hadoop1 bin]#