【大数据面试】【框架】Linux命令、Shell工具、常见Shell脚本(群起脚本、数仓导入)

一、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"

 

posted @ 2021-12-09 17:06  哥们要飞  阅读(111)  评论(0编辑  收藏  举报