首页 文章 精选 留言 我的

精选列表

搜索[虚幻引擎],共10000篇文章
优秀的个人博客,低调大师

OpenLayers 6.0.0 发布,高性能开源地图引擎

OpenLayers 是一个高性能、功能丰富的库,用于在 Web 上创建交互式地图。它可以显示从任何来源加载的地图图块、矢量数据和标记。6.0.0版本内容如下: 能够使用不同的渲染器类型组成层:以前,地图使用单一的渲染策略,地图中的所有层都必须实现该策略。现在可以使用不同的渲染技术拥有一个具有不同层的映射 可以使用自定义渲染器创建层:可以使用另一个库(如 d3)来渲染一个层,而使用 OpenLayers 来渲染其他层 一些矢量切片(vector tile)渲染改进,具有较低的内存占用 此版本包括一些实验特性的 API 此版本包含许多向后不兼容的更改 缓存起始坐标,并向 translateEvent 添加 mapBrowserEvent 为 hasFeatureAtPixel 和 getFeaturesAtPixel 添加地理测试 该版本做了很多改进和修复,详情可见更新说明: https://github.com/openlayers/openlayers/releases/tag/v6.0.0

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

解读 Kylin 3.0.0 | 更敏捷、更高效的 OLAP 引擎

在近期的 Apache Kylin Meetup 成都站上,我们邀请到 Kyligence 架构师 & Apache Kylin Committer 倪春恩对 Kylin3.0.0 版本的一些重要功能及改进从使用到原理进行了介绍: Apache Kylin 在今年 4 月 18 日发布了 3.0.0 Alpha 版本,我今天的分享也围绕Release notes内提到的三个功能,即:基于 Curator 的作业调度器,使用 Apache Livy 提交 Spark 任务,实时 OLAP。 基于 Curator 的作业调度器 首先讲一下作业调度器。Kylin 支持集群部署, Kylin 实例主要有三种模式。一种是 Job 模式(用作任务构建),一种是 Query 模式(用作 Query 查询),配置成all模式的节点既做 Query 节点又做 Job节点。之前,我们需要先设置配置项,配置 kylin.server.cluster-servers 为集群中所有节点,这样各节点便可互相通信,比如元数据的同步。 我们可以通过 Ngnix 等工具配一个对 Kylin 集群查询的多活,即便有某个节点挂掉了,也不会影响 Kylin 的查询使用。但在原有的默认模式下,是不支持任务构建的高可用的。在默认的任务调度模式下,Job 节点会在 ZooKeeper 的一个路径下生成一个临时节点作为并发锁,只有持有锁的节点才会启动任务调度器。但如果发生一些情况,这个任务节点退出了,或者是 ZooKeeper 服务异常,都会导致所有的构建任务、merge 任务无法执行,别的任务节点也没有办法把这些任务 takeover 起来。 另外,所有的 Kylin 节点都需要配置集群节点列表的配置项 kylin.server.cluster-servers,一旦需要往集群添加节点,所有的节点配置项都必须改,非常不利于集群的扩展,一旦某个节点没有配正确,就会发生很多异常情况。 接下来介绍 Curator。Curator 是一个 Apache 的孵化项目,Curator 框架提供了一套高级的 API, 简化了 ZooKeeper 的操作。它增加了很多使用 ZooKeeper 开发的特性,可以处理 ZooKeeper 集群复杂的连接管理和重试机制。Service Discovery 是 Curator 的一个模块,他提供了 Service 的注册机制,对一个新 Service的注册,Service 的状态变更事件,别的 Service 能够立即得到相应。 基于 Curator 的作业调度器的配置方法很简单,把配置项 kylin.job.scheduler.default 配置成 100 即可。启动后,所有节点都会往 ZK 里面去注册临时节点,每个临时节点写有节点 url,模式等基本信息。 在此模式下的任务调度,只会有一个被选举出来的任务节点,来执行任务调度。多节点的 Leader 选举,是基于 Curator 的 Leader 选举。它具有这样的特点: 每个实例都能公平获取领导权 获取领导权的实例在释放领导权之后,该实例还有机会再次获取领导权 每个 Job 或 All 节点会往 leader 路径下创建节点,获得领导权的任务节点会启动任务调度器。失去了领导权后,该节点会中断所有的构建任务,另一台节点会紧接着获取新的领导权,把所有的任务给恢复起来。 另外在系统页面会有一个节点监控页面,用户可以看到各节点的类型与状态。 该任务调度模式的优点有: 实现了 HA,保证构建任务的持续执行 方便进行节点扩展 配置方便,减少运维成本 便于监控 使用 Apache Livy 提交 Spark 任务 第二个 Feature 是支持使用 Apache Livy 提交 Spark 任务,Livy 是一个基于 Spark 的开源 REST 服务,它能够通过 REST 的方式将代码片段或是序列化的二进制代码提交到 Spark 集群中去执行。它提供了以下这些基本功能: 提交 Scala、Python 或是 R 代码片段到远端的 Spark 集群上执行 提交 Java、Scala、Python 所编写的 Spark 作业到远端的 Spark 集群上执行 提交批处理应用在集群中运行 对应到 Kylin,需要作如下配置: kylin.engine.livy-conf.livy-enabled=true kylin.engine.livy-conf.livy-url={url of Livy server} kylin.engine.livy-conf.livy-key.file={path for kylin job jar} kylin.engine.livy-conf.livy-arr.jars={paths for dependencies} 首先开关 kylin.engine.livy-conf.livy-enabled 需要打开,默认是关闭的。其次是配上 Livy rest server 的 url 到 kylin.engine.livy-conf.livy-url,另外需要配上任务 jar 包的路径到 kylin.engine.livy-conf.livy-key.file,最后是 kylin.engine.livy-conf.livy-arr.jars 需配置为任务依赖的 jar 包。下图为使用 Livy 服务进行 Spark 构建发送的请求日志,从中可以看到相应的参数。 默认情况下,每个 Kylin 节点都要配置自己的 Spark home,有了此功能,所有的任务节点都需要往一个 Spark Uil 去提交任务,这样就比较方便管理和监控。 实时 OLAP Kylin 在 2014 年由 eBay 开发完成,初衷是解决海量数据快速交互式分析的问题,数据源只支持 Hive。Kylin 在 v1.6 引入的准实时数据摄入,但是还是需要触发构建,至少会有数分钟的延迟。eBay 开发团队基于 Kylin 开发了 Real-time OLAP 的特性,实现了 Kylin 对 Kafka 流式数据的实时查询。eBay 内部已将此功能用于生产,并稳定运行超过一年时间。该 feature 于 2018 年下半年开源,并在 v3.0-alpha 里正式发布。 Ø 实时 OLAP 基本架构 在新的架构下,数据查询请求根据时间分区列(Timestamp Partition Column)分为两部分, 历史数据的查询请求仍将发送给 HBase Region Server,最新时间段的查询请求将发送到实时计算节点,Query Server 需要将两者的结果整合后返回给查询客户端。 与此同时,实时计算节点会不断将本地数据上传到 HDFS,在满足一定条件时会通过 Hadoop 来构建 segment,从而完成实时数据向历史数据的转化,并且实现了降低实时计算节点压力的目的。 Ø Real-time OLAP 的概念和角色 为实现 Real-time OLAP, Kylin 引入了一些新的概念。 1. Streaming Receiver Streaming Receiver 的角色是 worker,每个 receiver 是一个 Java 进程,受Coordinator 的管理,它的主要职责包含: 实时摄入数据 在内存构建 cuboid,定时将保存在内存的 cuboid 数据 flush 到磁盘,形成Fragment 文件 定时 checkpoint 和合并 Fragment 文件 接受对它所负责的 Partition 的查询请求 当 segment 变为不可变后,上传到 HDFS 或者从本地删除(依据配置) 2. Receiver Cluster Streaming Receiver 组成的集合称为 Receiver 集群。 3. Streaming Coordinator Streaming Coordinator 作为 Receiver 集群的 Master 节点,主要职责是管理 Receiver,包括将 Kafka topic 的 partition 分配/解除分配到指定的 Replica set、 暂停或者恢复消费、收集和展示各项统计指标(例如 message per second)。当 kylin.server.mode 被设置为 all 或者 stream_coordinator,这个进程就成为一个Streaming Coordinator。Coordinator 只处理元数据和集群调度,不摄入消息。 4. Coordinator Cluster 多个Coordinator 可以同时存在,组成一个 Coordinator 集群。在多个 Coordinator 中,同一时刻只存在一个 Leader,只有 Leader 才可以响应请求,其余进程作为 standby/backup。 5. Replica Set Replica Set 是一组 Streaming Receiver,它们动作一致。Replica Set 作为任务分配的最小单位,Replica Set 下的所有 Receiver 做相同的工作(即摄入相同的一组 partition),互为 backup。当集群中存在一些 Receiver 进程无法访问,能保证每一个 Replica Set 至少存在一个健康的 Receiver,那么集群仍能正常工作并且返回合理的查询结果。在一个 Replica Set 中,将存在一个 Leader Receiver 来做额外的工作,其余的 Receiver 作为 Follower。 Ø Real-time OLAP 的整体架构 下图为 Kylin 实时 OLAP 的整体架构,数据流向方面,是从 Kafka 到 Receiver,再由 Receiver 上传到 HDFS,最后由 MapReduce 程序合并和重新加工 Segment 进入 HBase。 查询方面,查询请求由 Query Server 发出,根据查询条件中出现的时间分区列,分发请求到 Receiver 和 HBase Region Server 两端。 Topic Partition 的分配和 Rebalance、Segment 状态管理和作业提交由 Coordinator 负 责。 另外在实时构建中,Kylin 使用 ZooKeeper 进行元数据的存储。 Q & A 提问:Kylin 实时 OLAP 的数据消费都是针对 Kafka,我最近也在去做 POC,就是针对 Kylin v3.0。我发现了在消费 Kafka 数据的时候,3 个 Server 里,有的 Server 摄取了全量数据,有的不是,这个我不太清楚具体是什么一个情况。 回答:你可以点击某一个 Receiver,可以看到这个 Receiver 对这个 Cube 的消费统计数据。 提问:还有消费延迟,这个怎么去解决这个问题呢? 回答:数据消费延迟在我们的测试环境也有,目前来讲处理的方法是通过 Server 的扩容。 提问:刚才也听您说了很多 Kylin 实时的一些原理,同 Spark Streaming 和 Flink 相比,有什么优点? 回答:Kylin 和他们不是在一个层面的,Spark Streaming 和 Flink 是更加通用的计算框架,而 Kylin 是一个 OLAP 的应用,通过预计算,对于一个查询,它的目标是直接去拿到一个结果。 提问:我想问的就是刚才那个保留状态,他能保证比如说数据没处理到的,可以实现端到端一次性不丢失吗?就是在消费过来的数据时服务挂掉了,这时候进来的那部分数据会丢失吗,就是从 Kafka 数据去消费的时候? 回答:这个还是得看时间窗口的配置,Kylin Realtime 会按配置接受一定时间延迟的数据进来。但如果过了这个配置的最大时间,是没办法被构建的,因为对应的 Segment 已经变成一个本地的只可读不可写的状态。 了解更多大数据资讯,点击进入Kyligence官网 --------------------------------------------------------------------------------------------- 2019 年 9 月 7 日 Apache Kylin × Apache RocketMQ Meetup 深圳站正在火热报名!邀请到腾讯、阿里 、平安云以及 Kyligence的技术专家为大家呈现精彩应用案例与实践:https://www.huodongxing.com/event/3506680147611

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

Solr搜索引擎 — SolrCloud介绍和环境准备

搞定了一切的一切之后下一步就是正式使用了,但是之前介绍的都是在单台服务器上进行的部署,如果在生产环境出现了单台故障怎么办呢?提供稳定性和性能的最直观的方式就是集群,solr官方提供了cloud的集群方式 附上: 喵了个咪的博客:http://w-blog.cn Solr官网:http://lucene.apache.org/solr/ PS:8.0.0版本已经发布,本文使用此时较为稳定的7.7.1版本 一,SolrCloud介绍 SolrCloud是基于Solr和Zookeeper的分布式搜索方案。它的主要思想是使用Zookeeper作为SolrCloud集群的配置信息中心,统一管理solrcloud的配置,比如solrconfig.xml和schema.xml。 SolrCloud(solr集群)是Solr提供的分布式搜索方案,一下场景能够比较好的使用SolrCloud 当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。 当索引量很大,搜索请求并发很高时,同样需要使用SolrCloud来满足这些需求。 不过当一个系统的索引数据量少的时候是没有必要使用SolrCloud的。 Solrcloud特点功能: 集中式的配置信息 自动容错 近实时搜索 查询时自动负载均衡 Solrcloud的结构: solrcloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard分片,每个分片由多台服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。solrcloud是基于solr和zookeeper部署,zookeeper是一个集群管理软件,solrcloud需要由多台solr服务器组成,然后由zookeeper来进行协调管理。 物理结构: 三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。 逻辑结构: 索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。 core: 每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。 Master&Slave: Master是master-slave构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的 二、环境准备 准备三台centos 7服务器 , 并且对主机名进行改写 hostname solr-1 hostname solr-2 hostname solr-3 修改三台机器hosts文件通过hostname可以互相访问,使用ping命令验证可以互相通讯 > vim /etc/hosts 172.16.2.75 solr-1 172.16.2.74 solr-2 172.16.2.72 solr-3 安装JAVA,可以自行安装或oneinstack一键命令安装,这里安装了java和tomcat > wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --tomcat_option 2 --jdk_option 2 --reboot 三、Zookeeper安装 > cd /app/install/ > wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz > tar -zxvf zookeeper-3.4.13.tar.gz > mv zookeeper-3.4.13 /usr/local/ 修改配置文件 > cd /usr/local/zookeeper-3.4.13/conf/ > cp zoo_sample.cfg zoo.cfg > vim zoo.cfg tickTime=2000 dataDir=/usr/local/zookeeper-3.4.13/data clientPort=2181 initLimit=10 syncLimit=5 server.1=solr-1:2888:3888 server.2=solr-2:2888:3888 server.3=solr-3:2888:3888 所有节点修改环境变量 > vim /etc/profile # zookeeper export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13 export PATH=$ZOOKEEPER_HOME/bin:$PATH > source /etc/profile 将zookeeper目录复制到其他节点上 > scp -r /usr/local/zookeeper-3.4.13/ root@solr-2:/usr/local/zookeeper-3.4.13 > scp -r /usr/local/zookeeper-3.4.13/ root@solr-3:/usr/local/zookeeper-3.4.13 添加myid文件(每节点都需要) > cd /usr/local/zookeeper-3.4.13 > mkdir data > echo "1" > data/myid 注意,每个节点myid文件要不一致 启动并测试 # 在三台机器上分别执行 > zkServer.sh start # 查看状态 [root@solr-1 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower [root@solr-2 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: leader [root@solr-3 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower

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

基于Unity3d 引擎的Android游戏优化

更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式, 对于透明贴图,我们只能选择RGBA 16bit 或者RGBA 32bit。 减少FPS,在ProjectSetting-> Quality中的VSync Count 参数会影响你的FPS,EveryVBlank相当于FPS=60,EverySecondVBlank = 30;这两种情况都不符合游戏的FPS的话,我们需要手动调整FPS,首先关闭垂直同步这个功能,然后在代码的Awake方法里手动设置FPS(Application.targetFrameRate = 45;) 降低FPS的好处:1)省电,减少手机发热的情况;2)能都稳定游戏FPS,减少出现卡顿的情况。 当我们设置了FPS后,再调整下Fixed timestep这个参数,这个参数在ProjectSetting->Time中,目的是减少物理计算的次数,来提高游戏性能。 尽量少使用Update LateUpdate FixedUpdate,这样也可以提升性能和节省电量。多使用事件(不是SendMessage,使用自己写的,或者C#中的事件委托)。 待机时,调整游戏的FPS为1,节省电量。 遇到麻烦时要调用“垃圾回收器”(Garbage Collector,无用单元收集程序,以下简称GC)由于具有C/C++游戏编程背景,我们并不习惯无用单元收集程序的特定行为。确保自动清理你不用的内存,这种做法在刚开始时很好,但很快你就公发现自己的 分析器经常显示CPU负荷过大,原因是垃圾回收器正在收集垃圾内存。这对移动设备来说尤其是个大问题。要跟进内存分配,并尽量避免它们成为优先数 更多unity2018的功能介绍请到paws3d学习中心查找。

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

解析 | 蚂蚁金服金融级容器引擎实践之路

小蚂蚁说: 在金融级分布式架构中使用容器,许多企业的开发者都面临许多挑战。在2018年ATEC蚂蚁金服技术探索大会上,蚂蚁金服高级技术专家盛延敏在演讲中分析了容器与云原生技术的本质,为容器在分布式架构上的使用带来了实用高效的解决方案。 关于蚂蚁金服科技开放其他的技术产品,你还可以参考阅读: 《独家 | 蚂蚁金服TRaaS技术风险防控平台解密》; 《深度|蚂蚁金服分布式金融核心套件:金融核心系统变革助推器》; 《2.0 解析系列 | 一文详解新一代OceanBase云平台》…… 关注“蚂蚁金服科技”,了解蚂蚁金服更多前沿暖科技! 容器与云原生技术 云原生技术由来已久,它包含五部分基础技术,包括容器(Containers)、服务网络(Service Meshes)、声明式API(Declarative APIs)、不可变基础设施(Immutable

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

张勇:新技术是阿里“五新战略”的引擎

9月19日,云栖大会再次在杭州开幕。上千位顶级学者、行业专家,来自64个国家的CEO和CTO齐聚云栖小镇。这已经是这个盛大的年度技术大会的第十年。 阿里巴巴集团CEO张勇在主论坛致辞中表示,“阿里巴巴永远是一家技术驱动,使商业有所不同,创造商业新赛道的数字经济体。” 张勇表示,阿里巴巴在两年内就会达到三年前提出的1万亿美元的近期目标,如今在全球超过10个国家开始发展本地钱包,拥有8.7亿用户;物流基础设施每天服务上亿个包裹;阿里云平台每天支撑着数以百万计的企业…… “阿里已经形成了一个横跨商业、金融、物流、云计算各个领域的独特的数字经济体。阿里数字经济体正是数字技术在中国过去十年巨大发展的缩影。“张勇说。 在张勇看来,面向未来,这样一个庞大的经济体依然有无尽的想象力。“如今大家想到更多是互联网对经济和消费的影响,面向未来的10年、20年,

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册