首页 文章 精选 留言 我的

精选列表

搜索[伪集群],共10000篇文章
优秀的个人博客,低调大师

【Spark Summit East 2017】商品集群上的时间演化图处理

更多精彩内容参见云栖社区大数据频道https://yq.aliyun.com/big-data;此外,通过Maxcompute及其配套产品,低廉的大数据分析仅需几步,详情访问https://www.aliyun.com/product/odps。 本讲义出自Anand Iyer在Spark Summit East 2017上的演讲,主要介绍了构建于通用数据流框架上的时间演化图处理系统Tegra,并介绍了间隔拍摄(Timelapse)来呈现两个计算模型:用于对于进化图的多个快照进行计算的时序分析模型,以及能够有效更新结果的广义增量计算模型。

优秀的个人博客,低调大师

深入浅出分布式文件系统MogileFS集群

一,简介 MogileFS是一款开源的分布式文件存储系统,由LiveJournal旗下的Danga Interactive公司开发。Danga团队开发了包括 Memcached、MogileFS、Perlbal 等多个知名的开源项目。目前MogileFS的日益成熟使用此解决方法的公司越来越多,例如日本的又拍、digg、中国的豆瓣、1号店、大众点评、搜狗和安居客等,分别为所在的组织或公司管理着海量的图片。和传统网络存储不一样的是分布式文件系统是将数据分散存储至多台服务器上,而网络文件系统往往是将所有的数据存放在一起,存储服务器将成为系统可用性的瓶颈,不能满足大规模的存放所有数据需求。分布式文件系统采用可扩展的系统结构,利用多台存储设备分别存储,分担服务器负荷,利用位置服务器定位存储信息,因此不仅能够提升系统性能同时还易于扩展。 二、实现组件 MogileFS主要有三个部分组成: ①server端,包括两个部分,mogilefsd和mogstored两个应用程序,tracker是mogilefsd的实现方式,它通过数据库来保证元数据信息,比如站点的domian、class、host等,mogstored则为存储节点,默认监听7500端口,接受客服端的文件存储请求,在MogileFS安装完后,要运行mogadm工具将所有的store node注册到mogilefsd的数据库里,mogilefsd会对这些节点进行管理和监控。 ②utils工具集,主要是MogileFS的一些管理工具如mogadm等。 ③客服端API,MogileFS的API接口很多,常用的的时间方式有php,perl,python,java等,使用这些语言可进行编写客服端程序,实现文件的备份管理功能。 三、MogileFS的特性及原理 MogileFS特性: 1.应用层服务,不需要使用和兴组件 2.无单点故障,tracker为跟踪点,mogstored为存储节点,mysql为储存元数据节点,建议使用MySQL做高可用 3.传输中立,无特殊协议,可用通过nfs和http实现通信 4.简单的命名空间,没有目录,直接存储在存储空间上,通过域来实现,不共享任何数据 MogileFS工作原理:MogileFS主要由mogilefsd和mogstored两应用程序提供服务,tracker节点借助数据库保存各个节点文件的元数据信息,保存每个域中所哟的存储位置分布,用于实现快速定位同时监控各个节点,通知客户端存储区域位置并指挥storaged节点复制数据副本,进程名为mogilefsd监听与7001端口。storage节点为实际存放文件的地方,存储节点可以是http服务器,及其其他web服务,storage节点可自动维护键值的对应关系,storage节点前端可使用nginx进行反代,此时需要nginx-mogilefs-module-master模块,此服务监听与7501端口,进程名为mogstored.一个域中的键值是唯一的,一个mogilefs可以有多个域,域可以有多个存储设备,每个设备都有数据的容器,称之为domain.每个存储节点为一个主机(host),一个主机上可以有多个存储设备,每个设备有id号,用来定位。复制的最小单元为class,文件属性管理,定义文件存储在不同的设备上的份数。 四、MogileFS安装及其配置实现 安装说明:此实验可以仅适用两台服务进行,一台服务即当做server端,又当做存储节点同时还是mysql服务器,在每台服务器上部署tracker管理并监控节点。 #在两服务器上均安装如下rpm包 yum-yinstallper-IO-AIO#mogilefsd和mogstored依赖于此包,先解决依赖关系。 yum-yinstallMogileFS-Server-2.46-2.el6.noarch.rpm#安装sever端 yum-yinstallMogileFS-server-mogilefsd-2.46-2.el6.noarch.rpm#安装mogilefsd yum-yinstallMogileFS-Server-mogstored-2.46-2.rl6.noarch.rpm#安装mogstored 创建数据库及授权修改相应的配置文件 grantallprivilegesonmogdb.*to'moguser'@'127.0.0.1'identifiedby'pass'; grantallprivilegesonmogdb.*to'moguser'@'localhost'identifiedby'pass'; flushprivileges; #修改mogilefsd.conf配置文件 #Enabledaemonmodetoworkinbackgroundandusesyslog daemonize=1 #Wheretostorethepidofthedaemon(mustbethesameintheinitscript) pidfile=/var/run/mogilefsd/mogilefsd.pid #Databaseconnectioninformation db_dsn=DBI:mysql:mogdb:host=127.0.0.1#修改为上面授权的账号密码及其主机 db_user=moguser#修改为上面授权的账号密码及其主机 db_pass=pass#修改为上面授权的账号密码及其主机 #IP:PORTtolistenonformogilefsclientrequests listen=0.0.0.0:7001#其他参数可根据自己需求做相应的修改 #Optional,ifyoudon'tdefinetheportabove. conf_port=7001 #Numberofqueryworkerstostartbydefault. query_jobs=10 #Numberofdeleteworkerstostartbydefault. delete_jobs=1 #Numberofreplicateworkerstostartbydefault. replicate_jobs=5 #Numberofreaperworkerstostartbydefault. #(youdon'tusuallyneedtoincreasethis) reaper_jobs=1 #Numberoffsckworkerstostartbydefault. #(thesecancausealotofloadwhenfsck'ing) #fsck_jobs=1 #Minimumamountofspacetoreserveinmegabytes #default:100 #Considersettingthistobelargerthanthelargestfileyou #wouldnormallybeuploading. #min_free_space=200 #Numberofsecondstowaitforastoragenodetorespond. #default:2 #Keepthislow,sobusystoragenodesarequicklyignored. #node_timeout=2 #Numberofsecondstowaittoconnecttoastoragenode. #default:2 #Keepthislowsooverloadednodesgetskipped. #conn_timeout=2 #Allowreplicationtousethesecondarynodegetport, #ifyouhaveapacheorsimilarconfiguredforGET's #repl_use_get_port=1 #mogstored配置文件,一般无需修改,自行根据业务需求做决定 maxconns=10000 httplisten=0.0.0.0:7500 mgmtlisten=0.0.0.0:7501 docroot=/data/mogstored #将上诉配置考别一份至其他主机,并且启动服务,安装后默认在Init.d下有启动脚本 servicemogilefsdstart servicemogstoredstart [root@centos6mogilefs]#ss-tnl|grep*.7.*#默认mogilefsd监听7001,mogstored监听7501及其7501 LISTEN0128*:7500*:* LISTEN0128*:7501*:* LISTEN0128*:7001*:* [root@nodemogilefs]# #设置数据库,存储元数据 mogdbsetup--dbhost=127.0.0.1--dbpass=pass mogdbsetup--dbname=mogdb--dbuser=moguser--dbhost=127.0.0.1--dbpass=pass mogadmhostadd10.1.100.1--ip=10.1.100.1--port=7500--status=alive#添加host,storaged mogadmdomainaddfiles#添加域 mogadmdomainaddp_w_picpaths [root@centos6~]#mogstats--db_dsn="DBI:mysql:mogdb:host=localhost"--db_user="moguser"--db_pass="pass"--stats="all" Fetchingstatistics...(all) Statisticsfordevices...#表示此storage设备存活 devicehostfilesstatus ------------------------------------------------ dev110.1.100.12alive dev310.1.100.21alive dev410.1.100.21alive ------------------------------------------------ Statisticsforfileids... Maxfileid:9 Statisticsforfiles...#添加的域显示结果 domainclassfilessize(m)fullsize(m) ----------------------------------------------------------------- filesdefault100 p_w_picpathsdefault100 ----------------------------------------------------------------- Statisticsforreplication...#默认的类示结果 domainclassdevcountfiles --------------------------------------------------- filesdefault21 p_w_picpathsdefault21 --------------------------------------------------- Statisticsforreplicationqueue... statuscount -------------------------------- -------------------------------- Statisticsfordeletequeue... statuscount -------------------------------- -------------------------------- Statisticsforgeneralqueues... queuestatuscount ----------------------------------------------- ----------------------------------------------- done [root@node~]# [root@node~]#mogupload--trackers=10.1.100.1--domain=files--key='/issue'--file='/etc/issue'#上传文件至files域内,指明可Key和上传的文件目录 [root@node~]#moglistkeys--trackers=10.1.100.1--domain=files#显示域内文件 /fstab.txt /issue [root@node~]#mogfetch--trackers=10.1.100.1--domain=files--key='/issue'--file='/tmp/issue'#下载域内文件至某目录 [root@node~]#ll/tmp/issue -rw-r--r--.1rootroot4711月2516:48/tmp/issue -bash:ogfileinfo:commandnotfound [root@node2~]#mogfileinfo--tracker=10.1.100.1--domain=files--key='/fstab.txt' -file:/fstab.txt class:default devcount:2 domain:files fid:5 key:/fstab.txt length:1115 -http://10.1.100.2:7500/dev4/0/000/000/0000000005.fid#可通过此URL访问到相应的资源 -http://10.1.100.1:7500/dev1/0/000/000/0000000005.fid#可通过此URL访问到相应的资源 [root@node2~]# 实验结果图示: 五、实战nginx前端反代mogfilefs及负载均衡 要求说明:在前期那配置nginx做反代将用户的请求调度至后端的MogileFS,此实验依赖于nginx-mogilefs-module模块,需在编译时加上此模块。 #实战配置如下所示: #usernobody; worker_processes1; #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; #pidlogs/nginx.pid; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; #log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' #'$status$body_bytes_sent"$http_referer"' #'"$http_user_agent""$http_x_forwarded_for"'; #access_loglogs/access.logmain; sendfileon; #tcp_nopushon; #keepalive_timeout0; keepalive_timeout65; #gzipon; # upstreammogtrackers{#定义一个upstream组 server10.1.100.1:7001; server10.1.100.2:7001; } server{ listen80; server_namelocalhost; #charsetkoi8-r; #access_loglogs/host.access.logmain; location/{ roothtml; indexindex.htmlindex.htm; } location/p_w_picpaths/{ mogilefs_trackermogtrackers;#在此调用此mogtrackers即可实现反代至mogilefs后端 mogilefs_domainp_w_picpaths;#域为p_w_picpaths域 mogilefs_methodsget;#请求的方法为get mogilefs_pass{ proxy_pass$mogilefs_path; proxy_hide_headerContent-Type; proxy_bufferingoff; } expires1h; } #error_page404/404.html; #redirectservererrorpagestothestaticpage/50x.html # error_page500502503504/50x.html; location=/50x.html{ roothtml; } #proxythePHPscriptstoApachelisteningon127.0.0.1:80 # #location~\.php${ #proxy_passhttp://127.0.0.1; #} #passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000 # #location~\.php${ #roothtml; #fastcgi_pass127.0.0.1:9000; #fastcgi_indexindex.php; #fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name; #includefastcgi_params; #} #denyaccessto.htaccessfiles,ifApache'sdocumentroot #concurswithnginx'sone # #location~/\.ht{ #denyall; #} } #anothervirtualhostusingmixofIP-,name-,andport-basedconfiguration # #server{ #listen8000; #listensomename:8080; #server_namesomenamealiasanother.alias; #location/{ #roothtml; #indexindex.htmlindex.htm; #} #} #HTTPSserver # #server{ #listen443ssl; #server_namelocalhost; #ssl_certificatecert.pem; #ssl_certificate_keycert.key; #ssl_session_cacheshared:SSL:1m; #ssl_session_timeout5m; #ssl_ciphersHIGH:!aNULL:!MD5; #ssl_prefer_server_cipherson; #location/{ #roothtml; #indexindex.htmlindex.htm; #} #} } 图示:此时可通过http://uri/p_w_picpaths/aqua.jpg进行访问,而不是原来很长的路径名进行访问。 总结:在大型站点中,mogilefs的重要性不言而喻,尤其是图片存储量很大的网站例如:某宝,某东等,此配置过程中,mysql易于成为单点故障,所以可将其做主从复制,同时结合MySQL半同步复制,可降低数据的丢失风险。在配置nginx做反向代理时,大部分步骤和其他反代类是不同的是,需将模块编译进nginx中才能使用此模块功能。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册