【大数据面试】【框架】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"
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15668264.html