在一个小时内构建便携式数据科学家庭实验室

在我从事IT行业多年的工作中,数据始终让我着迷。拥有数据思维的人,远远比复制粘贴代码更加让人着迷。我们如何处理和存储演变成我今天关注的数据—即数据查询的性能以及从一个存储单元到另一个存储单元的每个数据处理的性能。在工作和业余时间,通过在电脑或Linux服务器上创建虚拟机并运行一些测试,我也熟悉了各种DBMS和其他管理数据的程序。
最近,开始学习数据科学,并熟悉与该领域相关的一些技术和工具。为了试验这些技术和工具,开始创建专用于数据科学的虚拟机。这涉及的程序/工具太多了,突然意识到需要一种方法来快速添加或删除程序和工具并快速扩展它们,而不是创建大量的Data Science VM。我们开始使用Docker,后来又在Linux Containers上使用,因为我发现Docker无法满足我的需求。Linux容器(LXC)使您能够在容器内拥有持久性存储,并在处理要测试的程序和/或数据库以及思想时轻松控制它。
构建数据科学虚拟机
由于我对RedHat,CentOS和Fedora非常熟悉,因此我使用CentOS 7来构建Data Science VM。尽管KVM或VMWare也是不错的选择,但我使用的虚拟化环境是VirtualBox。我创建了一个具有两个30GB VDI和两个15GB VDI磁盘且启用了动态分配的Linux VM。一个30 GB的磁盘用于CentOS 7系统,另一个30 GB的磁盘用于存储代码和数据,另外两个15 GB的磁盘用作ZFS文件系统的磁盘。ZFS文件系统具有出色的快照和可恢复性功能,非常适合LXC。ZFS的另一个不错的选择是,如果需要,您可以轻松地将更多磁盘添加到ZFS文件系统中。
要在CentOS上安装ZFS,请执行以下操作:


安装后,您应该能够创建一个使用附加到您的VM的虚拟磁盘的存储池。要创建ZFS池,您只需执行以下命令:


/ dev / sdc和/ dev / sdd是15GB磁盘。
要查看新创建的池,请执行以下命令:


向池中添加其他磁盘非常简单。将它们添加到VM之后,一旦它们可用于系统,您只需执行以下命令:


要安装LXC,我安装了快照管理器,并从那里安装了最新的(4.xx)LXC / LXD。但是,您也可以从CentOS EPEL存储库安装LXC(版本3.xx)。但是,由于最新版本是4.XX,并且尚未提供给EPEL存储库,因此使用快照式软件包管理器是一个更好的选择。


确保在使用lxd init命令初始化环境时,对“创建新的ZFS池”说“否”,并使用zpool create命令放置刚创建的池的名称。


这将初始化ZFS池上的LXC / LXD容器文件系统,以方便克隆,存储大小确定以及将容器传输到其他主机。
此时,环境已准备好添加一些容器,这些容器将在以后用于安装应用程序,针对我的应用程序和/或从CentOS主机创建并运行的数据工作流代码进行配置和测试。
例如,在我的一个实验中,我想创建一个小型Apache Spark集群,并使用我在Python和Java中创建的Spark应用程序进行比较,从MariaDB Galera集群并行读取,插入,更新和删除数据。为此,我为Spark创建了一个CentOS 7容器,为MariaDB数据库创建了一个Centos 7容器。


在每个节点上安装软件并进行一些配置后,我只需使用LXC copy命令将容器克隆两次,每次


最后,我对每个新容器中的应用程序进行了一些小的重新配置,以将它们作为群集进行连接。
之后,我运行了一个三节点的Apache Spark集群以及一个三节点的MariaDB Galera集群,并且可以将我的应用程序提交给集群。所有这些大约需要45分钟左右的时间。
要列出它们,请执行以下命令:


并在ZFS文件系统上列出它们,您可以执行以下命令:


在VM中运行Data Science Apps和工作流程

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月2日
下一篇 2020年9月2日

相关推荐