用户行为数据采集 第4 节 完全分布式的 zk、 xcall、dt、lg脚本编写

上篇:用户行为数据采集 第 3 节 项目经验之Hadoop参数调优


1、Zookeeper安装

详见参照:zookeeper分布式安装部署

集群规划

服务器flink105服务器flink106服务器flink107
ZookeeperZookeeperZookeeperZookeeper

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环境变量

  1. 修改/etc/profile文件:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效。使用bash命令,需要source /etc/profile一下。

  2. 修改~/.bashrc文件:针对某一个特定的用户,环境变量的设置只对该用户自己有效。使用bash命令,只要以该用户身份运行命令行就会读取该文件

  3. 把/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、集群日志生成启动脚本

  1. 在/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
  1. 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 lg.sh
  1. 测试
//进入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

步骤:

  1. 在/home/MrZhou/bin目录下创建脚本dt.sh
[root@hadoop1 logs]# cd /home/MrZhou/bin/
[root@hadoop1 bin]# vim dt.sh
  1. 在脚本中编写如下内容
	
	#!/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

  1. 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 dt.sh
  1. 启动脚本
[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、集群所有进程查看脚本

  1. 在/home/MrZhou/bin目录下创建脚本xcall.sh
[root@hadoop1 bin]# vim xcall.sh
  1. 在脚本中编写如下内容
#! /bin/bash

for i in hadoop1.x hadoop2.x hadoop3.x
do
        echo --------- $i ----------
        ssh $i "$*"
done
  1. 修改脚本执行权限
[root@hadoop1 bin]# chmod 777 xcall.sh
  1. 启动脚本
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
10470 Jps
--------- hadoop2.x ----------
7933 Jps
--------- hadoop3.x ----------
7781 Jps
[root@hadoop1 bin]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值