分布式0924-分布式服务器基础Linux中主机的远程交互(ssh)

目录

大数据分布式计算 0924

本次课程以上次思考题入手:

并行计算与分布式计算的区别?

并行计算是一台计算机使用自身共享的内存和算力,用CPU的多核特点进行并行处理。

分布式计算是利用服务器的高算力,从远程交互终端中向服务器部署代码进行计算。

我的理解还是太片面,下面看看李丰老师的想法:

并行计算(parallel computing)是一个通常用于高性能计算(HPC)领域的术语。它具体指的是使用 多个处理器执行计算或模拟。超级计算机是为执行并行计算而设计的。这些系统不一定有共享内存。并 行系统使用MPI这样的工具将在超级计算机或者集群机器上的计算资源调度并实现多任务的同步计算。 并行计算在许多计算软件中都集成了一些基本的实现途径。比如R中的自带parallel包,Python标准 库中的multiprocessing是一个用与 threading 模块相似API的支持产生进程的包。这些程序模块允 许程序员充分利用机器上的多个核心。Unix 和 Windows 上都可以运行。结合OpenMP(Open Multi-Processing)等支持跨平台共享内存方式的多线程并发的编程API,使用现有编程语言可以在大 多数的处理器体系和操作系统中运行并行计算任务。具有并行计算能力的高性能计算平台往往被应用在 很多特定的科学领域,如超级计算机,密码破译,生物医学。

分布式计算(distributed computing)实际上是一个比并行计算更笼统的术语。人们可以将分布式计 算与并行计算的意义等同于并行计算,分布式特指的是将计算分布在许多不同的计算机之间。然而,分 布式计算处理的是并发性以外的其他方面。分布式计算具有并行计算所不具有的一些特性,包括计算一 致性、计算高可用性和高容错性能等。此外现在分布式计算平台的计算成本更低。像本书涉及到的 Hadoop或Spark这样的系统都是分布式计算系统,它们都有处理节点和网络故障的能力。不过,这两种 系统也都是为了执行并行计算而设计的。与MPI等HPC系统不同,这类新型系统即使其中一个计算节点出 现故障,也能继续进行海量计算。分布式计算主要应用在数据科学领域,如互联网、物联网、车联网、 数字金融。

在现代数据科学浪潮的冲击下,利用低成本硬件实现大规模分布式计算成为大数据应用的主流方向。世 界上各大数据科学公司都把分布式计算作为数据科学的核心技术与产品。最为大家熟知的有如亚马逊、 阿里巴巴各大云平台。在数据科学的应用中催生了大量分布式计算的优秀工具,如Hadoop, HDFS, Hive, Spark, Storm。

框架

分布式中,有不同的框架:

资源调度器(分布式文件系统HDFS) + 资源管理器(管理计算机资源哪一部分做什么,YARN) + 管理框架(zookeeper & AMBARI)

不同的领域侧重的框架也不同。

电商 - spark(计算)
图片处理 - Hadoop
存储数据财富 - hive
……

大数据分布式的特性

分布式服务器一般由很多同质的软件和硬件构成。

服务器为“刀片式服务器”(不同于塔式服务器),每一个计算节点都是一个刀片,通过网络连接,非核心的节点损坏不影响整体。可以在计算资源空闲时慢慢修复。

masternode
|——- workernode1…
|——- workernode2…
|——- workernode3…

HDFS以来的两种逻辑组件,一个是起索引作用的namenode,一个是起存储作用的DataNode。二者数量和位置取决于worker节点的数量:worker很多时,要单独做成服务器,因为他们对算力要求很高;很少时可以置于masternode中。

优点:用廉价的硬件达到较高的存储性能。

缺点:随机存储,故不擅于做随机文件的搜索(会消耗大量算力查找索引),大文件被分成小份,存在不同的datanode中。

根据文件大小切割为相似大小的block:
$/tmp/test.txt $
|——- blocka
|——- blockb

>
blocka
|——- datanode2
|——- datanode1
blockb
|——- datanode1
|——- datanode3

注意到,DataNode1被复制了两份,这在分布式服务器中是很常见的。DataNode之间会根据是否空闲以及是否存储了相关数据而进行并行处理。只要namenode在,哪怕一块硬盘坏了,也能恢复。

MapReduce组件

位置:Hadoop中

作用:处理大量数据,能用forloop处理的,可以通过分布式发给程序,代码对象应当各自独立。

对服务器?的I-O性能要求较高(input-output)

老师提示:分布式程序中应有容错空间(未领会,无经历)

分布式的MapReduce如下:

JobTracker
|——- tasktracker1
|——- tasktracker2 (注意,ttk1和ttk2之间也互相连通)
ttk中容纳的是M-R两步的多个子程序

activeJobs(位置JobTracker):
joba
|——- map task1
|——- map task2
jobb
|——- reduce task1
|——- reduce task2

服务器讲解

远程操作终端:putty

账号密码和ip就略了(逃

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mkdir
cd
ls
rm -rf /user/students
touch lifeng.txt
vim lifeng.txt
emacs lifeng.txt
cat lifeng.txt

hadoop fs -ls /
hadoop fs -put lifeng.txt /user/test
hadoop fs -cat /user/test/lifeng.txt
hadoop fs -get /user/test/lifeng.txt lifeng2.txt
hadoop fs -ls /test > hadoop-ls-return.txt

本文链接: https://konelane.github.io/2020/09/24/200924hadoop/

-- EOF --

¥^¥请氦核牛饮一盒奶~suki