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

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

Video在线视频

Video

下一节:Video

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

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

我们刚刚讲了

在单机上怎么样去运行程序

以及怎么样去用一些小技巧

让运行程序的过程尽可能的流畅

那下面我们来给

大家简单介绍一下

怎么在一个原生的这个集群上去运行命令

从而达到进一步并行化的程序的

这样一个目标

那么所谓的原生的一个集群

就是说在这个集群里面

用户并没有去安装hadoop

或者是分布式文件系统等等

这样的高级大数据的这种系统

而是仅仅装了这个Linux

并且通过网络把它们连接起来

那我们怎么样去在这样的一个

环境下运行Linux程序

并且来处理我们的数据

那在这里最简单的

一个思路就是说

我们能不能像在本机一样

去运行命令

如果我们能像在本机一样

去运行命令

那实际上这个目标

我们就做到了

实际上Linux给我们提供了

这样的一个方法

让我们在这个分布式文件系统

在这个集群的这样一个环境下

也能够运行

简单的Linux的命令

那具体来说它是这样的

我们依然使用SSH这个命令

那么我们输入用户名

我们输入这个

要执行命令的这样一个主机

然后port

那最后我们在这个SSH命令之后

实际上我们还可以进一步输入

如果我们不输入的话

实际上我们就登陆到了

这台机器上

但是如果我们在这后面

不直接输入回车

而是打入一个新的命令的话

实际上我们是

可以在远程的一个机器上

执行一个命令

并且把命令通过SSH

命令的输出通过SSH

传回到本机

并且显示到屏幕上

那么我们可以执行LS-L

实际上大家看到的这个目录

就是在远程的

一个Linux主机上

我们运行LS之后

显示的一个结果

大家可以看

当我在本地运行LS-L的时候

那么它显示的是

我本地的一个文件的情况

而这边显示的是

远程主机的一个文件的情况

所以有了这样

一个简单的命令之后

我们就可以很容易的

把原来我们在单机上处理

这个数据的方法

给运行到这个服务器上

那么它的这个思路是什么样呢

我们可以写一些脚本

把这个SSH命令给切入进去

然后跟上我们后面

要运行的各种各样的程序

当然还有更加高级的一些方法

就像我们在这页PPT里面所演示的

我们可以通过一些已经编制好的

这种程序

来进行这种远程的命令的调用

那么在这些程序里面

它会自动的帮我们把

我们执行的命令

应用到多个不同的服务器上

那这是大家在实际的使用中

可以去尝试的一些方法

那么利用这两种方法

我们真正在处理数据的时候

实际上我们就可以去写一个batch的脚本

也就是说我们去写一个批处理的文件

在这个文件里面

我们会包含很多很多的

这个执行行

那么这个执行行配合

我们刚刚说到的这种

把进程抛到后台运行的方法

其实就可以达到

在多机上运行的一个目标

那在这边我们给大家演示一个

如何写这样一个程序的一个例子

那么我们同样创建一个叫做

run_cluster.sh的一个文件

那这个文件我们怎么写呢

我们大致的思路是这样的

我们SSH到服务器1

那么sever1

然后在服务器上运行的是cmd.sh

假设是这样一个

那么我们会把这个命令

复制多份

那么我们会加上

不同的sever

比如说2 3 4

然后1 2

我们假设在1号服务器

2号服务器上

分别运行了两个

当然这后面我们

还可以接更多的参数

让你的运行更加的定制化

那么我们需要把这几个命令

同时运行起来

所以我们在后面加上了

把它放到后台的这样一个操作

使得这几个命令

可以并行起来

达到同时在多个server上

运行这些程序的目标

当然我们的这个程序

是事先已经部署在server上了的

那这是我们需要提前去操作好的

这些程序部署在server上

让我们才能通过

在一个位置去运行

这些程序的一个目标

那么大家肯定会想

那这个过程实际上

还是比较麻烦的

那么第一个麻烦是什么呢

我们首先用ssh

登录到这些服务器的时候

那ssh可能会要求

我们输入密码

那么这个解决办法呢

我们是可以通过公钥和私钥的

这样一个配置的办法

把我们本机生成的ssh的

一个公钥复制到服务器上

那么下次我们再登录

这台服务器的时候

就不需要输入密码

这样其实我们的命令

就很像是在本机上运行

除了它的延迟比较大

第二个问题就是说

我们还需要提前把

程序部署上去

这个过程我们能不能

做的比较简单比较自动化呢

同样

我们也是可以去做的

回想我们刚刚在

每个server上

我们都可以去执行一个

叫做crontab的这样一个命令

那么crontab实际上是往我们

定期的去做一个事情

我们实际上是可以借助crontab

来实现整个程序部署的

一个自动化

也就是说

我们可以指定在

各个服务器上运行的程序

比如说有1000台服务器

它们会定期的

到我们的某一个特定的

部署程序的服务器上下载

我们生成好的这样

一个新的数据文件

这个数据文件和程序

会被download到各个运行的

集群的服务器上

这个过程实际上

是不需要用户去干预的

它会自动完成

由于crontab的特性

比如说我们用wget

可以把我们的这个程序

下载到各个服务器上

而我们只需要在这个部署的数据

和程序的这个服务器上去做修改

我们只需要在单点进行控制

就可以达到对整个系统中的

数据和程序进行一个调控

和我们其他的这种大数据

后面会介绍到它的思想是一致的

我们配置了这样一个中心的

这样一个部署程序的位置之后

其实当服务器

把数据下载回去之后

我们就会进一步让crontab

来制定它们在本机上

去运行这个程序

达到了自动运行

这些分布式的数据处理程序的

这样一个目标

他的思路和我们刚刚

从单机去运行多机上的这个程序

是一致的

但它的方法却做到了

完全的自动化

我们仅仅需要非实时的

在一个中心的位置去调控程序

就可以达到这样的一个目标

我们刚刚讲了

大家可以在单机的这个Linux server

和一个server集群上进行数据的处理

那么大家也学到了一些基本的linux的命令

也学到了怎么样通过SSH远程的执行命令

并且通过crontabl加wget的方式

在一个中心的服务器上

指定要运行的

这个程序和数据

那么大家可能会问的

一个很自然的问题

就是如果没有这些server怎么办

那么由于我们的课程

是针对各种各样的同学以及工程人员的

那么我们现在就给大家介绍

怎么样达到自己能够

拥有一定的这个server资源的

这样一个目标

那么大概有几种方式

你可以去获得这个server的

这样一个资源

第一个我们可以使用云计算的平台

那么EC2还有这个阿里云

腾讯云等

都是大家可以去使用的资源

大家可以通过这个按需付费

按需分配的方式

来获得你需要的这种云计算资源

包括在上面分配这种虚拟机

这些虚拟机大家可以去安装linux的系统

然后只需要经过几分钟的时间

大家就可以在远端

在云上有一个自己的服务器

那么大家如果不愿意付

这个很少的这个云计算的服务费的话

依然可以使用一些免费的平台

比如说planetlab

然后phonelab实际上

都是大家可以去使用的一些

这种免费的linux主机

以及一些data

这种center的硬件资源

同样

大家可以向我们的课程申请使用

我们课程提供的一些这种免费的资源

当然如果有用户的量比较多的话

可能我们的这个小的集群

可能会出现延迟比较大

或者说服务质量不是特别高的现象

但是这几种资源的形式

都是大家可以去在我们的课堂上利用的

那么我重点介绍一下

大家使用云计算资源

应该去怎么做

那么使用云计算

我们这边介绍的是Amazon EC2这个例子

实际上大家使用阿里云或者是腾讯云

应该是有类似的这样操作的

我们使用的这个云的服务模式

应该是叫做RAS基础设施及服务

这样的一个模式

也就是说我们可以分配出

类似于真实机器的

这样的一些基础设施

那么它给用户看起来

就像是一个真实的linux server

包含它的CPU资源

网络资源

ip资源以及它的存储资源

我们甚至可以去自定义

自己的硬件的情况

比如说你要不要有GPU

要不要有CPU

CPU上有多少个核

你的内存要有多大

那么都是能够在数十分钟之内

就可以完成一个任务

那么这边是EC2的一个情况

我们可以看到它的价格

我们可以看到

它的一些资源的分配的情况

那么在EC2里面

有大量的这种在amazon里面

它其实有大量的资源

你可以去虚拟化

可以去分配

那么包含了我们刚刚讲到的

一些硬件的资源

一些这种甚至是软件的资源

那么拥有这些资源之后

大家不但可以用来做数据的处理

它们甚至可以用来做数据的存储

以及后面的这种数据的一个服务

甚至是部署在web

上面的一些具体的这种应用

那么针对EC2的话

当大家分配好一个EC2的节点之后

我们大概会看到

这样的一个控制的一个面板

它可以显示你分配的一个EC2的虚拟机

它的一些基本的信息

包含它的网络的信息

存储的信息

以及它其他的一些密钥

以及安全的信息

那么如果一切信息都没有问题的话

大家就可以把实例给运行起来

EC2的一个虚拟机

叫做一个instance

大家把这个实例运行起来之后

那么amazon就会开始计费

那么在通知面板里面

大家还可以去查看

你当前运行的

这些服务器的情况

如果你运行的不止一台

实际上你是可以通过一个内网

把这些服务器连接起来

组织成一个你自己的小的

这样一个虚拟cluster

虚拟机群

那么在集群上能够干的事情

实际上你在当前

这个amazon的EC2上

你都可以做

那么在这个集群里面

我们同样还可以

对网络进行管理

比如说当我们在

进行某一些数据处理任务的时候

我们可能需要我们的机器

离我们的数据源相对近一些

那这时候我们是可以

把我们的amazon机器

分配到与它比较近的一个区域

比如说我们的数据源在美国

那我们可以选择

美国离它比较近的site

进行资源的一个分配

那么同时我们可以去配置

我们instance它网络的一个状况

比如说我们需要有不同的ip address

或者我们需要有什么样

质量的一个内网的ip

和instamce之间传输数据的

这样一个连接的一个质量保证

这是可以在这里面得到配置的

那么值得一提的是

尽管EC2是对所有人都开放的

但是它针对研究针对教育

还有特别的优惠

也就是说大家可以

通过自己的学生身份

或者说大家参与课程的

这样一个身份

可以去申请到EC2

一些比较优惠的

使用他们EC2节点的支持

那么这种支持的方式

通常是以点数的方式

给到每个同学的这样一个账号

当然大家需要通过申请

大家拿到这样一个免费的

使用时长之后

实际上就可以完成很多

我们课堂或者课堂以外的

这种服务器资源的一个使用

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

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

也许你还感兴趣的课程:

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