zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Spark修炼之道(基础篇)——Linux大数据开发基础:第十四节:Shell编程入门(六)

2023-09-14 09:00:24 时间

case控制结构较之于if条件判断,代码可读性更强,典型的应用场景是:编写的shell Script可能会跨越好几种平台,如Linux、FreeBSD、Solaris等等,而各平台之间,多多少少都有不同之处,有时候需要判断目前正在那一种平台上执行。此时可以利用uname命令与case控制结构搭配使用,具体代码如下:


root@sparkslave02:~/ShellLearning/Chapter14# chmod a+x case01.sh root@sparkslave02:~/ShellLearning/Chapter14# ./case01.sh My system is Linux Do Linux stuff here...

read命令在shell脚本中很重要,学用这个命令来接受用户输入,直接上代码演示它的使用方法:


#! /bin/bash #-p(prompt) 选项表示,输出提示,本例中会输出"pleas input a number:",提示用输入 read -p "pleas input a number:" num[敲回车] echo "the input number is $num" root@sparkslave02:~/ShellLearning/Chapter14# chmod a+x read.sh root@sparkslave02:~/ShellLearning/Chapter14# ./read.sh pleas input a number:12 the input number is 12

上面给出的代码在输完12后,敲回车后脚本将继续运行,对变量num输出。read命令还有一种用法是,当输出的字符满n个后脚本继续运行,具体使用如下:

root@sparkslave02:~/ShellLearning/Chapter14# vim read.sh

#! /bin/bash

#-n 4 选项表示,输入满4个字符后,接着执行后面的脚本 

read -p "please input:" -n 4 num

echo "the input is $num"

root@sparkslave02:~/ShellLearning/Chapter14# vim read02.sh

root@sparkslave02:~/ShellLearning/Chapter14# chmod a+x read02.sh 

root@sparkslave02:~/ShellLearning/Chapter14# ./read02.sh 

please input:readthe input is read

有时候我们要输入密码等敏感字符,此时可以使用-s 选项,具体使用代码如下:


管理在linux操作系统中是一个非常重要的概念,在实际使用中使用非常广泛,管理命令的格式如下:


指的是cmd1的输出作为cmd2的输入,cmd2的输出又作为cmd3 的输入,如此串起来很像一个管道(pipe),例如下面这个命令常用来查看ssh服务是否启动:

//ps -e命令得到的进程信息输出作为 grep命令的输入,过滤出包含ssh的进程信息

root@sparkslave02:~/ShellLearning/Chapter14# ps -e | grep ssh

 1673 ? 00:00:00 sshd

 1794 ? 00:00:00 ssh-agent


# Apache spark系列技术直播# 第五讲【 Spark RDD编程入门 】 主讲人:王道远(健身) 阿里巴巴计算平台EMR技术专家 直播时间:2018.12.13(本周四)19:00 - 20:00 内容提要:本次讲座主要涵盖Spark RDD编程入门基础,包括: Spark、RDD简介 RDD API简介 打包与spark-submit 性能分析与调优基础 ppt链接:https://yq.
# Apache Spark系列技术直播# 第五讲【 Spark RDD编程入门 】 内容提要:本次讲座主要涵盖Spark RDD编程入门基础,包括:1. Spark、RDD简介 2. RDD API简介 3. 打包与spark-submit 4. 性能分析与调优基础主讲人:王道远(健身) 阿里巴巴计算平台EMR技术专家直播时间:2018.
SparkStream在处理流数据时,按时间间隔把数据分成小批,在一个小批中利用RDD 的函数完成各种运算。如果要在各小批之间共享数据,或者保存到每批次的数据到一个集中变量中,就要用到mapWithState函数,在整个流计算任务中维护了一个key-value State对象(应该也是一个RDD),根据本批次的任务更改State。