当前课程知识点:高级大数据系统 > Basics of Linux Data Processing > Running Commands on a Single Machine > Video
好 我们刚刚介绍了在linux单机下
怎么利用原生的这些命令
进行数据的处理
那么下面我们来教大家怎么样在linux上
真正的去运行这个命令
实际上并不会像我们刚刚说的
把每个命令讲进去
就能够把相应的结构给梳理出来这么顺利
大家可能会需要反复的去试
甚至需要进行一些
这种并行的操作等等
让我们来看到底有一些技巧
可能大家需要去知道的
那第一个技巧
是叫做这个history
就大家需要把你们运行的过程中
产生的一些这个历史给调出来
给进行查看
那我们来看看history
它到底起到了一个什么样的作用
那在我这个例子底下
当我在我的这个终端
打入hsitory的时候
我们发现
实际上他把我之前运行过的命令
在屏幕上给输出出来了
那这有什么好处
因为我们在处理数据的时候
很多的时候
可能并不是一下子就能够
得到这个正确的结果
我们可能会需要反复的去命令进行调整
而去进行不断的一个尝试
那hsitory实际上就把我们
尝试这个过程给整理了下来
比如说我们想知道
我们运行grep
到底经过了哪一些操作
这时候我们就可以用hsitory
通过管道grep
这时候我们就可以把我们在
最近的一些运行当中
使用grep的这些命令
给搜索出来
那么方便我们后面去整理
这个正确的命令的这样一个过程
所以history是大家需要去掌握
并且使用的
那在这个PPT里面
实际上也给了这样一个例子
给大家看到history
是怎么样去用的
那么第二个叫做这个&符号
实际上是把一个进程放到后台
让它在后台运行的这样一个操作
那么这有什么好处
我们今天在linux上处理数据
实际上通常我们有的计算资源
CPU已经是多核的了
有的单机服务器上的
这个CPU已经高达二三十个
已经是非常常见的配置
那么怎么样让你的程序
能够并行的把这些CPU的
资源都运行起来
但是你不想去修改你的程序
成为这个运行的程序
或者说你就要用
原生的Linux的命令
来做这件事
那么你应该怎么去做
我们来看&是怎么帮助
我们做到这一点的
我这里也已经编制好一个叫做run
这样一个脚本文件
我们来看它是怎么写的
那么这个脚本文件是
去ping了3个网站
一个是学堂
一个是百度
一个是清华的门户
那么-C加在Ping的
这个参数里面
是表示对它进行3次的
这个ping的操作
那么我们发现
在后面两行命令上
我们加了&符号
那么它的意思就是说
当运行到这行命令的时候
这个程序会被系统调入到后台
也就是说它不会阻塞在这
而是让下一条命令可以得到执行
并且并行起来
那么我们最后有一个位置
它是让整个程序
在这里发生阻塞去等
前面放到后台的程序
全部执行结束
然后结束整个进程
那么我们来看这样的一个进程
它到底是怎么样运行的
我们来看一下它的效果
我们运行run.sh
那么我们发现
它开始单独的去ping学堂
因为在学堂后面
我们并没有加&符号
所以这10次是串行的进行的
但是到我们ping到
第二和第三行的时候
也就是说ping到百度和清华的时候
我们发现这两个ping的结果
是交替的出现的
也就是说这两个ping实际上
是在同时运行着的
他们会被操作系统这个一定的
这种调度方式
运行的调度起来
那我们发现它们的
输出实际上是交叠在了一起
也就是说验证了
他们是同时运行的
这样一个现象
通过这个命令
大家可以做到什么样的效果
就是说大家可以对你写好的
相同的这样一个程序
进行多个进程的这个调度
比如说我们可以用你的程序
去处理文件A
用你的程序处理文件B
去处理文件C
如果是串行的这个情况下
可能为ABC就需要依次被执行
然后等待足够的时间
如果这个执行并不存在着
相互之间的数据依赖的话
我们是完全可以
把它并行起来的
而通过简单的用一个&符号
我们就可以让这个进程
在单一的这个服务器上
被多核的CPU
或者被单核的CPU
同时运行起来
达到对IO的一个高效的利用
那这是我们讲
怎么样在单机上进行
分布式的文件的处理的
这样一个方法
那么当我们对这个
单机的资源进行一定的
这个利用的时候
我们就会面临
我们到底还有没有
足够的资源
或者说当我们发现
我们的某一个程序
运行很慢的时候
我们想要去查看
它的原因是什么时候
我们就需要对服务器上的
这个进程进行一定的了解
那么linux上ps和top
两个命令是可以帮助
我们来查看
在当前的这个服务器上
运行的其他进程的一个
消耗资源的情况
ps可以把进程的详细的信息列出来
top可以把当前占用计算网络
和这个存储资源的一些IO资源的
一些这个进程
给按照先后顺序列出来
所以这两个命令
是大家需要去查看
并且用来研究当前程序
为什么运行的慢
或者说当前系统的资源消耗
为什么大的一个工具
当然这两个命令依然可以
和其他的这个命令
进行管道化的组合
比如说可以进行grep
我们可以查找自己的进程
是真正的运行
还是说出现了一些bug
已经被这个系统给中断掉了
那么这个crontab
crontab实际上是在单机上
进行这个计划
任务调度的一个命令
它的这个用处
就是说我们可以指定
在特定的时间点
发生某一个命令
而这个命令实际上是可以周期的
那他周期的这样一个方式
是我们在这边已经给到了
我们可以通过指定
它运行的分钟、小时、天、这个月
以及这个每周的这个周几
然后让这个命令
在特定的时间发生运行
那这种运行的机制
它的好处就是说
我们可以让整个系统
做一些定期性的任务
比如说我们每天
会让我们某一个进程启动
比如说这个进程
是去爬取某一个数据
那么通过这种方式
我们就可以获得
一个周期性运行的
一个爬虫
这也是crontab
可以做的这种典型的事情
那么最后一个命令是这个xargs
xargs实际上是我们
用管道进行任务这个执行的
一个很有用的一个这个命令
它的一个用法就是说
我们可以把
前一个程序的输出
作为下一个程序的参数
那么xargs可以
让我们达到这样的一个目标
其实在我们很多的
这种运行当中
我们都需要把
前一个进程的输出
作为下一个进程的一个输入
那么达到一个简化整个命令
书写的一个目标
那这也是各位同学在后面的
这种尝试中需要去
实验的命令之一
-What is big data and what is big data system?
--Video
-Problems in big data systems?
--Video
-Overview of the course
--Video
-Principles of big data system design
--Video
-Manipulating Data on Linux
--Video
--Video
--Video
-Basics of Linux Data Processing--Manipulating Data
-Running Commands on a Single Machine
--Video
-Running Commands on a Single Machine--作业
-Using a Linux Cluster
--Video
-Using a Linux Cluster--作业
-Storage for Big Data Computing: Distributed file system
--Video
-Storage for Big Data Computing: Distributed file system--作业
-File system and GFS
--Video
-File system and GFS--作业
-Understanding HDFS using Legos
--Video
-Understanding HDFS using Legos--作业
-File System Implementation and DFS
--Video
--Video
-File System Implementation and DFS--作业
-What is MapReduce and why
--Video
-What is MapReduce and why
-Learn MapReduce by playing with cards
--Video
-Processing pattern
--Video
-Processing pattern--作业
-Hadoop
--Video
-Hadoop--作业
-Algorithms in MapReduce
--Video
-Algorithms in MapReduce--作业
-Tutorial
--Video
-Background
--Video
-Background--作业
-Spark
--Video
-Spark--作业
-Use Spark for data mining
--Video
-Use Spark for data mining--作业
-Spark data processing
--Video
-Spark data processing--作业
-Experiment in Spark
--Video
-Experiment in Spark--作业
-Introduction to streaming data processing
--Video
-Introduction to streaming data processing--作业
-Storm
--Video
--Video
--Video
-Storm--作业
-Spark streaming
--Video
--Video
-Spark streaming--作业
-NoSQL introduction
--Video
-NoSQL introduction--作业
-Common Advantages
--Video
-Common Advantages--作业
-Bigtable
--Video
-Bigtable--作业
-Master Startup
--Video
-Master Startup--作业
-HBase
--Video
-HBase--作业
-What is GraphDB and Graph data processing
--Video
-What is GraphDB and Graph data processing--作业
-Graph systems
--Video
-Graph systems
-Example of a GraphDB
--Video
-Example of a GraphDB--作业
-Mahout
--Video
-Mahout--作业
-Case Study: Recommendation
--Video
-Case Study: Recommendatio作业
-Recommendation in Mahout
--Video
-Recommendation in Mahout--作业