首页 文章 精选 留言 我的

精选列表

搜索[开源],共10011篇文章
优秀的个人博客,低调大师

FFMPEG相关开源项目

1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidFFmpeg2.ijkplayer - Android/iOS 基于FFMPEG库的播放器http://git.oschina.net/bbcallen/ijkplayergit下载地址: http://git.oschina.net/bbcallen/ijkplayer.git git@git.oschina.net:bbcallen/ijkplayer.git https://github.com/bbcallen/ijkplayer 3. KxMovie - IOS平台基于FFMPEG播放器https://github.com/kolyvan/kxmovie4.Vitamio - Android/IOS平台上的多媒体框架,带有硬件加速解码和渲染.https://github.com/yixia/VitamioBundle5.YUV2RGB - 顾名思义,YUV转RGB http://wss.co.uk/pinknoise/yuv2rgb/ 6.TSDemux - 将TS流解码为PES或ES 下载这个源码需要FQ。 http://code.google.com/p/tsdemuxer/ 7.MPlayer - 跨平台的视频播放器,可在Linux和其他类Unix系统、Windows及Mac OS X系统使用 http://www.mplayerhq.hu/design7/dload.html 8.VLC - 跨平台的视频播放器。现在也有安卓版本。也可以作为流媒体服务器。 http://www.videolan.org/vlc/index.html 9.FFDshow - 免费的编解码软件,基于windows平台。原因就是directshow就是微软开发的,只能用于windows平台。 http://sourceforge.NET/projects/ffdshow-tryout/ 这是笔者目前接触到的,等以后遇到了,再整理。

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

apache开源项目--Ignite

Apache Ignite 内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台,用于大规模的数据集处理。Ignite 为应用和不同的数据源之间提供一个高性能、分布式内存中数据组织管理的框架。 集群计算特性: 动态集群 Fork-Join & MapReduce 处理 分布式闭包执行 负载均衡和容错 分布式消息和事件 线性可伸缩 内存缓存和数据网格关键特性: 分布式内存中缓存 优雅的伸缩方案 高性能 分布式内存中事务支持 分布式内存队列和其他数据结构 Web 会话集群 Hibernate L2 缓存集成 分布式 SQL 联合查询 内存数据流: 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/5103006.html,如需转载请自行联系原作者

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

apache开源项目 -- tez

为了更高效地运行存在依赖关系的作业(比如Pig和Hive产生的MapReduce作业),减少磁盘和网络IO,Hortonworks开发了DAG计 算框架Tez。Tez是从MapReduce计算框架演化而来的通用DAG计算框架,可作为MapReduceR/Pig/Hive等系统的底层数据处理 引擎,它天生融入Hadoop 2.0中的资源管理平台YARN,且由Hadoop 2.0核心人员精心打造,势必将会成为计算框架中的后起之秀。本文将重点介绍Tez的最新进展。 在阅读本文之前,读者可先阅读我之前写的三篇文章了解Tez有关背景、设计原理等: (1)浅谈Apache Tez中的优化技术 (2)Apache Tez:一个运行在YARN之上支持DAG作业的计算框架 (3)Tez:运行在YARN上的DAG计算框架 总结起来,Tez有以下几个特色: (1) 丰富的数据流(dataflow,NOT Streaming!)编程接口; (2) 扩展性良好的“Input-Processor-Output”运行模型; (3) 简化数据部署(充分利用了YARN框架,Tez本身仅是一个客户端编程库,无需事先部署相关服务) (4) 性能优于MapReduce (5) 优化的资源管理(直接运行在资源管理系统YARN之上) (6) 动态生成物理数据流(dataflow) 声明:本文大部分内容源自Apache Tez官方主页中的说明文档,有兴趣的读者可进入http://tez.incubator.apache.org/了解更多内容,你也可以根据文档说明安装Tez(需要apache最新版本2.1.0-beta或者3.0.0,CDH暂不支持,版本太老),进而对它有一个更加直观的理解。 1. 优化举例 为了方便大家理解Tez的优化效果,接下来给出两个例子 予以说明。 (1)MRR*应用 比如以下Hive SQL会翻译成两个MR作业,而采用Tez则生成一个DAG作业,可大大减少磁盘IO: SELECT DeptName, COUNT(*) as c FROM EmployeeTable GROUP BY DeptName ORDER BY c; (2)Join应用 比如以下Hive SQL会翻译成四个MR作业,而采用Tez则生成一个DAG作业,可大大减少磁盘IO: SELECT a.state, COUNT(*), AVERAGE(c.price) FROM a JOIN b ON(a.id = b.id) JOIN c ON(a.itemId = c.itemId) GROUP BY a.state 2.术语介绍 可类比数据库中的概念理解这些术语,比如数据库中的逻辑计划和物理计划:Job Vertex、Job Edge和Static Plan属于逻辑计划概念;Vertex、Edge和Dynamic Plan属于物理计划概念。 (1)Job Vertex:作业规划中的一个阶段(Stage); (2) Job Edge:两个不同Job Vertex之间的逻辑关联; (3) Vertex: 运行时生成的物化阶段,由若干个可以执行的Task构成; (4) Edge: Task之间数据移动方式; (5) Task: 能够完成计算任务的线程,实际运行在YARN Container中; (6) Task cardinality: 任务基数,即Vertex产生的Task数目 (7) Static plan: 作业提交时确定的逻辑执行计划 (8) Dynamic plan:在ApplicationMaster执行时产生的物理执行计划 3. Tez中的通信类型 (1)1对于1 第一阶段中的任务按照1:1的映射关系将数据传递给下一个阶段中的任务,典型应用是hash join,如下图所示: (2) 1对于N 第一阶段中的每个任务会产生N份数据(N是下一个阶段中的任务数目),每份数据由下一个阶段的一个任务读取,这类似与MapReduce的Shuffle阶段,具体有两种实现方式: 方式1:每个任务产生的N份数据放到N个文件中,供下一个阶段的任务直接获取,这种方式可能产生过多的文件,可能难以扩展到上千个任务的场景; 方式2:每个任务产生的N份数据放放到一个文件中,并增加一个索引文件记录每份数据中偏移量,这种方式的扩展性非常好,Hadoop MapReduce正是采用了这种实现(设计之初,Hadoop MapReduce层采用方式1中的方案)。 4. Tez新引入的优化机制 (1) 动态确定任务基数 DAG中每个Vertex需启动一定数目的任务并行处理对应的数据,Tez可根据用户设置的策略动态确定每个Vertex需启动的任务数,比如根据数据量、最大并发数等。 (2)解决数据倾斜问题 数据倾斜是分布式计算中影响数据处理效率的最大顽疾之一,很多工作在这方面开展但一直没有非常好的解决方案。目前看来,比较有效的方案是在应用程序层解决,即用户根据实际数据特点编写最有效的应用程序,尽可能避免数据倾斜问题。 数据倾斜的一种典型场景是大批量的数据的key值是相同的,这使得按key划分数据后,大量数据落到一个任务上,从而使得该任务成为“拖后腿”任 务,甚至导致运行失败。为了解决该问题,在数据引擎层面,Tez可根据每个任务的处理数据量调整占用的资源,对于那些处理数据量大的任务,可多分配一些资 源。 5. Tez未来发展 在将来,Tez将增加以下几个特性: (1) 任务抢占,即可通过资源抢占的方式,让优先级更高的任务优先运行; (2) 任务执行断点检查,通过对任务执行过程记录断点,可在任务失败时从断点恢复运行,以避免任务重算(这个功能难度很大); (3) ApplicationMaster执行断点检查,这个可借鉴MapReduce ApplicationMaster实现,就目前YARN的架构设计而言,只能做到(ApplicationMaster失败后)已经完成的任务不重新计 算,对于正在运行的任务需重新计算; (4) 应用程序的Container重用,同一个应用程序的多个任务可重用一个Container中,该功能是一个非常重要的feature,很多YARN上框架都在做! (5) 不同应用程序的Container重用,即不同应用程序的多个任务可重用一个Container,这个功能难度较大! 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/5105262.html,如需转载请自行联系原作者

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

apache开源项目 -- tajo

一、体系架构 Tajo采用了Master-Worker架构(下图虚线框目前还在计划中),Master-Worker-Client之间的RPC通信是使用Protocol buffer + Netty来实现的,具体如下: (1)TajoMaster:为客户端提供查询服务和管理各个QueryMaster(也可以说是 Tajo Worker),解析Query并协调QueryMaster,目前还内置了catalog服务器。大致可以分为四个组件:Cluster Manager、Catalog、Global Query Engine以及History Manager。 Catalog的工作是管理诸如tables、schemas、 partitions,functions,indices及statistics等各种metadata。这些元数据信息一般都是Global Query Engine来操作,为了低延迟考虑跟hive一样都是存在RDBMS(目前支持Derby和MySQL),默认是保存在内置的Derby数据库中。后面 可能会考虑使用hive的HCatalog来完成这块功能。 Cluster Manager主要是管理集群中各个节点之间的通信信息及资源(内存/CPU/Disk)信息,每个节点定期发送资源信息,交给Master来管理将用于查询计划的分配等,这一块是依赖Yarn的ResourceManager来管理。 Global Query Engine当一条query提交到master,GQE就会依据表的metadata以及集群资源信息(依赖于Catalog和Cluster Manager两个模块提供的信息)生成一个全局的查询计划。对于一个分布式执行环境,全局的查询计划将会被分片,划分成各个查询单元分配给各个worker去执行,在这些worker执行过程中GQE会监控每一个查询单元的运行状况并实时去优化和容错。在这一块目前的语法解析是用ANTLR 4生成AST(抽象语法树),这个以后可能会使用Tenzing的SQL Query Engine。 History Manager收集各个query job状态信息包括查询语句,划分的查询单元等,通过web ui(默认端口号:26080)可以查询。 (2)QueryMaster:负责一个query的解析、优化与执行,它参与多个task runner worker协同工作,完成一个query的计算。每个Query Master可以生成多个TaskRunner来执行master的查询单元,这些task runner都是由yarn中的NodeManager来管理。 (3)Tajo Worker每个节点就是一个worker角色,每个worker包含存储模块管理和一个Local模式的Query Engine,这个local模式的Query Engine就是来接受master分配的查询单元。每个查询单元包含一个逻辑查询计划和一个分片(输入数据关系的信息块),在执行过程中worker定期向master汇报查询进度和资源信息,master可以很灵活地面对非异常的错误。 图 1 Tajo体系架构 如图1所示,Tajo采用传统数据库技术开发了SQL解析器,包括SQL解析、生成查询计划、优化查询计划、执行查询技术等。但与传统的数据库技术 不同,Tajo最终执行查询技术时借鉴了MapReduce的设计思想,它将查询计划转化为一系列任务,这样,执行查询计划实际上就是执行这些任务,而每 一个任务就是一个计算单位,同时Map Task和Reduce Task一样。 二、查询请求的处理 Tajo定义了一套类SQL的查询语言(Tajo Query Language TQL),支持大多数的DML,如:select, from, where, join, group-by, order-by, union, and cube。TQL支持可以用两种变量来表示Scala value(应该是一种内存对象)和Temporary table, 可以为它们赋值。这种特性,可以让用户很容易地处理复杂查询中间结果是生成Scala value还是临时表。处理流程和Tenzing都差不多,都是先生成查询计划,然后再分到各个worker上去执行,都省去了hive在map之后对生 成的数据进行shuffle和sort的过程,而且对无需写文件的中间结果支持直接放内存中交给下一个流程去处理,这应该就是它性能高出hive的主要优 化吧。 查询计划 将一个查询语句解析成若干个底层的物理执行计划有以下几个步骤,如下图所示。首先是Global Query Engine将语句转化成一个抽象语法树AST(使用Antlr 4实现)并且编译成一个逻辑计划。根据catalog中的信息,查询优化器使用基于cost的算法(贪婪方式)处理join找到一种最优的逻辑计划等同于 原始的查询计划,同时使用基于规则的算法处理其他方式,最终会生成一种优化后的全局查询计划。下一步就是将全局查询计划划分成若干个查询单元提交到 worker上去执行。 图 2查询转化流程图 执行查询 针对执行过程中的输入输出,Tajo提供了一系列的Scanners和Appenders。Scanner负责从HDFS或者本地读取数据,而 Appender将数据写入HDFS或者本地磁盘。当前版本支持csv和基于行的二进制文件格式,系统设计的时候开放了Scanner和Appender 接口,用户可以针对不同的文件格式自定义Scanner和Appender来应对不同的应用场景。 容错 Tajo的容错机制是与MapReduce中的容错类似,将失败的任务分配给其他的worker,也就是说,当master检测到一个查询单元失败了就会将该查询单元分配到其他的worker节点重新执行。与 三、官方实验结果 作者在一次官方的演讲中汇报了tajo-0.8 vs. Impala1.1.1 vs.hive0.10的比较结果。 实验说明 实验数据:TPC-H 数据集 100G 硬件设备:10G network、6 cluster nodes、each machine: Intel Xeon CPU E5 2640 2.5GHZ x 4,64G内存,6 SATA2 磁盘。 实验结果 图 3 tajo vs. impala vs. hive结果对比图 四、目前存在的问题 下面介绍一下目前还存在哪些问题: metric 系统 目前还没有metric系统,系统监控和状态信息还不能很好地收集 异常处理 对于错误处理机制还不够健全,一个query job挂了之后,中间的工作目录还有job都不能很好地退出。Master不能处理down的worker等等。 文档不健全 Java Api、系统使用文档、支持的SQL示例、代码压根就没有什么注释,也没有什么trouble shotting之类的,不过在jira上还是能及时得到回复的。 活跃度 目前社区活跃度太低,发展状况还是不错的,一直再更新,不断会有其他业余的加入。前景个人感觉还是良好的,是死是活还要看Tajo的造化了。 五、发展规划 根据官方文档和jira上总结了一下Tajo几个核心模块未来的发展规划(部分属于个人的一点点看法): 主目录服务 目前是tajo自开发的catalog管理服务器,分为catalog client和catalog server两个模块。目前支持Derby和MySQL数据存储,后续会支持对PostgresQL的支持。开发计划中会将Hive的HCatalog集 成进来,来做Tajo的数据表和存储管理服务。 数据存储 Tajo目前是以hdfs作为主要存储模块,对于一个数据仓库系统来说,应该支持各种各样的存储数据源,下一个开发计划会支持HBase和其他的数据源。 查询引擎 Tajo自己开发的SQL执行引擎包括SQL解析成抽象语法树(AntLR 4)、生成执行计划、执行计划的优化器、代价评估等模块。目前支持绝大部分的SQL92的操作,以后会考虑Tenzing的实现方案,支持更多的数据源。 表partition 目前的版本没有对表做partition,后续会参照hive的方式对表进行分区分表。 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/5105252.html,如需转载请自行联系原作者

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

apache开源项目--HydraBase

Facebook 在官方博客上宣布推出HBase数据库的升级版——HydraBase, Facebook是HBase的重度用户,Facebook的HBase数据库系统存储着Facebook的很多关键业务数据,包括内部监控系统、搜索索 引、流数据分析以及数据抓取等。HydraBase相比HBase稳定性和可用性更高,可以减少服务器宕机时间。 在HBase系统中,数据分片存储于很多区域,如果某个区域服务器宕机,其域内数据都需要迁移到另外一个域服务器。Facebook指出,虽然HBase能够自动恢复,但是恢复时间过长。 目前该项目已经捐赠给 Apache 基金会。 HydraBase的典型部署模型 HydraBase能够让一个数据域分布在多个域服务器中,域服务器之间能相互备份,因此能够大大减少数据恢复所用的时间。Facebook声称HydraBase能将Facebook全年的宕机时间缩减到不到5分钟。 Facebook目前正在测试HydraBase,并计划在生产集群中逐步开始部署。 发布示例: 单节点故障: 数据中心故障: Facebook声称HydraBase能将Facebook全年的宕机时间缩减到不到5分钟。 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/5103045.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册