1.1 Linux&Shell
1.1.1 Linux常用高级命令
序号 命令 命令解释
1 top 查看内存
2 df -h 查看磁盘存储情况
3 iotop 查看磁盘IO读写(yum install iotop安装)
4 iotop -o 直接查看比较高的磁盘读写程序
5 netstat -tunlp | grep 端口号 查看端口占用情况
6 uptime 查看报告系统运行时长及平均负载
7 ps -ef 查看进程
1.1.2 Shell常用工具及写过的脚本
1)awk、sed、cut、sort
2)用Shell写过哪些脚本
(1)集群启动,分发脚本
#!/bin/bash
case $1 in
“start”)
for i in hadoop102 hadoop103 hadoop104
do
ssh $i “绝对路径”
done
;;
“stop”)
;;
esac
(2)数仓与MySQL的导入导出
MySQL HDFS hive
sqoop (4个map)
除了sqoop之外还可以用:DataX、hadoop、java
驱动
主机名 端口号
用户名
密码
路径
删除
同步策略: 全量 特殊 新增 新增和变化
query "select id , name from user where 创建时间=今天 or 操作时间= 今天"
压缩
列式存储
(3)数仓层级内部的导入:ods->dwd->dws->dwt->ads
①#!/bin/bash
②定义变量 APP=gmall
③获取时间
传入 按照传入时间
不传 T+1
④sql="
先按照当前天 写sql => 遇到时间 KaTeX parse error: Expected '}', got 'EOF' at end of input: do_date 遇到表 {APP}.
自定义函数 UDF UDTF {$APP}.
"
⑤执行sql
1.1.3 Shell中提交了一个脚本,进程号已经不知道了,但是需要kill掉这个进程,怎么操作?
ssh $i “ps -ef | grep file-flume-kafka | grep -v grep |awk ‘{print $2}’ | xargs kill”
1.1.4 Shell中单引号和双引号区别
1)在/home/atguigu/bin创建一个test.sh文件
[atguigu@hadoop102 bin]$ vim test.sh
在文件中添加如下内容
#!/bin/bash
do_date=$1
echo ‘
d
o
d
a
t
e
′
e
c
h
o
"
do_date' echo "
dodate′echo"do_date"
echo “'
d
o
d
a
t
e
′
"
e
c
h
o
′
"
do_date'" echo '"
dodate′"echo′"do_date”’
echo date
2)查看执行结果
[atguigu@hadoop102 bin]$ test.sh 2019-02-10
d
o
d
a
t
e
2019
−
02
−
1
0
′
2019
−
02
−
1
0
′
"
do_date 2019-02-10 '2019-02-10' "
dodate2019−02−10′2019−02−10′"do_date"
2019年 05月 02日 星期四 21:02:08 CST
3)总结:
(1)单引号不取变量值
(2)双引号取变量值
(3)反引号`,执行引号中命令
(4)双引号内部嵌套单引号,取出变量值
(5)单引号内部嵌套双引号,不取出变量值