当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:介绍了一套基于云计算(cloudcomputing)技术的数据应用平台系统设计方案。该系统由多组服务器集群组成,可提供数据存储、备份和并行运算服务。并可釆用虚拟化应用端与分布式(Hadoop)技术相结合的方式为用户提供高容量和异构应用存储系统,以便结合iSCSI协议在硬件层获得更灵活的部署。

引言

通过FreeBSD系统搭建开源的Hadoop存储应用基础,依托在服务器虚拟化(VMware)的平台上进行运行,这样能够拥有更快、更稳定、更安全的硬件保障,使用iSCSI技术,尽可能降低存储部署成本。本系统利用VMware虚拟化平台将服务器硬件存储资源进行整合,通过建立Lun将服务器的磁盘阵列进行划分,组成多个磁盘逻辑,然后通过在Lun上安装FreeBSD操作系统及搭建iSCSI服务器端,使得存储硬件资源能够灵活地应用在Hadoop系统中。Hadoop将部署在虚拟化硬件平台上构成一个分布式的文件系统,通过WebDAV协议建立与客户端服务器的应用通信。用户可以通过访问客户端服务器,将文件通过WebDAV以HTTPS方式传输到Hadoop存储集群中保存。

该平台的设计充分利用了虚拟化与分布式技术的特点,采用多层次的模块化应用将整个存储系统从硬件架构到软件应用方式都变得灵活和易扩展,同时又因为虚拟化与分布式技术本身的安全特性,系统在数据安全性上具有先天优势,从而实现数据存储服务的低成本部署。

1系统设计原理

存储系统采用底层云存储技术与应用层iSCSI技术来为用户提供跨系统应用平台支持。其工作原理如图1所示。

图1    云计算存储系统的工作方式

系统首先由多台数据存储服务器通过iSCSI网络构成一个庞大的数据存储服务集群,每一台数据服

务器的配置是相同的。当数据达到存储池饱和状态时,可以将同样配置的服务器加入到这个存储网络中,在不改变原有系统运行状态下实现扩容。

系统采用VMwareESXiServer虚拟系统作为应用服务器集群底层系统,各应用服务器系统可在VMware虚拟系统之上建立逻辑上的关联。VMware允许多个操作系统并行运行于一台高性能服务器之上和多个高性能服务器运行同一任务,同时通过网络对操作系统进行备份和管理,能够依据应用服务使用状况对操作系统实施迁移和复制,从而扩大网络应用处理带宽。

在VMware层上安装FreeBSD系统平台搭建Hadoop分布式存储系统,Hadoop系统能将数据同时分割成许多小块和备份,通过点播服务器(Name-Node)存放于不同的数据存储服务器中。在Hadoop系统中,会有一台Master,主要负责NameNode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。

在NameNode上部署WebDAV应用,实现应用服务器对存储资源的通信,从而让用户调用Hadoop上的数据。WebDAV(Web-basedDistributedAuthoringandVersioning)是基于HTTP1.1的一个通信协议。它为HTTP1.1添加了一些扩展(就是在GET.POST,HEAD等几个HTTP标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到WebServer±,从而替代传统的FTP传输文件模式。

2系统关健技术实现

存储平台通过在Hadoop上部署WebDAV,可实现客户端(应用服务器)对服务器端(Hadoop节点服务器)的复制和移动文件,并可进行多用户同时读取一个文件等操作。

实施步骤(以四台服务器为例,结合局域网内DNS服务器):

第一步:Hadoop环境搭建

使用Hadoop的用户,机器名和IP依次为域名vcl(192.168.1.1),域名vc2(192.168.1.2),域名vc3(192.168.1.3)和域名vc4(192.168.1.4)o这是因为四台机器中vc3作为Hadoop的Namenode,其他的作为Datanode。

详细环境配置介绍如下:

Hadoop版本为0.20.2;

JDK版本为1.6.0;

操作系统为FreeBSD8.0(最小化安装)。

vc3(192.168.1.3)是NameNode(Master),其他三台作为DateNode(slave).

Hadoop是Java语言编写的机群程序,它的安装是建立在ssh和JDK之上的,所以在配置Hadoop之前首先要对系统进行ssh和JDK的安装与配置。

通过ssh来实现Hadoop节点之间用户的无密码访问

在各个节点的/etc/hosts文件中添加节点IP及对应机器名,并在各个节点上建立相同用户名与密码的账户。

修改/etc/hosts文件如下:

TOC \o "1-5" \h \z

修改成功后就可以实现IP地址与机器名的对应解析。

在各个节点建立用户名为Hadoop,密码为123456的用户。

实现节点间通过ssh无密码访问。

在vc3的/home/hadoop目录建立.ssh目录mkdir.ssh//建立.ssh目录

在/home/hadoop目录下进行ssh配置

ssh-keygen-trsa//生成密匙对

cd/home/hadoop/.ssh

cpid_rsa.pubauthorized_keys

chmodgo-rwxauthorized_keys

〃要正确设置文件的权限644(即go-rwx)scp-r/home/hadoop/.sshvcl:/home/hadoop

〃将vc3中的.ssh文件夹内容复制到vc2节点的相同位置去scp-r/home/hadoop/.sshvc2:/home/hadoop〃同上scp-r/home/hadoop/.sshvc4:/home/hadoop〃同上

测试是否配置成功。

通过ssh+机器名命令测试能否无密码访问其他计算机,如果无密码访问,则配置成功。

例:vcl使用sshvc3是否能无密码访问vc3,vc3使用sshvcl是否能无密码访问vcl(其他主机方法类似)?

JDK的安装

在这里利用ports安装JDK。在安装时要先下载如下几个文件:

jdk-l_6_0_16-fcs-bin-b02-jrl-28_may_2008.jar

jdk-l_5_0_16-fcs-src~b02-jrl-28_may_2008.jartzupdater-l_3_12—2009a.zipbsd-jdkl6-patches-9.tar.bz2

diablo-caf£e-£reebsd7-i386-l.6.0_07-b02.tar.bz2

到usr/ports/distfiles/目录,然后进入/usr/ports/java/jdkl6进行安装。

cd/usr/ports/java/jdkl6〃进入jdk安装目录

makeinstallclean〃安装jdk

下载设置环境变量,修改/etc/profile文件。在该文件中添加如下代码:

exportJAVA_HOME"/usr/java/jkdl.6.0_12"

exportPATH=”MYMPATH:MYMJAVA_HOME/bin:MYMJAVA_HOME/jre/bin:"

exportCLASSPATH=,,MYMCLASSPATH:MYMJA-VA_HOME/lib:MYMJAVA_HOME/jre/lib"

保存后键入命令:

source/etc/profile

使环境变量设置生效。

安装好JDK后可以通过which命令来测试JDK

是否安装成功:

whichjava

若是第一种方法,则显示信息如下:

/usr/local/jdkl.6.0/bin/java

若是第二种方法,则显示信息如下:

/usr/java/jkdl.6.0_12/bin/java

(3)进行Hadoop的安装和配置。

下载hadoop-0.20.2.tar.gz到/home/hadoop目录,并解压:

tar-vxzfhadoop-0.20.2.tar.gz

〃解压hadoop到当前目录

解压完后进入/home/hadoop/hadoop—0.20.2/conf目录进行配置。

cd/home/hadoop/hadoop-0.20.2/conf

修改hadoop-env.sh配置文件如下:

exportJAVA_HOME=/usr/local/jdkl.6.0

修改masters和slaves配置文件如下:

masters文件:

192.168.1.3

slaves文件:

1.1

192.168.1.2

192.168.1.4

修改core-site,xml文件如下:

V?xmlversion=,,1.0"?>

?xml-stylesheettype="text/xsl"href="configuration.xsl"?〉

V!—Putsite-specificpropertyoverridesinthisfile.

->

configuration〉

〈property〉

<name>fs.default.nameV/name>

Vvakie>hdfs://202.113.**.**:9000V/value>V/property〉

〈property〉

<name>hadoop.tmp.dir</name>

value〉/tmp/hadoop/hadoop-MYM{user,name}</value〉

V/property〉

</configuration〉

修改hdfs-site.xml文件如下:

=====line1col0linesfromtop1======

V?xmlversion="1.0"?>

V?xml-stylesheettype="text/xsl"href="configuration.xsl"?>

V!-Putsite-specificpropertyoverridesinthisfile.->

configuration〉

〈property〉

Vname〉dfs.replication</name>

Vvakie>lV/value〉

V/property〉

</configuration〉

修改mapred-site.xml文件如下:

V?xmlversion="1.0"?>

?xml-stylesheettype="text/xsl"href="configuration.xsl"?〉

V!-Putsite-specificpropertyoverridesinthisfile.-

>

configuration〉

property〉

<name>mapred.job.tracker</name>

Vvakie>202.113.88.73:9001V/vakie>

V/property〉

V/configuration〉

配置文件修改完毕后格式化NameNodeC运行Hadoop之前必须先进行格式化),进入/home/ha-doop/hadoop-0.20.2/目录,命令如下:

./bin/hadoopnamenode-format

格式化完毕后就可以运行Hadoop了,命令如下:

./bin/start-all.sh

//在/home/hadoop/hadoop-O.20.2/目录下运行

如果要停止运行如下命令:

./bin/stop-all.sh

〃在/home/hadoop/hadoop-O.20.2/目录下运行

到此,Hadoop的配置已经完成了。

第二步:WebDAV部署

修改配置

修改hdfs-webdav.war里面的WEB-INF/clas-ses/hadoop-site.xmlo

修改fs.default,name属性,以确定hdfs-webdav要连接的hadoopNameNodeServerD示例:

〈property〉

Vname>fs.default.nameV/name>Vvalue〉hdfs://192.168.52.129:9000/<C/valued〈description〉namenodeV/description〉

V/property〉

替换hadoop-xxxx-core.jar版本

由于hadoop有自己的rpc远程调用实现,并且各个版本间可能不兼容(0.17.x与0.18.x之间就不兼容),所以需要将WEB-INF/lib/hadoop-xxxx-core.jar的版本与NameNodeServer的版本一致.现war自带的是hadoop-0.18.1-core.jar的版本。

部署至tomcat

以上修改完,将war包部署至tomcat或是jboss中,部署在其它服务器中时需要tomcat的catalina.jar与tomcat-coyote,jar,拷贝至WEB-INF/lib目录,因为现在项目是从tomcat的WebdavServlet中修改而来的。

测试是否部署成功

访问http://localhost:8080/hdfs-webdav

第三步:webdav客户端访问

实现webdav的hdfs可以映射为windows或是linux本地文件夹O

window网上邻居访问

打开“网上邻居”,添加网上邻居,在“请键入网上邻居的位置”中输入Web文件夹的URL。

http://localhost:8080/hdfs-webdav

然后按照向导的提示继续下一步就可以了。

LinuxmountWebDav为本地文件系统linux下想要mountWebDAVserver为本地文件系统,必须要使用davfs2,项目网址为http://dav.sourceforge,net/。

安装davfs2请使用编译安装。

davfs2编译时依赖于neon,neon是一个Web-DAVclientlibrary,neon网址为http://www.webdav.org/neon/o

dsvfs2在mount时会使用fuse或是coda这两个文件系统,其中一个文件系统linux一般都有自带,davfs2在mount时会首先尝试使用fuse,失败时再使用coda。

但在CentOs中使用coda时发生如下错误,所以后面安装fuse,fuse网址为http://fuse,sourceforge.net/□

/sbin/mount,davfs:nofreecodadevicetomount

/sbin/mount,davfs:tryingfusekernelfilesystem

/sbin/mount,davfs:carftopenfusedevice

neon,davfs2,fuse编译安装

项目的linux_mount_lib目录自带如下三个包:

运行./configure?

运行make;

运行makeinstallo

groupadddavfs2

useradd-gdavfs2davfs2

mount.dav£shttp;//192.168.

运行davfs2的mount命令

[root®datacenter5usr]#

[root®datacenter5usr]#

在mount之前,davfs2需要创建davfs2用户及用户组

55.104:8080/hdfs-webdav/data/hdfs

Eroot@datacenter5usr]井

mkdir/data/hdfs

3系统应用拓补分析

基于服务器虚拟化(VMware)系统,制作出的云存储阵列,其中云主机控制云系统内的服务器集群,进行数据的写入与读出,由云主机提供的API接口(主要是WebDAV协议,也可采用其他协议)进行与客户应用服务器之间的数据存储、数据备灾、数据应用,这样能够尽可能地利用云的效率,如图2所示。

在图2中,系统应用主要分为存储服务与应用服务两部分。存储服务主要以Hadoop系统为主,通过应用服务中的局域网DNS构建头节点与存储节点关系。WebDAV部署在头节点服务器上,通过建立映射可在Windows或Linux系统上建立本地文件夹,从而实现为应用服务器提供存储服务功能。

4结论

本系统通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。通过虚拟化技术将iSCSI与云存储系统结合,为大型企业和机构提供异地数据存储服务,并且通过云存储系统平台为企业提供跨平台服务应用解决方案,实现了部署灵活、可扩展性和安全性高的特点,从而降低了数据存储、应用和维护成本。

20210831_612ddcc055d3d__基于虚拟化与分布式技术的存储系统

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,上周谷歌公司解雇了28名员工,原因是这些员工在谷歌纽约和加州森尼维尔的办公室静坐10小时,抗议谷歌与以色列签订的价值12亿美元的云计算合同。

关键字: 云计算 谷歌

随着大数据时代的到来,数据处理成为了一项至关重要的任务。传统的数据处理方法往往面临着效率低下、准确性不高等问题,而机器学习技术的兴起为数据处理带来了全新的解决方案。本文将深入探讨机器学习在数据处理中的应用,并分析其优势和...

关键字: 数据处理 计算机 机器学习

随着信息技术的飞速发展和大数据时代的到来,数据挖掘和机器学习作为数据处理的两大核心技术,在各行各业中发挥着越来越重要的作用。然而,尽管数据挖掘和机器学习在很多方面存在交集,但它们各自具有独特的定义、方法和应用场景。本文旨...

关键字: 数据挖掘 机器学习 数据处理

随着信息技术的飞速发展,云计算作为一种新兴的计算模式,正在逐步改变着传统的数据处理和应用方式。云计算通过整合大量分布式计算资源,为用户提供高效、灵活、安全的数据存储和计算服务。在当前数字化、网络化、智能化的时代背景下,云...

关键字: 云计算 数据处理 智能化

Arm Neoverse 旨在为从云到边缘的全场景基础设施用例提供高性能和出色能效。针对需要更高性能的工作负载和用例,Arm 推出了 Neoverse V 系列。其中,Neoverse V2 核心已被行业先行者广泛部署于...

关键字: 云计算 人工智能 CPU

3月22日,OPPO与京东举行战略合作协议签约仪式,双方确立未来三年OPPO在京东全渠道实现销售额同比增长100%的目标。此次签约双方将基于多年良好的合作基础,聚焦产品、营销、服务、渠道四大维度深化战略合作,通过发挥各自...

关键字: 人工智能 云计算 AI大模型

随着信息技术的飞速发展,数据处理和传输速度的要求越来越高,从而催生了高速器件技术的迅速崛起。高速器件,也称为高频器件或高速集成电路,是指能够在高频或高速条件下工作的电子器件。它们在现代通信系统、计算机、雷达、电子对抗、高...

关键字: 数据处理 高速器件 通信系统

随着互联网的迅猛发展,百度、阿里巴巴、腾讯等互联网巨头逐渐崭露头角,成为了行业的领军者。这些公司在云计算、大数据、人工智能等领域积累了丰富的经验和技术实力,为开发者提供了丰富的服务和工具。在这样的背景下,BAT模块应运而...

关键字: 互联网 云计算 大数据

科技点亮未来,创新驱动发展。随着科技创新的步伐日益加快,2024年将迎来新一轮的突破,有望从根本上重塑整个世界的生活、互动和交流方式。是德科技紧跟技术创新与行业发展动向,于近期发布了2024主要技术趋势预测,内容涵盖云计...

关键字: 云计算 6G AI

科技点亮未来,创新驱动发展。随着科技创新的步伐日益加快,2024年将迎来新一轮的突破,有望从根本上重塑整个世界的生活、互动和交流方式。是德科技紧跟技术创新与行业发展动向,于近期发布了2024主要技术趋势预测,内容涵盖云计...

关键字: 云计算 6G AI
关闭
关闭