扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Elasticsearch存储的文档数量接近50亿(算上1份复制,接近100亿文档),总共10个数据节点和2个元数据节点(48GB内存,8核心
为扬中等地区用户提供了全套网页设计制作服务,及扬中网站建设行业解决方案。主营业务为网站制作、做网站、扬中网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
CPU,ES使用内存达到70%),每天的文档增量大概是3000W条(速度持续增加中)。目前来看,单个文档的查询效率基本处于实时状态;对于1到2周
的数据的聚合统计操作也可以在10秒之内返回结果。
但是,还有提升的空间:
1. 对于查询单条数据的应用场景来说,我们可以使用ES的路由机制,将同一索引内的具有相同特征(比如具有相同的userid)的文档全部存储于一个节点上,这样我们之后的查询都可以直接定位到这个节点上,而不用将查询广播道所有的节点上;
2. 随着数据节点的增加,适当增加分片数量,提升系统的分布水平,也可以通过分而治之的方式优化查询性能;
个
人以为Elasticsearch作为内部存储来说还是不错的,效率也基本能够满足,在某些方面替代传统DB也是可以的,前提是你的业务不对操作的事性务
有特殊要求;而权限管理也不用那么细,因为ES的权限这块还不完善。由于我们对ES的应用场景仅仅是在于对某段时间内的数据聚合操作,没有大量的单文档请
求(比如通过userid来找到一个用户的文档,类似于NoSQL的应用场景),所以能否替代NoSQL还需要各位自己的测试。如果让我选择的话,我会尝
试使用ES来替代传统的NoSQL,因为它的横向扩展机制太方便了。
在我的工作过程中,我深切体会到:经验固然是一个很重要的东西,因为它能够帮助我们少走很多弯路,但同时也应该看到经验的另一面——它会变成一个笼子,将我们闭塞其中,使我们错过一些可能更好的解决方案,关键是我们要学会尝试,接触新的世界
首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
腾讯云包括云服务器、云数据库、CDN、云安全、万象图片和云点播等产品。
开发者通过接入腾讯云平台,可降低初期创业的成本,能更轻松地应对来自服务器、存储以及带宽的压力。 云服务器
高性能高稳定的云虚拟机,可在云中提供弹性可调节的计算容量,不让计算能束缚您的想象;您可以轻松购买自定义配置的机型,在几分钟内获取到新服务器,并根据您的需要使用镜像进行快速的扩容。
弹性web 服务
弹性Web 引擎(Cloud Elastic Engine)是一种Web 引擎服务,是一体化web 应用运行环境,弹性伸缩,中小开发者的利器。通过提供已部署好php、nginx 等基础web 环境,让您仅需上传自己的代码,即可轻松地完成web 服务的搭建。
负载均衡
腾讯云负载均衡服务,用于将业务流量自动分配到多个云服务器、弹性web 引擎等计算单元的服务,帮您构建海量访问的业务能力,以及实现高水平的业务容错能力。腾讯云提供公网及内外负载均衡,分别处理来自公网和云内的业务流量分发。 云数据库
云数据库(CDB:Cloud Data Base)是腾讯云平台提供的面向互联网应用的数据存储服务。
NoSQL 高速存储
腾讯NoSQL 高速存储,是腾讯自主研发的极高性能、内存级、持久化、分布式的Key-Value存储服务。NoSQL 高速存储以最终落地存储来设计,拥有数据库级别的访问保障和持续服务能力。支持Memcached 协议,能力比Memcached 强(能落地),适用Memcached、TTServer 的地方都适用NoSQL 高速存储。NoSQL 高速存储解决了内存数据可靠性、分布式及一致性上的问题,让海量访问业务的开发变得简单快捷。
对象存储服务(beta)
对象存储服务(COS:Cloud Object Service),是腾讯云平台提供的对象存储服务。COS 为开发者提供安全、稳定、高效、实惠的对象存储服务,开发者可以将任意动态、静态生成的数据,存放到COS 上,再通过HTTP 的方式进行访问。COS 的文件访问接口提供全国范围内的动态加速,使开发者无需关注网络不同所带来的体验问题。
CDN
CDN(Content Delivery Network)即内容分发网络。腾讯CDN 服务的目标与一般意义上的CDN 服务是一样的,旨在将开发者网站中提供给终端用户的内容(包括网页对象—文本、图片、脚本,可下载的对象—多媒体文件、软件、文档,等等),发布到多个数据中心的多台服务器上,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 云监控
腾讯云监控是面向腾讯云客户的一款监控服务,能够对客户购买的云资源以及基于腾讯云构建的应用系统进行实时监测。开发人员或者系统管理员可以通过腾讯云监控收集各种性能指标,了解其系统运行的相关信息,并做出实时响应,保证自己的服务正常运行。
腾讯云监控提供了可靠,灵活的监控解决方案,当您首次购买云服务后,不需要任何设置,就可以获得基础监控指标,同时,也可以通过简单的步骤后,获取到更多的个性化指标。除了丰富的监控指标视图以外,腾讯云监控还提供个性化的告警服务,客户可以对任意监控指标自定义告警策略。通过短信,邮件,微信等方式,实时推送故障告警。
腾讯云监控也是一个开放式的监控平台,支持用户上报个性化的指标,提供多个维度,多种粒度的实时数据统计以及告警分析。并提供开放式的API,让客户通过接口也能够获取到监控数据。
云安全
腾讯公司安全团队在处理各种安全问题的过程中积累了丰富的技术和经验,腾讯云安全将这些宝贵的安全技术和经验打造成优秀的安全服务产品,为开发商提供业界领先的安全服务。腾讯云安全能够帮助开发商免受各种攻击行为的干扰和影响,让客户专注于自己创新业务的发展,极大的降低了客户在基础环境安全和业务安全上的投入和成本。
云拨测
云拨测依托腾讯专有的服务质量监测网络,利用分布于全球的服务质量监测点,对用户的网站,域名,后台接口等进行周期性监控, 并提供实时告警, 性能和可用性视图展示,智能分析等服务。 TOD 大数据处理
TOD 是腾讯云为用户提供的一套完整的、开箱即用的云端大数据处理解决方案。开发者可以在线创建数据仓库,编写、调试和运行SQL 脚本,调用MR程序,完成对海量数据的各种处理。另外开发者还可以将编写的数据处理脚本定义成周期性执行的任务,通过可视化界面拖拽定义任务间依赖关系,实现复杂的数据处理工作流。主要应用于海量数据统计、数据挖掘等领域。已经为微信、QQ 空间、广点通、腾讯游戏、财付通、QQ 网购等关键业务的提供了数据分析服务。
腾讯云分析
腾讯云分析是一款专业的移动应用统计分析工具,支持主流智能手机平台。开发者可以方便地通过嵌入统计SDK,实现对移动应用的全面监测,实时掌握产品表现,准确洞察用户行为。不仅仅是记录,移动APP 统计还分析每个环节,利用数据透过现象看本质。腾讯云分析还同时提供业内市场排名趋势、竞品排名监控等情报信息,让您在应用开发运营过程中,知己知彼,百战百胜。
腾讯云搜
腾讯云搜(Tencent Cloud Search)是腾讯公司基于在搜索领域多年的技术积累,对公司内部各大垂直搜索业务搜索需求进行高度抽象, 把搜索引擎组件化、平台化、服务化,最终形成成熟的搜索对外开放能力,为广大移动应用开发者和网站站长推出的一站式结构化数据搜索托管服务。 移动加速
移动加速服务是腾讯云针对终端应用提供的访问加速服务,通过加速机房、优化路由算法、动态数据压缩等多重措施提升移动应用的访问速度和用户体验,并为客户提供了加速效果展示、趋势对比、异常告警等运营工具随时了解加速效果。
应用加固
应用加固服务是腾讯云依托多年终端安全经验,提供的一项终端应用安全加固服务。具有操作简单、多渠道监控、防反编译防篡改防植入、零影响的特点,帮助用户保护应用版权和收入。
腾讯云安全认证
腾讯云安全认证是腾讯云提供的免费安全认证服务,通过申请审核的用户将获得权威的腾讯云认证展示,让您的业务获得腾讯亿万用户的认可。免费安全服务,权威认证展示,腾讯云已为2.6万网站、应用保驾护航。
信鸽推送
信鸽(XG Push)是一款专业的免费移动App 推送平台,支持百亿级的通知/ 消息推送,秒级触达移动用户,现已全面支持Android 和iOS 两大主流平台。开发者可以方便地通过嵌入SDK,通过API 调用或者Web 端可视化操作,实现对特定用户推送,大幅提升用户活跃度,有效唤醒沉睡用户,并实时查看推送效果。
域名备案
腾讯云备案服务,帮助您将网站在工信部系统中进行登记,获得备案证书悬挂在网站底部。目前支持企业、个人、政府机关、事业单位、社会团体备案。
云API
云API 是构建云开放生态重要的一环。腾讯云提供的计算、数据、运营运维等基础能力,包括云服务器、云数据库、CDN 和对象存储服务等,以及腾讯云分析(MTA)、腾讯云推送(信鸽)等大数据运营服务等,都将以标准的开放API 的形式提供给广大企业和开发者使用,方便开发者集成和二次开发。
万象图片
万象图片是将QQ空间相册积累的十年图片经验开放给开发者,提供专业一体化的图片解决方案,涵盖图片上传、下载、存储、图像处理。
维纳斯
维纳斯(Wireless Network Service)专业的移动网络接入服务,使用腾讯骨干网络,全国400个节点,连通成功率99.9%。
云点播
腾讯云一站式视频点播服务,汇聚腾讯强大视频处理能力。从灵活上传到快速转码,从便捷发布到自定义播放器开发,为客户提供专业可靠的完整视频服务。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流