算法工程师打死都要记住的20条常用shell命令

简介: 算法工程师打死都要记住的20条常用shell命令

算法工程师打死都要记住的20条常用shell命令

1. 使用 hadoop 命令查看 dfs上的文件,"\t"分隔

hadoop fs -text hdfs/user/app/data.20210701/* | awk -F '\t' '{ print  $1 "\t"  $2  }' | less -10

2. 查看 hdfs 上文件的大小,2种方法

(2.1) -du 查看大小 -h (human,以人可以看懂的方式展现)

hadoop fs -du -h /hdfs/user/app/data.20210701

(2.2)有的hadoop 不支持 -h 参数,使用以下的方式,单位MB

hadoop fs -du /hdfs/user/app/data.20210701  |  awk -F' '  '{printf "%.2fMB\t\t%s\n",

3. shell命令中间添加 if 判断语法

hadoop fs -text /hdfs/user/app/data.20210701/* | awk -F'\t' '{if($14 != "-")  print $14}

4. 统计Hadoop 文件中共有多少列

hadoop fs -text /hdfs/user/app/data.20210701/* | awk -F "\t" '{print NF}' | less -10

5.统计hadoop上文件行数

hadoop fs -text /hdfs/user/app/data.20210701/* | wc -l

以上命令使用 cat sample.txt | 同理可以使用。

6. kill掉集群中的 spark 任务

yarn application -kill  application_xxxx

7. kill掉集群中的 MR 任务

hadoop job -kill application_xxxx

8. 查找文件中含有某个字符串的行

cat sample.txt | grep "str_non" | less -10 
cat sample.txt | grep -C 5 "str_non" | less -10 # 上下5行

9. 遍历文件中各列,以及隔行,进行判断自定义处理方式

cat sample.txt | awk -F "\t" 
'{
cnt=0; for(i=1; i<=num; i++)
{if($i!=0){cnt=1; break}}; 
 if(cnt==1)printf("%s\n",$0)
}'
num=15

10. Linux文件编码转换

#(10.1). 通过
   iconv -l 
#命令查看,其支持的编码格式还不少,之间可以互相转换
#(10.2). 转换gbk编码文件为utf-8编码文件
#简洁命令:
iconv -f gbk -t utf-8 index.html > aautf8.html
#其中-f指的是原始文件编码,-t是输出编码  index.html 是原始文件 aautf8.html是输出结果文件
#(10.3. 转换gbk编码文件为utf-8编码文件详细命令:
iconv -c --verbose  -f gbk -t utf-8 index.html -o index_utf8.html
#-c 指的是从输出中忽略无效的字符, --verbose指的是打印进度信息 -o是输出文件****

11. spark-shell 统计多列覆盖率,该方法非常好用

val df=spark.read.textFile("/hdfs/user/app/data.20210701/*").map(e=>(e.split("\t")(4),e.split("\t")(5))).toDF("appname","flag").cache();
val re=df.agg(
   (sum(when($"appname"===("-"),0).otherwise(1))/count("*")).as("appnamec"),
   (sum(when($"flag"===("-"),0).otherwise(1))/count("*")).as("flagC")
 ).show()

12. hadoop 跨集群复制文件

hadoop distcp -su source_ugi -du target_ugi source_path target_path

13. 内网跳板机文件复制命令

scp -r root@ip:/home/workspace/file.txt  pwd

14. 批量杀死Linux上含有某个参数的命令

ps -ef |grep "param" | awk '{print $2}'| xargs kill -9

15. 查看当前目录下各个文件大小,同目录

du -h --max-depth=0 *

16. 修改linux上某个目录的权限

chown -R  work  /home/workspace

17. 查看CPU 相关参数,c++程序员关注线程绑定

# 查看物理CPU个数
cat /proc/cpuinfo|grep "physical id"|sort -u|wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo|grep "cpu cores"|uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo|grep "processor"|wc -l
# 查看CPU的名称型号
cat /proc/cpuinfo|grep "name"|cut -f2 -d:|uniq
# Linux查看某个进程运行在哪个逻辑CPU上
ps -eo pid,args,psr | grep nginx

18. Java环境下jar命令可以解压zip文件,神器!!

# jar 命令解压zip
jar -xvf appinf.zip .
1
2
19. python 可以读取parquet文件
# 方法1 , pd接口读取
import pandas as pd
pdata=pd.read_parquet('/hdfs/user/app/data.20210701.parquet', engine='fastparquet')
# 方法2 ,使用fastparquet
from fastparquet import ParquetFile
pf =
ParquetFile('/hdfs/user/app/data.20210701.parquet')
df = pf.to_pandas()
print(df[0:2])

20.取得时间的若干脚本

num=1
[ $# -ge 1 ] && num=$1
day=`date -d "${num} days ago" +'%Y%m%d'`
beforeDay=`date -d "${day} -1 days" +%Y%m%d`

到这里,算法工程师常用shell命令详解就介绍完了,觉得有用就点赞和分享吧~


相关文章
|
4月前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
25天前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
1月前
|
分布式计算 Hadoop Shell
使用Shell命令操作HDFS
【8月更文挑战第5天】使用Shell命令操作HDFS。
42 5
|
28天前
|
缓存 Shell Linux
在Linux中,bash shell 中的 hash 命令有什么作用?
在Linux中,bash shell 中的 hash 命令有什么作用?
|
1月前
|
存储 Shell 分布式数据库
Hbase 的基本shell 命令
Hbase 的基本shell 命令
|
2月前
|
存储 Shell 分布式数据库
Hbase 的基本shell 命令
Hbase 的基本shell 命令
|
1月前
|
Shell Linux
shell命令-lsof
shell命令-lsof
|
2月前
|
Shell Linux Perl
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
66 0
|
3月前
|
存储 Shell 数据安全/隐私保护
Shell 内建命令:Shell 的内在魔力
Shell 内建命令比外部命令执行快,不需额外进程。`type` 命令用来检查命令类型。内建命令如 `cd`、`alias` 和 `echo` 直接在 Shell 中执行,不涉及磁盘 I/O。`type` 示例展示了 `cd` 是内建的,`ifconfig` 是外部的。`bash` 包含多种内建命令,如 `cd` 用于切换目录,`alias` 定义别名,`read` 从输入读取数据。`echo` 默认加换行,`echo -n` 可避免。
41 5
|
2月前
|
敏捷开发 Shell 测试技术
阿里云云效产品使用合集之如何用私有构建机运行shell命令打出的镜像作为下一个阶段的入参
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。