一、Linux
1、常用高级命令
ps -ef:查看进程详情,ps -ef|grep dae可以搜索指定进程,-e表示环境变量
ps -au:以用户为主的详细格式,显示进程平均占用资源,不包括cmd列
df -h:文件系统的磁盘空间占用情况,表示大文件,-i表示innode索引命名的小文件
iotop:进行输入输出的进程信息,类似iostate表示IO和CPU变化
xargs:将标准输入转为命令行参数,如echo "one two three" | xargs mkdir
tail:文件最后10行,如tail -n +20 notes.log是从20到最后
uptime:查看系统的平均负载,即特定时间间隔内运行队列中的平均进程数(最近1分钟、5分钟、15分钟系统的负载)。
netstat:显示不同端口的进程信息
2、查看磁盘使用情况、查看进程、查看端口号
df -h
top 或 ps
netstat
二、Shell
1、Shell的常用工具(只需要记住名称)
awk(停止flume进程时使用),显示匹配的文件:awk '/101/' file
sed:使用正则表达式打印文件信息,如sed -n '/^#/!p' /etc/vsftpd/vsftpd.conf
cut:查看指定分割的文字 who|cut -b 3,如:遍历文件夹、读取文件的某几行、截取相应的内容
sort:将文本文件内容加以排序,如sort seq,可以去除重复行-u
2、用Shell写过哪些脚本
(1)集群启动、分发脚本
#!/bin/bash
#涉及到启动停止分支
case $1 in
"start"){
#涉及到多台服务器
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "每个集群内需要执行的命令"
done
};;
"stop"){
};;
#表示case块的结束
esac
(2)数仓与MySQL的导入导出sqoop
主要用到sqoop脚本,涉及到
sqoop --连接mysql hadoop102:3306 root qaz123
--hdfs 路径,存在要删除
--query 条件过滤,如"select id, name from 表 创建时间 操作时间的过滤" and 命令
全量:where 1=1
增量:创建时间
新增和变化:创建时间或操作时间
-- 空值处理
-- 一致性问题
(3)数仓内部的导入
如ODS-->DWD,标准的五步
#!/bin/bash
#2:定义变量,项目名及hive绝对目录
hive=/opt/module/hive/bin/hive
APP=gmall
#3:获取时间
#参数非空
if [-n "$1"]; then
do_date=$1
else
#格式化显示
do_date=`date -d "-1 day" + %F`
fi
#4:SQL,会变※
sql="
先写一天的脚本2020-03-10
遇到表,在表前面加上{$APP}.表名;
遇到事件,把时间替换为$do_date
"
#5:执行SQL
$hive -e "$sql"
本文来自博客园,作者:哥们要飞,转载请注明原文链接:javascript:void(0)p/15668264.html