您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
(alr是什么意思)-also是什么意思
命令,文件,表示(alr是什么意思)-also是什么意思
发布时间:2016-12-08加入收藏来源:互联网点击:
这两个命令都是帮助命令,当你忘记某个命令的选项的具体含义或使用方法时,可以通过这两个命令来查看具体的使用信息。
也就是说,上面讲了那么多命令的用法,如果你没记住,也没关系,只要记得命令的名称,使用man或help就可以查看其详细文档了。
# man命令使用示例~$mannetstat对于help命令要说明的一点是,内外部命令的使用形式略有不同,内部命令是指shell自带的命令,其他的命令都属于外部命令。其使用形式如下所示:
# 内部命令使用help~$ help cd# 外部命令使用help~$ls--help实际上,你不需要去记哪些是内部命令,哪些是外部命令,反正只有这两种形式,这个不行,就换另一种试试就可以了。
03
实战案例实际工作中,我们经常需要组合多种命令来完成一个特定的任务,下面我们举3个真实的用例,来演示下多命令配合的场景。
3.1找出符合过滤规则的进程并全部杀掉通常会有一种场景是,需要找出包含某个关键字的进程,并统一杀掉。例如,zeppelin运行很久后,可能就会出现SparkContext失效的问题,导致代码运行报错的情况,需要杀所有相关的SparkSubmit进程,然后重启ZeppelinServer。其命令示例如下:
~$jps-lvm|grepzeppelin|grepSparkSubmit|awk'{print$1}'|xargskill-9这里我们引入了3个新的命令,简单解释下。awk是一个文本处理指令,这里写的表达式含义为,用空格切分每行内容,并取其第一列,这里第一列就是进程pid。xargs命令的作用是将管道数据转换成命令行参数,这里的用法是将管道传过来的多个进程pid,转换成后面的kill命令的参数。kill命令加上-9选项常用于强制杀进程。
因此,上面的命令串的含义为,罗列当前用户下的所有java进程,并过滤出包含zeppelin和SparkSubmit关键字的进程,取出它们的pid,并传递给kill命令,进行强制杀操作。
值得注意的是,为防止误杀,在执行这条命令前,可以先执行命令的前面三段,然后确认下是否都是要杀的进程,确认无误后再执行。
3.2找到日志文件中的错误堆栈信息还有一种常见的场景是,某服务运行不正常,你怀疑可能在运行过程中有报错,但是日志文件的末尾已经被写入了大量其他信息,这时你可以通过tail和grep的搭配完成错误信息的收集。
其代码示例如下:
~$tail-n2000namenode.log|grep-i-A30-B5-E"error|exception"上面命令串的含义为读取namenode.log文件的末尾2000行,然后通过grep命令,忽略大小写过滤出包含error或者exception字符的行,并打印匹配行前面5行和后面30行的内容。这样不仅可以找出错误,还可以把异常堆栈信息找出来。
3.3上传前一天的日志到HDFS并启动一个Spark任务分析它这个场景对大数据分析师来说,一定不陌生。我们今天通过几条命令,来简单演示下这个过程。
具体命令如下:
#获取前一天的日期~$ yesterday=`date -d '1 day ago' '+%Y-%m-%d'`# 拼接出要上传的本地文件名~$ local_file="user_op_data_${yesterday}.log"# 上传至HDFS~$ hdfs dfs -put $local_file /data_warehouse/ods/user_data# 执行特定的spark分析作业~$nohupshsubmit.sh$yesterdayspark.log2&1&上面几行命令简单演示了上传数据文件并启动分析作业的示例,需要重点关注的是,反引号("`")可以把命令的执行结果返回,并通过等号赋值给某个变量,如示例中将date命令的执行结果赋值给了yesterday变量。通过$符号可以获取变量的值,并和其他字符拼接成字符串。
submit.sh脚本是已经写好的spark作业脚本,只需要传入日期即可,这里只是为了演示下nohup和sh命令的用法。
最后,通过nohup启动一个忽略挂断信号的进程,这样即使执行过程中终端退出,也不会影响分析作业的执行。
总结本文针对大数据分析工程师日常工作中常用的命令进行了初步的讲解,掌握了这些命令的用法基本上可以满足工作的需要。
如果想要深入理解和使用某个命令,大家可以再通过其他网络资源,进一步学习。希望本文的梳理对大家有所帮助。
本文到此结束,希望对大家有所帮助呢。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |