精华内容
下载资源
问答
  • 分布式系统设计

    热门讨论 2007-07-12 15:59:47
    概述和读者这本书尝试着提出了分布式系统领域的一些重要问题,包括基本概念、问题和一些可能的解决方案,可用于研究生的分布式系统设计课程,也可用于高年级本科生和研究生的高级操作系统课程。它向学生介绍了分布式...
  • 经过多年的发展,Hadoop生态系统不断完善和成熟,目前已经包括了多个子项目,除了核心的HDFS和MapReduce以外,Hadoop生态系统包括要ZoopKer、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能组件。...

    经过多年的发展,Hadoop生态系统不断完善和成熟,目前已经包括了多个子项目,除了核心的HDFS和MapReduce以外,Hadoop生态系统还包括要ZoopKer、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能组件。

    HDFS

    Hadoop分布式文件系统是Hadoop项目的两大核心之一,是针对谷歌文件系统(GoogleFileSystem,GFS)的开源实现。HDFS具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。HDFS在设计之初就是要运行在廉价的大型服务器集群上,因此在设计上就把硬件故障作为一种常态来考虑,可以保证在部分硬件发生故障的情况下仍然能够保证文件系统的整体可用性和可靠性。

    HDFS放宽了一部分POSIX约束,从而实现以流的形式访问文件系统中的数据。HDFS在访问应用程序数据时,可以具有很高的吞吐率,因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。

    HBase

    HBase是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。HBase是针对谷歌BigTable的开源实现,二者都采用了相同的数据模型,具有强大的非结构化数据存储能力。HBase与传统关系数据库的一个重要区别是,前者釆用基于列的存储,而后者采用基于行的存储。HBase具有良好的横向扩展能力,可以通过不断增加廉价的商用服务器来增加存储能力。

    MapReduce

    HadoopMapReduce是针对谷歌MapReduce的开源实现。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,它将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数一一Map和Reduce上,并且允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,并将其运行于廉价计算机集群上,完成海量数据的处理。通俗地说MapReduce的核心思想就是“分而治之”。

    Hive

    Hive是—个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。Hive的学习门槛比较低,因为它提供了类似于关系数据库SQL语言的查询语言——HiveQL,可以通过HiveQL语句快速实现简单的MapReduce统计,Hive自身可以将HiveQL语句转换为MapReduce任务进行运行,而不必开发专门的MapReduce应用,因而十分适合数据仓库的统计分析。

    Pig

    Pig是一种数据流语言和运行环境,适合于使用HadooP和MapReduce平台来查询大型半结构化数据集。虽然MapReduce应用程序的编写不是十分复杂,但毕竟也是需要一定的开发经验的。Pig的出现大大简化了Hadoop常见的工作任务,它在MapReduce的基础上创建了更简单的过程语言抽象,为Hadoop应用程序提供了一种更加接近结构化査询语言的接口。

    Mahout

    Mahout是Apache软件基金会旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序:Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中

    Zookeeper

    Zookeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。

    Flume

    Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方,用于数据收集;同时,Flume提供对数据进行简单处理并写到各种数据接受方的能力。

    Sqoop

    Sqoop是SQL-to-Hadoop的缩写,主要用来在Hadoop和关系数据库之间交换数据的互操作性。通过Sqoop可以方便地将数据从MySQL、Oracle.PostgreSQL等关系数据库中导人Hadoop(可以导人HDFS、HBase或Hive),或者将数据从Hadoop导出到关系数据库,使得传统关系数据库和Hadoop之间的数据迁移变得非常方便。Sqoop主要通过JDBC(JavaDataBaseConnectivity湘关系数据库进行交互,理论上,支持JDBC的关系数据库都可以使Sqoop和Hadoop进行数据交互。Sqoop是专门为大数据集设计的,支持增量更新,可以将新记录添加到最近一次导出的数据源上,或者指定上次修改的时间戳。

    Ambari

    ApacheAmbari是一种基于Web的工具,支持ApacheHadoop集群的安装、部署、配置和管理。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoop等。

    人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    Hadoop、Spark和Storm三者技术相对比,有什么关系?
    http://www.duozhishidai.com/article-15089-1.html
    hadoop是什么,主要有哪些不同版本?
    http://www.duozhishidai.com/article-12346-1.html
    Spark 和 Hadoop之间,主要有什么联系
    http://www.duozhishidai.com/article-9781-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    展开全文
  • feed流推荐系统设计

    万次阅读 2018-10-10 18:31:44
    本文主要分享个人经历中关于推荐系统的应用理解,包括整体推荐系统架构设计、推荐后台服务设计。 推荐系统架构设计 1.0 推荐系统根据数据使用划分为在线和离线两部分。APP服务日志通过flume采集,然后传给离线和在线...

    本文主要分享个人经历中关于推荐系统的应用理解,包括整体推荐系统架构设计、推荐后台服务设计。

    推荐系统架构设计 1.0

    推荐系统根据数据使用划分为在线和离线两部分。APP服务日志通过flume采集,然后传给离线和在线业务使用。离线数据主要用来离线训练模型,如gbdt、lr、xgboost等,在线数据特征用来让模型进行在线预测。如下图所示:

    在这里插入图片描述

    • 在线部分

    实时数据从kafka获取到后直接进入spark streaming(这里也可以用其他实时计算技术,如storm,flink)进行处理,计算出实时特征存入redis,供线上模型预测服务使用。

    • 离线部分

    离线部分数据主要分为两部分,一部分是mysql定时拉取过去,另一部分是从flume实时拉数据到hive数据仓库。mysql主要存储用户相关变动频率小的属性特征,flume采集计算的主要是帖子(feed)相关变化频率大的特征。

    推荐系统后台设计 1.0

    推荐主要方法分为召回和排序过程,召回过程是粗步选取数据,排序过程是对筛选后的数据精确排序,结果返回给用户。

    推荐后台架构图

    在这里插入图片描述

    过程如下:
    1. 用户请求接口,传入uid作为参数。
    2. 先看用户uid对应在缓存中有没有推荐结果,如果有则直接获取返回,如果没有则重新获取。
    3. 根据用户uid,去不同召回源获取对应候选帖子。
    4. 选取的帖子需要进行去重,过滤状态异常帖子。
    5. 对不同召回源获取的帖子先合并,然后随机取1000条。
    6. 排序环节,对1000条帖子进行打分排序,取top 200条。
    7. 根据用户历史推荐信息,对获取到的200条数据进行过滤,保证推荐结果不重复。
    8. 对过滤结果取25条返回用户,剩下帖子放在缓存,等待下次请求使用。

    备注: 上面的帖子取的条数都是根据实际经验选择,具体可以调整。

    (完)

    关注公众号我们可以更方便沟通交流:水木之椿

    展开全文
  • 系统设计总结

    千次阅读 2010-07-20 15:32:00
    系统设计各个阶段的主要交付件是OR/DR/DS,这些交付件的含义和联系已经在另外一篇博文中讲过了。这里主要讲一下UML技术在系统设计中的应用。 以前UML的应用大多数是在单机的环境下作为画图工具使用,实际...

    系统设计各个阶段的主要交付件是OR/DR/DS,这些交付件的含义和联系已经在另外一篇博文中讲过了。这里主要讲一下UML技术在系统设计中的应用。

    以前UML的应用大多数是在单机的环境下作为画图工具使用,实际应用中全程建模很少。EA(Enterprise Architect)是一个可扩展到团队协作环境的UML工具,或者说是一个IDE吧!而且它也支持二次开发。部门的牛人基于EA开发了一个联机的系统设计平台,确实是这么多年我见过的系统设计方面的一个突出的实践。
    相比于单机版的UML应用。EA团队开发环境是一个联机的企业应用,有客户端软件(EA)、有后台数据库、有配置库、系统账号和权限控制。所有的系统设计人员拥有自己的系统账号,通过自己的PC登陆到系统中,进行画图等操作。所有的交付并不保存在本地PC上,而是保存在后台数据库中。这样,一个团队的所有成员能够对一个大型系统进行协同的系统设计,避免了交付不能集中管理、互相冲突的缺陷。EA还支持插件式的开发。PS:EA联机设计系统的具体开发和部署方法还需要单独研究。

    下面将一下OR/DR/DS在UML系统设计平台上的表现形式。
    OR和DR都是Requirement,也就是需求,因此在系统中采用Use Case来表示。为了区分各种类型的需求,平台的设计者基于Use Case扩展了多种子类型Use Case。对于增量开发的新软件版本,可能部分需求是基于又有版本的修改,因此设计了3种类型的OR:新增OR、修改OR、扩展OR。在一个增量开发版本系统设计开始之前,一个重要的工作就是将旧版本软件的所有功能通过Use Case的方式全部录入系统中。录入新版本需求时,需要同时体现这些需求和旧版本需求的关系。这个关系通过用例之间的依赖关系来表示(分别是修改、扩展)。

    Charter-TR1期间,系统设计人员根据OR分解出DR。DR本质上也是一个个的需求,因此也通过Use Case来表示,并在Diagram中体现出和OR的依赖关系。平台设计者开发了插件,基于这个插件录入的DR的详细信息中,会有现成的模板。系统设计人员根据模板的提示填入每个设计需求的详细信息,包括详细描述、输入参数、输出参数和其他质量属性等。
    OR和DR完全是需求层面的信息,和系统架构关系不大。当DR分解为DS的时候,要将每个需求具体分解到系统中的各个子模块、子系统,因此在此之前,需要在设计平台上建立系统架构的视图。
    UML的4+1视图是开发视图、进程视图、部署视图、逻辑视图,外加场景视图。上面讲的基于OR、DR的用例实际上就是场景视图。在部门设计的系统设计平台上,提供了另外三个视图:开发视图、进程视图和部署视图。
    开发视图是基于子系统和组件来描述的,也可以理解为一般意义上的“架构图”。子系统的定义是可以独立运行的可执行程序,组件的定义是不能独立运行,但可以交付给各个子系统,并被子系统调用运行的软件包。开发视图从整个大型软件的角度描述系统中的所有子系统和组件,以及它们之间的依赖关系。需要强调的是,开发视图不描述每个子系统的内部结构。
    进程视图是基于编译后部署到运行环境中的每个交付件来描述的,这些交付件包括:可执行文件、DLL、Jar包、配置文件等。也就是说,软件安装后部署在运行环境中的主要文件都需要在系统设计平台上表示出来,包括文件目录层次。
    开发视图和进程视图之间的关系是从逻辑到物理实现的一个关系。因此也存在1对1或1对多的对应关系。通过Diagram可以体现出这两者的依赖关系。例如一个子系统包含了1个exe、2个dll、1个jar包。
    部署视图体现了每个子系统部署到运行环境中每个硬件节点的情况,相对简单。
    DR分解为DS的过程就是从实现的角度将一个需求分配到一个或者多个子系统(组件)。为了描述这个需求的具体实现,需要通过时序图来描述。时序图中的每个生命线实际上就是开发视图中的每个子系统或组件。举例说,一个DR需要通过3个时序图来表达,这3个时序图一共涉及到了4个子系统,因此可以说这个DR一共分解出了4个DS。这4个子系统的每一次交互,都实质上代表着两个子系统之间的一个接口。系统设计平台上开发了相应的插件。当系统设计人员绘制时序图生命线交互关系的时候,平台会自动弹出信息框,提示用户输入接口的详细信息,包括形式(API、文件、进程间调用……),输入输出参数等。
    通过以上的这些视图,基本上表达清楚了系统设计阶段所需要关注的需求和架构信息。系统设计平台插件还支持信息导出功能,可以从数据库中导出OR/DR/DS列表、依赖关系、需求分配矩阵。这些信息既可以导出到Excel表格中,也可以导出到设计好的word文档模板中。当然,不可能所有的信息都能在EA平台上描述清楚。有一些信息(主要是需求和设计的质量属性)需要直接在word文档中进行写作。

    以上就是一个基于EA平台的团队协同系统设计平台,这应该是企业级应用系统设计的一个方向,以后需要进一步学习并寻找合适的机会进行应用。

    展开全文
  • 订单管理系统设计思路

    千次阅读 2016-11-04 21:30:21
    2.概要设计主页面采用win10风格,结合Bootstrap,主要功能包括订单查询,产品管理,新建订单功能。3.数据库设计4.数据库创建CREATE DATABASE 'shopmanger';USE DATABASE 'shopmanger'; CREATE TABLE `shopdetail` ( `...

    1.需求分析

    订单管理系统,能保存订单和打印订单。

    2.概要设计

    主页面采用win10风格,结合Bootstrap,主要功能包括订单查询,产品管理,新建订单功能。

    3.数据库设计

    订单管理

    4.数据库创建

    CREATE DATABASE 'shopmanger';
    
    USE DATABASE 'shopmanger';
    CREATE TABLE `shopdetail` (
    `ShopDetailID` varchar(255) NOT NULL,
    `ShopMainID` varchar(255) DEFAULT NULL,
    `Name` varchar(255) NOT NULL,
    `Price` double DEFAULT NULL,
    `Number` double DEFAULT NULL,
    PRIMARY KEY (`ShopDetailID`)
    ) ;
    CREATE TABLE `shopmain` (
    `ShopMainID` varchar(255) NOT NULL,
    `Time` varchar(255) DEFAULT NULL,
    `Sum` double(255,0) DEFAULT NULL,
    `CustomName` varchar(255) DEFAULT NULL,
    `CustomAdress` varchar(255) DEFAULT NULL,
    `CustomPhone` varchar(255) DEFAULT NULL,
    `Addition` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`ShopMainID`)
    ) ;
    CREATE TABLE `things` (
    `ThingsID` varchar(255) NOT NULL,
    `ThingsModer` varchar(255) DEFAULT NULL,
    `ThingsName` varchar(255) DEFAULT NULL,
    `ThingsPrice` double DEFAULT NULL,
    PRIMARY KEY (`ThingsID`)
    ) ;
    展开全文
  • 系统性能设计

    千次阅读 2019-05-24 10:56:18
    zhiding性能设计是系统设计过程的一个必备环节,在进行系统架构设计时,性能设计也非常重要。架构设计实际上是一种平衡设计,需要设计师在各种功能性需求和非功能性需求(性能需求)上做妥协选择。 xit 系统调整 ...
  • 系统通过微信开发者工具开发,主要基于vue语法及ES6实现,使用的技术有MySQL数据库、mybatis驱动框架以及tomcat服务端部署,用到的集成开发工具主要是IDEA和jdk1.8。 该微信小程序公交查询系统分为前台和后
  • 基于51单片机的交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    设计为基于51单片机交通灯系统设计,采用模块化、层次化设计。运用单片机AT89C51进行数据的分析和处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测...
  • 系统设计六大原则

    千次阅读 2019-05-30 23:08:33
    i 接口隔离原则,实现最小接口,使接口类不包括多余的方法,子类不用实现用不上的方法 (interface ) D 依赖倒置原则 (dependency reverse) 至于以上六个原则如何在实际中应用,后面我也将详细讲解。下面将会...
  • STM32最小系统设计原理及其相关应用

    千次阅读 多人点赞 2018-10-18 11:09:54
    今天就一起来看看那些大佬们制作的STM32最小系统设计原理及其相关应用吧! 1、STM32最小系统电路原理图+PCB源文件   共享一个自己画的STM32最小系统,主芯片是STM32F103RBT6(STM32F103RB...
  • 超市收银系统设计思路

    万次阅读 2015-10-13 07:27:41
    超市收银系统设计分析 一、系统整体架构 图1 从图1可以看出,系统框架很清晰,用户登录,根据用户权限的不同,对应不同的操作方法,操作对象为商品。 但本系统要求使用C/S框架结构来设计。 C/S框架介绍: C/...
  • 系统总体结构设计

    千次阅读 2020-02-16 04:25:08
    总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。 一、系统设计的任务 1. 系统设计的概念 系统...
  • 好了,废话不多说,本次发文主要还是介绍基于Java的学校试卷生成系统设计与实现,该系统主要分为5个管理模块,分别为试卷生成管理、章节管理、题库管理、基本信息管理、系统管理。其中,试卷生成管理模块包括试卷...
  • 4.2系统主要功能模块设计: (1)基本信息模块:是管理员对学生信息进行添加操作。通过本界面管理员可以对学生信息进行相应的修改,包括学号、姓名、出生日期等。可以通过该界面输入学生姓名实现查询该学生的所有...
  • 电子商务网站的系统设计

    千次阅读 2006-04-15 18:03:00
    电子商务网站的系统设计 作者:魏茜茹 来源:希赛网 http://www.csai.cn 2006年4月11日
  • 系统设计中的非功能性需求

    万次阅读 2018-01-30 22:19:55
    当程序员的时候更多的注意功能性需求,但是作为一个架构师和程序员的主要区别之一就是要要满足系统的非功能性需求,包括如下: 1、高可扩展性 App或者网站的访问量弹性很大,刚开始的时候访问量可能比较小,随着...
  • 嵌入式系统开发设计---嵌入式系统开发设计

    万次阅读 多人点赞 2018-09-20 07:42:01
    嵌入式系统设计主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上。这里,系统架构既包括软件系统架构也包括硬件系统架构。一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍...
  • 基于JAVA SSM 学生在线考试系统(源码+sql《精品毕设》)主要实现:用户管理、角色管理、学科管理、考生管理、试题管理、考试管理、试卷管理、成绩统计、以及学生端查看考试以及我的考试和修改密码等
  • 基于Spring Boot在线学习系统设计与实现

    万次阅读 多人点赞 2019-04-05 15:34:53
    Spring+SpringMVC+MyBatis+Bootstrap+Vue开发... 本课题的主要内容是开发基于Java EE的在线学习平台,使用MVC经典开发模式、Java EE的框架 SSM(Spring+SpringMVC+Mybatis)等相关技术开发网站系统。 使用的开发...
  • 硬件设计部分主要包括:单片机、A/D转换器、时钟芯片、LCD、外围扩展数据RAM等芯片的选择;硬件主电路设计、数据采集、模数转换电路设计、液晶显示电路设计、外围扩充存储器接口电路、时钟电路、复位电路、键盘接口...
  • 存储系统设计实验(logisim)计算机组成实验

    万次阅读 多人点赞 2020-05-14 15:52:31
    理解存储系统进行位扩展、字扩展的基本原理,能利用相关原理解决实验中汉字字库的存储扩展问题,并能够使用正确的字库数据填充。 我们可以做出下图: 第2关:MIPS寄存器文件设计 了解 MIPS 寄存器文件基本概念,...
  • 系统架构设计方法论

    千次阅读 2016-11-07 20:29:02
    预备架构阶段主要是通过系统的理解需求和挖掘潜在需求以此建立需求大局观并根据架构驱动因素及五维关注点来确定架构设计方向和蓝图。 1.1 需求结构化 执行要点:根据重点功能、质量属性、约束条件、五维关注点贯穿...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 989,501
精华内容 395,800
关键字:

系统设计主要包括