当前位置: 首页 > news >正文

包装制品东莞网站建设购物网站论文

包装制品东莞网站建设,购物网站论文,网络公司关键词排名,做网站付款方式《程序员》杂志2014年10月刊《凌云》云计算大数据阿里云ODPShadoop摘要#xff1a;ODPS是分布式的海量数据处理平台#xff0c;提供了丰富的数据处理功能和灵活的编程框架。本文从ODPS面临的挑战、技术架构、Hadoop迁移到ODPS、应用实践注意点等方面带领我们初步了解了ODPS的… 《程序员》杂志2014年10月刊《凌云》云计算大数据阿里云ODPShadoop摘要ODPS是分布式的海量数据处理平台提供了丰富的数据处理功能和灵活的编程框架。本文从ODPS面临的挑战、技术架构、Hadoop迁移到ODPS、应用实践注意点等方面带领我们初步了解了ODPS的现状与前景。 初识ODPS ODPS是分布式的海量数据处理平台提供了丰富的数据处理功能和灵活的编程框架主要的功能组件有如下几个。 Tunnel服务数据进出ODPS的唯一通道提供高并发、高吞吐量的数据上传和下载服务。SQL基于SQL92并进行了本地化扩展可用于构建大规模数据仓库和企业BI系统是应用最为广泛的一类服务。DAG编程模型类似Hadoop MapReduce相对SQL更加灵活但需要一定的开发工作量适用于特定的业务场景或者自主开发新算法等。Graph编程模型用于大数据量的图计算功能开发如计算PageRank。XLIB提供诸如SVD分解、逻辑回归、随机森林等分布式算法可用于机器学习、数据挖掘等场景。安全管控ODPS中的所有数据对象所有的访问都必须经过鉴权提供了ACL、Policy等灵活强大的管理方式。 ODPS采用抽象的作业处理框架将不同场景的各种计算任务统一在同一个平台之上共享安全、存储、数据管理和资源调度为来自不同用户需求的各种数据处理任务提供统一的编程接口和界面。 和阿里云的其他云计算服务一样ODPS也是采用HTTP RESTful服务并提供Java SDK、命令行工具Command Line ToolCLT和上传下载工具dship以及阿里云官网提供统一的管理控制台界面。在阿里内部有多个团队基于ODPS构建交互界面的Web集成开发环境提供数据采集、加工、处理分析、运营和维护的一条龙服务。基于ODPS进行应用开发最直接的是使用CLT以及dship等工具。如果不能满足需要也可以进一步考虑使用ODPS SDK或RESTful API等进行定制开发如图1所示。 图1  ODPS应用开发模式 如果你的业务发展需要一个足够强大、能开箱即用的大数据处理平台并且不想花费太多精力去关注这一切如何实现与运维那么ODPS是一个非常理想的选择。 规模的挑战 在DT时代数据是宝贵的生产资料但不断扩大的数据规模给ODPS带来了极大的挑战。在阿里内部就曾直面这种情况在可以预见的时间内单个集群的规模无法再容纳所有的数据。 解决方案是扩大单集群的规模同时让应用系统可以管理多个集群。在这个背景下ODPS作为一个海量数据的处理平台结合5K项目开发了多集群管理的功能使得数据处理的规模跨上了一个新的台阶。当单个计算集群的存储或计算容量不足时将数据重新分布到新的集群上。更重要的一点是这种跨多个集群的能力对上层应用是透明的用户在运行SQL或者Graph模型时不必了解数据是分布在哪个物理集群上如图2所示。 图2  ODPS的跨集群能力 网站日志分析 这里我们将基于最常见的网站日志分析这一应用场景实践如何通过ODPS来构建企业数据仓库包括数据的导入导出以及清洗转换。其ETL过程与基于传统数据库的解决方法并不完全一致在数据传输环节并没有太多的清洗转换这项工作是在数据加载到ODPS后用SQL来完成的。在数据加载到ODPS后可以充分利用平台的水平扩展能力处理的数据量可以轻松地扩展到PB级别而且作为一个统一的平台除构建数据仓库外在ODPS中利用内置的功能即可进行数据挖掘和建模等工作。在实际工作中数据采集、数仓构建和数据挖掘等都是由不同的团队来完成的针对这一情况ODPS中提供了完善的安全管理功能可以精确地控制每个人可以访问到的数据内容下例中为突出主要的过程忽略了用户的授权管理。 数据来源于网站酷壳CoolShell.cn上的HTTP访问日志数据access.log格式如下 一个典型的企业数据仓库通常包含数据采集、数据加工和存储、数据展现等几个过程如图3所示。 图3  数据仓库主要过程 数据采集 真实的网站日志数据中不可避免地会存在很多脏数据可以先通过脚本对源数据做简单的处理解析去掉无意义的信息例如第二个字段“-”。在数据量比较大的情况下单机处理可能成为瓶颈。这时可以将原始的数据先上传到ODPS充分利用分布式处理的优势通过ODPS SQL对数据进行转换。 在ODPS中大部分的数据都是以结构化的表形式存在的因此第一步要创建ODS层源数据表。由于数据是每天导入ODPS中所以采取分区表以日期字符串作为分区在ODPS CLT中执行SQL如下 假设当前数据是20140301这一天的添加分区如下 解析后的数据文件在/home/admin/data/20140301/output.log下通过dship命令导入ODPS中如下 数据加工和存储 在ods_log_tracker表中request字段包含三个信息HTTP方法、请求路径和HTTP协议版本如“GET /articles/4914.html HTTP/1.1”。在后续处理中会统计方法为GET的请求总数并对请求路径进行分析因而可以把原始表的request字段拆解成三个字段method、url和protocol。这里使用的是ODPS SQL内置的正则函数解析的字符串并生成表dw_log_parser 与传统的RDBMS相比ODPS SQL面向大数据OLAP应用没有事务也没有提供update和delete功能。在写结果表时尽量采用INSERT OVERWRITE到某个分区来保证数据一致性如果用户写错数据只需要重写该分区不会污染整张表。如果采用INSERT INTO某张表的方式那么在作业因各种原因出现中断时不方便确定断点并重新调度运行。 ODPS SQL提供了丰富的内置函数极大方便了应用开发者。对于某些功能如果SQL无法完成的话那么可以通过实现UDF用户自定义函数来解决。例如希望将ip字段转化成数字形式从而和另一张表关联查询可以实现UDF如下 编译生成JAR包udf_ip2num.jar将它作为资源上传到ODPS然后创建函数并测试如下 表dual需要用户自己创建类似于Oracle中的dual表包含一列和一行经常用于查询一些伪列值pseudo column是SQL开发调试的利器。 对于较复杂的数据分析需求还可以通过ODPS DAG类似MapReduce编程模型来实现。篇幅限制这里不一一介绍。 图4  PV/UV展示结果 数据展现 应用数据集市往往是面向业务需求对数据仓库表进行查询分析例如统计基于终端设备信息的PV和UV生成结果表adm_user_measures。R是一款开源的、功能强大的数据分析工具。通过R来绘图展示结果报表可以有两种方式一是通过dship命令将数据导出到本地再通过R展现结果二是在R环境中安装RODPS Package直接在R中读取表中的数据并展现。在RStudio中基于小样本数据统计的展现结果如图4所示。 迁移到ODPS Hadoop作为开源的大数据处理平台已得到了广泛应用。在使用Hadoop集群的用户可以比较轻松地迁移到ODPS中因为ODPS SQL与Hive SQL语法基本一致而MapReduce作业可以迁移到更加灵活的DAG的执行模型。对于数据的迁移可以通过ODPS Tunnel来完成。 数据通道服务ODPS Tunnel是ODPS与外部交互的统一数据通道能提供高吞吐量的服务并且能够水平进行服务能力的扩展。Tunnel服务的SDK集成于ODPS SDK中。实际上dship也是调用SDK实现的客户端工具支持本地文件的导入导出。我们鼓励用户根据自己的场景需求开发自己的工具例如基于SDK开发对接其他数据源如RDBMS的工具。 把海量数据从Hadoop集群迁移到ODPS的基本思路是实现一个Map Only程序在Hadoop的Mapper中读取Hadoop源数据调用ODPS SDK写到ODPS中。执行逻辑大致如图5所示。 Hadoop MapReduce程序的执行逻辑主要包含两阶段一是在客户端本地执行如参数解析和设置、预处理等这在main函数完成二是在集群上执行Mapper多台Worker分布式执行map代码。在Mapper执行完成后客户端有时还会做一些收尾工作如执行状态汇总。 图5  Hadoop到ODPS的数据迁移 这里我们在客户端本地的main函数中解析参数创建UploadSession把SessionID传给MapperMapper通过SessionID获取UploadSession实现写数据到ODPS。当Mapper执行完成后客户端判断执行结果状态执行Session的commit操作把成功上传的数据Move到结果表中。 默认情况下Hadoop会自动根据文件数划分Mapper个数。在文件大小比较均匀时这种方式没什么问题。然而存在大文件时整个大文件只在一个Mapper中执行可能会很慢造成性能瓶颈。这种情况下应用程序可自己对文件进行切分。 下面实现一个类Hdfs2ODPS来完成这个功能。其中run函数完成了前面提到的主要逻辑主要代码如下其中包括了对ODPS Tunnel的使用 在这个函数中首先调用函数parseArguments对参数进行解析后面会给出然后初始化DataTunnel和UploadSession。创建UploadSession后获取SessionID并设置到conf中在集群上运行的Mapper类会通过该conf获取各个参数。然后调用runJob函数其代码如下 runJob函数设置Hadoop conf然后通过JobClient.runJob(conf);启动Mapper类在集群上运行最后调用conf.getNumMapTasks() 获取Task数Task数即上传到ODPS的并发数。在Mapper中可以通过conf.getLong(mapred.task.partition)获取Task编号其值范围为[0, NumMapTasks)。因此在Mapper中可以把Task编号作为上传的blockid。客户端在Mapper成功返回时就完成commit所有的Session。 应用实践注意点 与单机环境相比在ODPS这样的分布式环境中进行开发思维模式上需要有很大转变。下面分享一些实践中的注意点。 在分布式环境下数据传输需要涉及不同机器的通信协作可以说它是使用ODPS整个过程中最不稳定的环节因为它是一个开放性问题由于数据源的不确定如文件格式、数据类型、中文字符编码格式、分隔符、不同系统如Windows和Linux下换行符不同double类型的精度损失等存在各种未知的情况。脏数据也是不可避免的在解析处理时往往是把脏数据写到另一个文件中便于后续人工介入查看而不是直接丢弃。在上传数据时Tunnel是Append模式写入数据因而如果多次写入同一份数据就会存在数据重复。为了保证数据上传的“幂等性”可以先删除要导入的分区再上传这样重复上传也不会存在数据重复。收集数据是一切数据处理的开始所以必须非常严谨可靠保证数据的正确性否则在该环节引入的正确性问题会导致后续处理全部出错且很难发现。 对于数据处理流程设计要特别注意以下几点。 数据模型好的数据模型事半功倍。数据表的分区管理如数据每天流入按日期加工处理则可以采取时间作为分区在后续处理时可以避免全表扫描同时也避免由于误操作污染全表数据。数据倾斜这是作业运行慢的一个主要原因数据倾斜导致某台机器成为瓶颈无法利用分布式系统的优势主要可以从业务角度解决。数据的产出时间在数据处理Pipeline中数据源往往是依赖上游业务生成的上游业务的数据产出延迟很可能会影响到整个Pipeline结果的产出。数据质量和监控要有适当的监控措施如某天发生数据抖动要找出原因及时发现潜在问题。作业性能优化优化可以给整个Pipeline的基线留出更多时间而且往往消耗资源更少节约成本。数据生命周期管理设置表的生命周期可以及时删除临时中间表否则随着业务规模扩大数据会膨胀很快。 此外数据比对、A/B测试、开发测试和生产尽可能采用两个独立的Project。简言之在应用开发实践中要理解计费规则尽可能优化存储计算开销。 ODPS现状和前景 阿里巴巴提出了“数据分享第一平台”的愿景其多年来坚持投资开发ODPS平台的初心就是希望有一天能够以安全和市场的模式让中小互联网企业能够使用阿里巴巴最宝贵的数据。阿里内部提出了所有数据“存、通和用”将不同业务数据关联起来发挥整体作用。ODPS目前正在发展中它在规模上支持淘宝核心数据仓库每天有PB级的数据流入和加工在正确性上支持阿里金融的小额无担保贷款业务其对数据计算的准确性要求非常苛刻在安全上支持支付宝数据全部运行在ODPS平台上由于支付宝要符合银行监管需要对安全性要求非常高除了支持各种授权和鉴权审查ODPS平台还支持“最小访问权限”原则作业不但要检查是否有权限访问数据而且在整个执行过程中只允许访问自己的数据不能访问其他数据。 前面的示例只是展现了ODPS的冰山一角。作为阿里巴巴云计算大数据平台ODPS采用内聚式平台系统架构各个组件紧凑内聚除了结构化数据处理SQL、分布式编程模型MapReduce外还包含图计算模型、实时流处理和机器学习平台如图6所示。 图6  ODPS功能模块 随着ODPS对外开放的不断推进和第三方数据的流入相信会有各种创新在ODPS上生根发芽、开花结果。 尽管如此云计算和大数据是两个新兴的领域技术和产品发展日新月异。作为一个平台虽然ODPS已在阿里内部被广泛使用但在产品和技术上还有很多方面需要进一步完善和加强希望ODPS能够和云计算大数据应用共同成长成为业界最安全、最可靠和最方便易用的平台。 本文主要内容节选自作者即将出版的新书《ODPS权威指南》。 本文作者张云远长期工作于数据仓库及BI领域先后任职于建设银行、TCS及惠普2011年加入阿里云担任ODPS产品经理主要负责SQL模块的产品功能。经历了阿里金融等数据仓库在ODPS上的建设过程作为登月一号项目的PM负责将小微金服离线数据平台迁移到ODPS。 李妹芳阿里数据平台事业部工程师曾译有《Linux系统编程》、《数据之美》、《数据可视化之美》等书其新书《ODPS权威指南》即将上市。
http://www.zqtcl.cn/news/469942/

相关文章:

  • 个人如何在企业网站做实名认证房地产平面设计主要做什么
  • 网站做字工具WordPress搜索功能增强
  • 慢慢来做网站多少钱wordpress优化搜索引擎
  • 网页 网站 区别现在装宽带要多少钱
  • 黄金网站下载免费建设个人网站需要什么条件
  • 网站开发人员岗位职责网站维护报价单
  • 免费正能量不良网站推荐自建网站视频教程
  • 厦门物流网站建设南京宜电的网站谁做的
  • vps 网站备案手机界面设计素材
  • seo排名影响因素主要有灯塔seo
  • 济南哪家做网站小勇cms网站管理系统
  • sns社交网站注册做网站 提交源码 论坛
  • wordpress网站编辑semir是什么牌子
  • 做区块链的网站教育培训机构平台
  • 系统网站怎么做的seo竞争对手分析
  • 菏泽网站建设菏泽众皓网页开发工资
  • 网站建设需求分析酒类群晖wordpress 映射
  • 呼和浩特网站建设宣传wordpress淘宝客插件开发
  • 如何建网站赚钱做淘宝网店需要多少钱
  • 做个企业网站 优帮云移动商城个人中心手机卡进度查询
  • 深圳建设网站哪家最好国外互联网裁员
  • 网站重新建设的请示wordpress get_terms 排序
  • 建站模板免费下载wordpress 管理地址
  • 静安企业网站制作wordpress文章列表显示缩略图
  • html前端网站开发先做网站还是先解析
  • 怎么通过域名访问网站elision wordpress
  • 做邮轮的网站做游戏的软件app
  • 做网站用php还是python家装十大品牌排行榜
  • 湛江网站建设招聘创作者服务平台
  • 衡阳建网站高中制作网站怎么做