我有一壶酒,足以慰平生。

0%

Hadoop生态学习之shell脚本封装

Hadoop生态学习之Shell封装脚本

Hadoop

hdfs 创建目录

hadoop-mkdir.sh

1
2
3
4
5
#!/bin/bash
#vi hadoop-mkdir.sh
#在hadoop的bin目录下创建

hadoop fs -mkdir -p $1

测试:

1
hadoop-mkdir.sh /test

image-20200730134326282

hafs 上传

hadoop-put.sh

1
2
3
#!/bin/bash

hadoop fs -put $1 $2

测试:

1
sh hadoop-put.sh /root/wc.txt /test

image-20200730134747897

hafs 删除

hadoop-rm.sh

1
2
3
#!/bin/bash

hadoop fs -rm -r $1

Zookeeper

在zookeeper的根目录下创建sbin目录,并配置环境变量。

一键启动集群中的zookeeper服务

zkstart.sh

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
echo "--------------------zookeeper集群启动----------------------"
for host in hadoop01 hadoop02 hadoop03
#固定搭配
do
#具体逻辑
ssh $host "/usr/local/zookeeper-3.4.6/bin/zkServer.sh start"
#输出提示
echo "$host, 启动成功!!!"
#结束
done

查看集群zookeeper服务状态

zkstatus.sh

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
echo "--------------------zookeeper集群状态----------------------"
for host in hadoop01 hadoop02 hadoop03
#固定搭配
do
#具体逻辑
ssh $host "/usr/local/zookeeper-3.4.6/bin/zkServer.sh status"
#输出提示
echo "$host, 状态!!!"
#结束
done

一键停止zookeeper服务

zkstop.sh

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
echo "--------------------zookeeper集群停止----------------------"
for host in hadoop01 hadoop02 hadoop03
#固定搭配
do
#具体逻辑
ssh $host "/usr/local/zookeeper-3.4.6/bin/zkServer.sh stop"
#输出提示
echo "$host, 停止!!!"
#结束
done

Oozie

对执行任务命令进行封装

==在bin 目录下创建,在flume根目录下执行==

oozie-job.sh

1
2
3
#!/bin/bash

bin/oozie job -oozie http://hadoop01:11000/oozie -config oozie-apps/$1/job.properties -run

样例:

1
oozie-job.sh map-reduce

image-20200730140607676

对杀死任务命令进行封装

oozie-killjob.sh

1
2
3
#!/bin/bash

bin/oozie job -oozie http://hadoop01:11000/oozie -kill $1

样例:

1
oozie-killjob.sh 0000000-200730140126921-oozie-root-W

Flume

对启动命令进行封装

==在bin 目录下创建,在flume根目录下执行==

start-myconf.sh

1
2
3
#!/bin/bash

bin/flume-ng agent -c conf -f $1 -n a1 -Dflume.root.logger=info,console

修改权限:

1
chmod 777 start-myconf.sh

执行样例:

1
[root@hadoop01 apache-flume-1.8.0-bin]# start-myconf.sh myconf/netcat-logger.conf

注意

所有封装的shell在写完后需要更改权限

1
chmod 777 shell.sh(脚本名)
您的支持是我继续创作的动力