当前课程知识点:高级大数据系统 >  Basics of Linux Data Processing >  Running Commands on a Single Machine >  Video

返回《高级大数据系统》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《高级大数据系统》慕课在线视频列表

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可以

让我们达到这样的一个目标

其实在我们很多的

这种运行当中

我们都需要把

前一个进程的输出

作为下一个进程的一个输入

那么达到一个简化整个命令

书写的一个目标

那这也是各位同学在后面的

这种尝试中需要去

实验的命令之一

高级大数据系统课程列表:

Introduction to Big Data Systems

-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

Basics of Linux Data Processing

-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--作业

Distributed File System

-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--作业

MapReduce

-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

In-memory Processing

-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--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-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--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。