当前课程知识点:高级大数据系统 >  Basics of Linux Data Processing >  Manipulating Data on Linux >  Video

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

Video在线视频

Video

下一节:Video

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

Video课程教案、知识点、字幕

各位同学大家好

我们在之前的课程已经给大家介绍了

我们这门课将会给大家说些什么东西

我们会介绍大数据的这个分布式系统

包含了分布式的文件系统

分布式的这个大数据并行计算系统

然后有这个内存化的这种数据处理框架

以及流式数据处理的这种模型等等

那么为了让大家更容易上手

我们这门课程

今天我们会给大家做一堂

这个基础的这种辅导

那么具体来说

我们会去介绍怎么样使用一个linux的单机

以及linux集群

进行简单的这种数据处理和数据挖掘

那么我们的目标主要是让大家熟悉

linux底下的这种数据操作

以及linux底下的一些常用的命令能够帮助大家

在后面这种具体的大数据系统中

更好地完成大家的这个学习任务

那么今天我们的主要内容会去讲这个单机

在一个单一的这个linux的server上怎么样去处理数据

以及怎么样在一个简单的这个linux集群上去处理数据

那么这些数据处理都不涉及到

我们后面要讲的这些

具体的系统比如说HDFS

或者是hadoop

而只是在一个原生的linux的服务器

或者集群上去进行

那我们首先来看怎么样

在一个linux的单个的服务器上去进行数据处理

当然我们进行数据处理的第一步

就是说我们怎么样登录到这个linux服务器

如果各位还没有使用过linux的机器

我建议大家在这门课的学习中

尽可能的去使用linux作为你们的工作环境

那么我们来看在linux上

我们怎么样能够登录到这个一个linux的服务器

linux通常使用这个SSH

作为它的一个登陆的这样一个服务

那么SSH和大家在windows上用的

这个远程桌面类似

它是一个让用户从远端连接到

一个服务器的这样一个方式

我想大家肯定都有用远程桌面的这样一个经验

可能不少的同学也都使用过这个SSH

那么我会给大家介绍一下

当你使用这个SSH的时候

应该是怎么去做的

那么在我的这个桌面上

我现在已经打开了一个这个

我现在已经打开了这样一个可以

已经去使用这个linux的这样一个终端

如果各位是使用windows的情况

如果是使用windows的话

实际上你们是需要去下载一些

特定的软件来使用这个SSH

比如说这个putty

putty实际上就是一个

在windows下可以进行

SSH连接的这样一个客户端

那么这边我假设大家已经有了

这样的一个客户端

那么在我的桌面上

我现在要去连接一个linux服务器的话

我就可以直接用SSH这个命令

这边我连接一个服务器给大家看一看

比如说我要连接的服务器

它的这个IP或者是域名我是知道的

那么我们这边的例子是一个

我们自己的服务器

那么这样我就可以连接上它了

那么在特殊的情况下

我们还需要指定用户名

比如说我在这个服务器上

有一个用户名叫做王智是我的名字

那么我打开了这个SSH的端口是222

那么现在把端口也输入进去

现在我敲回车之后我的电脑

就开始连接这台服务器

现在我已经连上了这台服务器

这是远端的一个服务器

有了服务器之后

实际上我们就可以进行一些

服务器上的数据操作

那么我们进行什么样的数据操作呢

实际上在进行之前

我们都需要把数据想办法

从我们本机或者是其他远端的地方

复制到这个服务器上

那么在这个linux下复制

数据实际上也有很多的办法

那么在这个ppt里面我们给大家列了这样一些方法

我们可以通过SCP

通过SCP那么利用刚刚我们已经使用SSH

把数据传输过去

SCP基于SSH协议

在SSH协议上包了一层

那么可以通过SSH

来进行数据的传输

然后我们还可以有更加完善的

这样一个基于SSH的文件系统

那么在ppt中这个例子

实际上给到大家一个文件系统的适应

你可以像使用本地文件一样

透过SSH去操作远端的文件

也可以把本地的文件

和远端的文件进行交换

FTP

大家可以通过在服务器上搭建FTP服务器

通过本地的这个FTP客户端和服务器进行交换

wget

那么wget大家可以通过

在服务器上运行wget把远端的一个文件下载到本地

这是我们通过这些文件的

这种传输的命令进行

文件传输的一个操作

那这边我也给大家演示一个

如何进行文件复制的一个例子

那么大家可以看到

我本地有3个文件

现在我会把这3个文件中的1.txt

复制到远端的一个服务器

那么使用SCP

我们刚刚已经说

我的服务器的端口是2222

那么我把本地的一个文件

叫做1.txt复制到远端

那么远端的什么目录下呢

是我的home目录底下

那这样一个命令就完成了

从本地把文件复制上去的一个操作

我们可以进一步登录到

刚刚的服务器去检查这个文件

是不是真的已经上传上去

我们发现在这边已经多了一个1.txt

那么这个文件从本地传到了远程服务器

那么接着我可以在远程服务器上

进行一系列的这个操作

经过上面两步的话

实际上大家已经有了一些数据

在服务器上也可以连接到

这些服务器进行服务器的命令

那么下面我们就通过一些

原生的这个linux的程序

不需要大家额外去安装

而是使用它系统自带的

或者大部分系统自带的

通过这些程序去操纵数据

那么第一个

我们要使用的是什么呢

叫做file

实际上在linux底下

我们经常是需要去知道

我们当前处理的数据

到底是个什么样的文件

比如说在我目前的这个目录底下

我有两个txt和pdf

大家通过它的后缀名扩展感觉它好像是pdf

那实际上它可能不是

因为我可以给他们任何可用的扩展名

那么你是不能去确定的

那么我们现在来看

我们通过file命令

可以做到一些什么样的事情

比如说我们file

我们加上a.pdf

那么我们看到它显示了这样的信息

那么它是一个pdf的文件

它的版本号是1.5

所以我可以有理由相信

它就是一个pdf

版本号是1.5

这时候如果我通过文件的重命名

我把a.pdf命名成

a.txt又会怎么样呢

这时候我简单的通过文件名的话

我肯定觉得他应该就是一个文本文件txt

但实际上我们用文件这个命令

来打开txt的话

我们发现它的显示依然是pdf

说明在这个linux的命令里面

实际上他对文件的一个判断

并不是依赖于它的扩展

而是依赖于他对文件

整个结构整个文件的信息进行读取之后得到的

所以我们不再需要

去对扩展名进行记忆

我们只需要知道

我们只要用file

就可以去知道这些文件到底是做什么用的

是有什么样的这个属性

它是什么样的版本

那么这个是我们能够

去查看这些文件的第一步

那么 第二步

我们想知道这些文件到底有多大

这也是我们在处理数据的时候

肯定非常关心的一个问题

在linux底下

我们会用LS list

这样一个命令对文件进行查看

我们打入LS之后可以在

本地看到它有这样3个文件

那么我们想知道更多文件信息的时候

我们可以用LS的一些参数

比如说LH

就让他按照详细的信息

并且按照人能够容易读懂的

这样一个模式显示出来

我们发现这个文件的

一些详细信息被显示了出来

包含了它的权限

然后它的这个用户和组

以及它的大小创建的时间

这样的一些信息

所以这个信息会帮助

我们能够很好地知道这个文件

它在物理空间上的一个情况

假设我们处理的是一个文本的这种数据文件

我们可能还想知道这个文件

到底有多少个字符或者多少行

那么我们可以进一步利用一个

叫做word count的这个命令

比如说我们想知道行数的时候

我们可以把1.txt

按照这个word count给显示出来

我们发现这个文件是7行

我们可以验证

把这个文件真的打印出来看一下

所以这个文件包含了7行数据

当我们的文件的数据比较大的时候

实际上我们可以通过这样的办法

把这个数据给做一个

简单的初步的一个统计

我们知道大概需要编多大的

多么复杂的程序来处理这个数据起到这样的目的

我们刚刚说已经可以连到服务器

并且有了数据

那么我们也能大概的知道

这些文件它的基本的一些属性

那么下一步我们就是需要真正的去操控数据

那么在操控数据之前

我们需要去查看这些数据到底是怎么样

我们刚刚已经给大家演示了

more这个命令

more是让指定的这个文件

投影到屏幕上的一个操作

它可以把文件的内容

打印到屏幕上

那么另外的一个命令

或者说功能更强大的命令是less

他也是把这个文件的数据

打印到屏幕上

只不过大家发现它重新

开启了一个新的一页

那实际上大家在使用当中

这两个命令通常是可以互换的

在没有特别的要求的情况下

那么还有一个命令叫做head

在我的ppt上面已经列到了

head他的这个命令的含义

和它的语义是一样的

它把这个文件的头部给显示出来

我们可以看一眼1.txt

那么我们发现他把1.txt

所有的都显示出来了

那这个原因是因为我们

这个文件的行数比较少

那我们现在可以把1.txt变得比较长

我们假设打开这个1.txt进行编辑

我们让它变成一个更加长的这样一个文件之后

看看它的效果是什么样的

好 我们现在把1.txt

再用head给打印出来

现在我们看到1.txt打印的是它头的这几行

那么尾对应的也是相同的含义

我们可以用tail把1.txt

末尾的几行给打印出来

大家可以看到这是末尾的几行

那么有了head和tell

实际上我们就有办法

将这个比较大的文件

比如说几百兆

或者是几个G的文件

进行一个头和尾的一个查看

那么当我们运用这个head和tail的

一个组合的话

实际上我们是有办法

进行任一行的一个查看

那么我们来看看这个是怎么做的

那么head有一个参数叫做L

我们来看这个L起到一个什么样的作用

had有一个这个参数叫做N

我们来看看这个参数N

能够起到什么样的作用

那么 我们打入N之后

实际上它起到的作用

就是说我们不再按默认的这个行数把文件的

头或者尾给显示出来

而是按照我们指定的这个行数

那么指定的行数在N里面给出了

那现在就是一行

我们看到head可以把第一行给显示出来

那当我要把一个很大的文件的

中间某几行显示出来的时候

我们常常需要用到的命令

就是head和tail的一个组合

那具体来说是这样的

比如说我们想将这个文件的

第五行给显示出来

那么我们需要做的呢

就是说我们让他把头五行给输出出来

然后我们再接一个管道

用tail让它的最后一行输出出来

那么这时候我们就可以看到

这个情况是什么样了

当然前面我们继续用一个管道

把这个文件输出给head

这时候我们可以看到

它把第五行给输出了出来

在这里

对于大家查看大文件的时候

这种技巧是很有帮助的

可以帮助大家对文件的

任何一段显示出来

而不需要在整个屏幕上去做查找

有了这个more, less

head和tail之后

实际上大家已经可以去查看

一个文本文件任何的位置

那么不管这个文件大或者不大

大家都可以在有限的屏幕空间里面把它显示出来

做到对这个数据的查看的这样一个目标

那么下面我们就会

跟大家介绍一下

如果我们要对数据进行一定的操控

大概有一些什么样的方法

第一个命令呢叫做cat

cat这个命令实际上和more很像

它是把文件里的这个数据输出到屏幕

我们可以看一下

cat 1.txt

我们发现它把整个文件中

包含的数据打到了这个屏幕上

那么cat既然它是用来操纵数据的

那么它的功能自然不简单的只是查看数据

我们来看我们用cat的操控数据的时候能做到什么

我们经常会做的一个操作

就是将两个文件进行合并

那么在ppt中的这一页

大家可以看到

我们要将两个文件

合成一个长的文件

我们来看cat是怎么做到这一点

实际上非常简单

它是把两个文件并列的

作为这个cat的输入

比如说我们现在用的是一和二

那么它的输出变成了

这样的一个样子

大家还记得

这部分是英文字母是这个

1.txt中的内容

而数字的这一部分

是2.txt中的内容

这样我们就可以把多个小文件

合成一个大文件

那么在某一些数据处理当中

我们可能需要做这样的操作

还有一种对文件的合并

实际上我们可能并不是特别想

按照行的这种方式把它简单的累加到一块

我们是需要它再列上做一些组合

比如说在我们屏幕的这个例子当中

我们分别有若干行

第一个数据集和若干行第二个数据集

我们现在想对这两个数据进行横向的扩展

也就是说

如果我们把它当成表格

我们想把它们的列

给进一步的拓宽

那我们来看使用什么样的命令来做这件事

那这个命令叫做paste

paste的这个含义

就是将两个文件进行横向的

进行列方向的一个扩宽

我们来看在我的电脑上

刚刚我们已经看到有两个文件

一个叫1.txt

一个叫2.txt

我们现在来对两个文件进行

paste的操作

看看是什么样的效果

1.txt

2.txt

那么这两个文件

我们是希望它能够把

两个这个小文件合成一块

并且是按照列的方向进行扩展

我们来看一下效果

它的确实现了我们的目标

我们发现两个文件

它们最开始的部分被合并到一块

并且这个命令它是能够对

这个两个文件不一致进行容忍的

它只是将原本的一个文件超出

另外一个文件的这个行给原封不动地粘了过来

所以运行不会出现什么样的错误

如果大家在真实应用这个数据进行两个文件

进行这个列的扩展的时候

实际上大家是需要去注意一下

比如说有没有因为你的数据操作之前的一些失误

或者说一些错误数据噪声数据的存在

导致这个两个行数不一样

那么你得到的结果

可能会出现问题

那这时候

可能我们就需要通过其他的程序

或者其他的这个观察

我们把中间的这种空行

或者是错误的行给删除掉

那这是用paste的进行拓展的时候

我们需要注意的一个事情

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

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笔记与讨论

也许你还感兴趣的课程:

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