文件服务器是指在计算机网络中,以文件数据的存储与共享为主要功能的服务器,负责中央存储和数据文件管理,处于同一网络环境。数据库服务器因为数据文件的重要性及数据的文件都较大,数据库服务器一般是指运行在网络中的一台或多台服务器和数据库管理系统软件,邮件服务器。
文件服务器(Fileserver),又称档案伺服器,是指在计算机网络环境中,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和存储的特殊电脑。文件服务器通常比一般的个人电脑拥有更大的存储容量,并具有一些其他的功能,如磁盘镜像、多个网络接口。
前端:
通常是针对浏览器而开发的,是在浏览器端运行的程序。
后端:
针对的是服务器,准确的来说应该是服务器端开发。
小结:
1、前端开发偏向于用户体验,比较直观,服务器端开发偏向于性能。
2、两者结合起来,是比较吃香的,可以称之为Web开发,偏向于编程。而PS,可以看成是视觉设计方面的职能。
前端主要是直接与用户交互的,主要涉及的是html,css,js等技术
后端主要是用于为前端提供数据以及从前端获取数据,涉及到的技术主要是PHP,javaweb,数据库等
而后台一般是指管理员 *** 作的系统/软件,这本身也是个软件/网页,包括它自己的前端和后端
举个例子:
你来百度搜索东西,你看到的这个网页是前端,你输入搜索内容是前端,百度把你的内容进行分析然后返回给你搜索结果是后端,你看到的搜索结果的页面是前端,而百度的数据分析员浏览近一个月的搜索记录和相关事件热度,这是后台。
转载表面上看,是一套基于B/S方式实现的分布式管理系统,但其实背后的架构是基于C/S完成的。你以为他是一只鞋吗?其实他是一个吹风机。作为界面化的系统,浏览器框架是不可或缺的,但更加重要的东西在Socket上面。
一、需要解决中央控制端到各节点服务器之间的通信。
这个其实牵扯到一个通信协议的问题,各语言都有自己的socket,thread的库,直接调用即可。但是这个通信协议就需要自己来完成了。既不能太简单,太简单了,明码传输,如果别人获知了这个接口,就很容易执行一些令人讨厌的 *** 作。也不能太复杂,太复杂了等于是给自己找麻烦,所以简单的数据包编解码的工作或者用token验证的方式是需要的。通信协议起码要两种,一种是传输命令执行的协议,一种是传输文件的协议。
二、跨语言的socket通信
为什么要跨语言,主控端和代理端通信,用什么语言开发其实无所谓。但是为了给自己省事,尽可能使用服务器上已经有了的默认语言,Ambari前期采用phppuppet的方式管理集群,这不是不可以,puppet自己解决了socket通信协议和文件传输的问题,可你需要为了puppet在每台服务器上都安装ruby。我是个有点服务器和代码洁癖的人。光是为了一个puppet就装个ruby,我觉得心里特对不起服务器的资源。所以我自己写了一个python的代理端。python是不管哪个linux系统在安装的时候就都会有了。然后主控端的通信,可以用python实现,也可以用php实现,但是考虑到对于更多的使用者来说,改php可能要比改tornado简单许多,所以就没用python开发。hadoop分支版本众多,发布出去,用户要自己修改成安装适合自己的hadoop发行版,就势必要改源码,会php的明显比会python的多。php里面的model封装了所有的 *** 作,而python只是个 *** 作代理人的角色而已。
所以也延伸出一个问题,什么语言用来做这种分布式管理系统的代理端比较合适,我自己觉得,也就是python比较合适了, *** 作系统自带,原生的package功能基本够用。用java和php也可以写agent,但是你势必在各节点预先就铺设好jre或者php运行环境。这就跟为什么用python和java写mapred的人最多是一样的。没人拦着你用nodejs写mapred,也可以写,就是你得在每个节点都装v8的解释引擎,不嫌麻烦完全可以这样干。原理参看map/rece论文,不解释。perl也是 *** 作系统原生带的,但是perl的可维护性太差了,还是算了吧。
所以这就牵扯到一个跨语言的socket问题,理论上来说,这不存在什么问题。但这是理论上的,实际开发过程中确实存在问题,比如socket长连接,通信数据包在底层的封装方式不同。我没有使用xml-rpc的原因之一就是我听说php的xmlrpc跟其他语言的xmlrpc有不同的地方,需要修改才能用,我就没有用这种办法。最早是自己定义的 *** 作协议,这时就遇到了这些问题,所以后来直接采用了thrift方式。就基本不存在跨语言的socket通信问题了。
三、代理端执行结果的获取
无论命令还是文件是否在代理端执行成功,都需要获取到执行结果返回给中央端。所以这里也涉及一个读取节点上的stdout和stderr的问题。这个总体来说不是很难,都有现成的包。当然这个时候你需要的是阻塞执行,而不能搞异步回调。
还有个问题是,我要尽可能使用python默认就带的包,而尽量不让服务器去访问internet下载第三方的包。
还有代理端最重要的一点,就是python的版本兼容性。centos5用python24,centos6用python26,ubuntu基本默认都是27。所以一定要最大限度的保证语言的跨版本兼容性,要是每个 *** 作系统和每一个版本我都写一个代理,我一个人就累死了。
四、浏览器端的model,view,controller
这里面你要封装好所有的通信协议,以及需要在节点上面执行的脚本。发送文件的 *** 作和数据库 *** 作也要在model里面完成。
如果对tcl/tk很熟,也可以写基于 *** 作系统界面方式的管理,不用浏览器就是了。
view对我来说是最痛苦的事,都是现学的jQuery怎么用,前端的工作太可怕了。关于这方面,没有太多可描述的,html和js带给我的只有痛苦的回忆,万恶的undefined。
五、跨 *** 作系统的安装文件封装。
要适应不同的 *** 作系统也是个很麻烦的事情,需要用agent提前获知 *** 作系统的发行分支,版本号。然后去找到对应的安装文件去执行。你不能保证一个分布式系统的集群中所有的节点都可以访问internet,更多的情况是这些节点都存在在一个安全的内网中。只有个别几个节点是可以访问外网的。所以,我势必要把所有的安装文件以及他们的依赖尽可能集中起来。我不确定安装 *** 作系统的lzo,yum或者apt-get会去下什么鬼东西,甚至无论是yum还是apt-get,里面都没有hadoop-lzo的库文件。所以,最好的办法是自己编译打包rpm和deb包。直接安装就好了,别去找repo下载什么。
这就是第五步工作,把需要的依赖的东西自己编译打包成rpm和deb。
deb包很好解决,但是rpm就没那么好办了,需要学习rpm的编译文件如何编写,这块是挺麻烦的,但是这玩意用好了还是挺不错的。现在我自制的安装包里面就已经包含了自己编译的lzo和snappy两种压缩库,以及hadoop-gpl-packaging的rpm和deb。下一个发布的easyhadoop将直接支持centos5,6,suse,以及ubuntu/debian的系统上安装hadoop。已经自带了lzo和snappy以及lzop和snzip。
六、把这些所有东西,整合到一个系统里面。
关联这些所有事情间的联系,整合到一个浏览器界面里面去。写一个分布式的管理脚本不难,写一个界面也不难,但是也许是我的水平不行,这两件事结合起来让他们协同工作还是有点难度的。对我来说,写界面的工作可能更难一点。
Cloudera可能是十来个人在写Manager的东西,ambari也是放到github和apachesvn上面,apache基金会的各种committer在写。easyhadoop没他们功能那么强大,一年来只有我一个人设计架构,功能,各种语言的编码,测试,发布。Fortheloveofgod,WhathaveIdone(英文部分请站在山顶仰天长啸)T_T。从前台到后台,到hadoop和生态系统以及他们的依赖软件的单独patch、编译打包。(系统yum或者apt-get的包不如自己打的好使。)
从时间上来看,全球第一款开源的hadoop部署管理系统应该还是属于ambari,2011年8月开始写的,2012年9月底进入apache的incubator。我是大概2012年8月开始写的easyhadoop,全球第一没赶上,估计国内第一个开源的hadoop管理系统还是可以排上的。
服务器 *** 作系统主要分为四大流派:WINDOWS、LINUX、NETWARE、UNIX。WINDOWS 服务器 *** 作系统
重要版本WINNT 40 Server、Win2000/AdvancedServer、Win2003/AdvancedServer,WINDOWS SERVER 2008,,Windows服务器 *** 作系统派应用,结合Net开发环境,为亲微软企业用户提供了良好的应用框架。
对于这类 *** 作系统相信用过电脑的人都不会陌生,这是全球最大的软件开发商--Microsoft(微软)公司开发的。微软公司的Windows系统不仅在个人 *** 作系统中占有绝对优势,它在网络 *** 作系统中也是具有非常强劲的力量。这类 *** 作系统配置在整个局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性能不是很高,所以微软的网络 *** 作系统一般只是用在中低档服务器中,高端服务器通常采用UNIX、LINUX或Solairs等非Windows *** 作系统。在局域网中,微软的网络 *** 作系统主要有:Windows NT 40 Serve、Windows 2000 Server/Advance Server,以及最新的Windows 2003 Server/ Advance Server等,工作站系统可以采用任一Windows或非Windows *** 作系统,包括个人 *** 作系统,如Windows 9x/ME/XP等。
在整个Windows网络 *** 作系统中最为成功的还是要算了Windows NT40这一套系统,它几乎成为中、小型企业局域网的标准 *** 作系统,一则是它继承了Windows家族统一的界面,使用户学习、使用起来更加容易。再则它的功能也的确比较强大,基本上能满足所有中、小型企业的各项网络求。虽然相比Windows 2000/2003 Server系统来说在功能上要逊色许多,但它对服务器的硬件配置要求要低许多,可以更大程度上满足许多中、小企业的PC服务器配置需求。
Linux 服务器 *** 作系统
LINUX *** 作系统虽然与UNIX *** 作系统类似,但是它不是UNIX *** 作系统的变种。Torvald从开始编写内核代码时就仿效UNIX,几乎所有UNIX的工具与外壳都可以运行在LINUX上。
这是一种新型的网络 *** 作系统,它的最大的特点就是源代码开放,可以免费得到许多应用程序。目前也有中文版本的Linux,如REDHAT(红帽子),红旗Linux等。在国内得到了用户充分的肯定,主要体现在它的安全性和稳定性方面,它与Unix有许多类似之处。但目前这类 *** 作系统目前使仍主要应用于中、高档服务器中。
总的来说,对特定计算环境的支持使得每一个 *** 作系统都有适合于自己的工作场合,这就是系统对特定计算环境的支持。例如,Windows 2000 Professional适用于桌面计算机,Linux目前较适用于小型的网络,而Windows 2000 Server和UNIX则适用于大型服务器应用程序。因此,对于不同的网络应用,需要我们有目的有选择合适地网络 *** 作系统。
NetWare 服务器 *** 作系统
在一些特定行业和事业单位中,NetWare优秀的批处理功能和安全、稳定的系统性能也有很大的生存空间。NetWare目前常用的版本主要有Novell的311、312、410、50等中英文版。
NetWare *** 作系统虽然远不如早几年那么风光,在局域网中早已失去了当年雄霸一方的气势,但是NetWare *** 作系统仍以对网络硬件的要求较低(工作站只要是286机就可以了)而受到一些设备比较落后的中、小型企业,特别是学校的青睐。人们一时还忘不了它在无盘工作站组建方面的优势,还忘不了它那毫无过份需求的大度。且因为它兼容DOS命令,其应用环境与DOS相似,经过长时间的发展,具有相当丰富的应用软件支持,技术完善、可靠。目前常用的版本有311、312和410 、V411,V50等中英文版本,NetWare服务器对无盘站和游戏的支持较好,常用于教学网和游戏厅。目前这种 *** 作系统有市场占有率呈下降趋势,这部分的市场主要被Windows NT/2000和Linux系统瓜分了。
Unix 服务器 *** 作系统
Unix服务器 *** 作系统由AT&T公司和SCO公司共同推出,主要支持大型的文件系统服务、数据服务等应用。目前市面上流传的主要有SCOSVR、BSDUnix、SUNSolaris、IBM-AIX、HP-UX 。
目前常用的UNIX系统版本主要有:Unix SUR40、HP-UX 110,SUN的Solaris80等。支持网络文件系统服务,提供数据等应用,功能强大,由AT&T和SCO公司推出。这种网络 *** 作系统稳定和安全性能非常好,但由于它多数是以命令方式来进行 *** 作的,不容易掌握,特别是初级用户。正因如此,小型局域网基本不使用Unix作为网络 *** 作系统,UNIX一般用于大型的网站或大型的企、事业局域网中。UNIX网络 *** 作系统历史悠久,其良好的网络管理功能已为广大网络 用户所接受,拥有丰富的应用软件的支持。目前UNIX网络 *** 作系统的版本 有:AT&T和SCO的UNIXSVR32、SVR40和SVR42等。UNIX本是针对小型机 主机环境开发的 *** 作系统,是一种集中式分时多用户体系结构。因其体系 结构不够合理,UNIX的市场占有率呈下降趋势。直接用护卫神主机管理系统,免费,不光支持Windows 2003 和 Windows 2008 ,还支持Windows 2012,安全性还很高,安装方便,直接点击鼠标就可以了。
虚拟主机架设,重要的是安全问题,以及可维护性,楼主可要重视。
二者的主要区别在于:
服务器:是回应运用软件的总站点,它提供软件的数据收集和处理。服务器通常情况是一台(或台)电脑构成,通过网络与应用软件(客户湍)连接。它硬件珥软件、网络的结合体。
数据库:是存贮信息数据的软件,它有多种。大型的MSSQL,放在服务器上,同时需要数据库软件提供应用 *** 作。小型的放在个体电脑上即可。
扩展资料:
数据库服务器由运行在局域网中的一台/多台计算机和数据库管理系统软件共同构成,数据库服务器为客户应用程序提供数据服务。
数据库服务器建立在数据库系统基础上,具有数据库系统的特性,且有其独特的—面。主要功能如下:
1、数据库管理功能,包括系统配置与管理、数据存取与更新管理、数据完整性管理和数据安全性管理;
2、数据库的查询和 *** 纵功能,该功能包括数据库检索和修改;
3、数据库维护功能,包括数据导入/导出管理,数据库结构维护、数据恢复功能和性能监测;
4、数据库并行运行,由于在同一时间,访问数据库的用户不止一个,所以数据库服务器必须支持并行运行机制,处理多个事件的同时发生。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)