① AWS亚马逊和Aliyun阿里云、七牛云的云主机的区别和优势是什么
摘要 AWS的优点:
② 亚马逊AWS的速度怎么样
利用传统技术服务,需要花数周时间才能采购、交付并运行资源。这么长的时间期扼杀了创新。使用亚马逊AWS,开发人员可以在几分钟内部署数百、甚至数千个计算节点,而无需任何繁琐的流程。亚马逊AWS自助服务环境改变了开发人员创建和部署应用程序的速度,使软件开发团队能够更快、更频繁的进行创新。
③ aws的工具
⊕ 流程建模(Process Model)平台
⊕ 应用建模(Application Model)平台
⊕ 流程自动化(Process Automate)技术
⊕ 应用整合(Integration)技术
⊕ 业务活动监控(BAM)平台
⊕ 流程管理(Process Manage)平台
⊕客户端交互(Portal Worklist)平台
⊕ 流程优化(Optimize)平台
流程建模
AWS的业务流程建模工具是一款基于BPMN标准的流程建模与设计工具,支持XPDL2.0标准的流程XML模型和BPEL标准。业务分析人员和技术开发人员可以同时在该设计环境中进行团队协作。AWS平台的流程建模方式提供了基于纯Web和客户端Studio两种双向兼容的工具,无论采用哪种,都可以时时联机到运行服务器,对运行的模型进行版本管理和在线优化。
AWS的流程建模可支持至顶而下、逐层深入的建模方法,不仅支持用于流程执行的BPM模型,还以利用建模工具从业务师角度对企业价值链、流程区域、流程地图、子流程进行立体的梳理,继而成企业流程的梳理模型和执行模型。
应用建模
探讨企业通过技术来改善流程,主要有两种方法:一种是通过集成和授权来驱动传统的遗留应用系统;另一种是利用现代的BPM系统执行BPM应用。在BPM系统中,流程即为应用程序,这种可理解为流程所定义的每个步骤视为个人或其他应用系统所执行的任务,更加明确的说BPM应用包含了流程和应用程序两部分。在中国,大多数集团企业或行业客户IT建设尚处于初级磨合阶段,大量BPM应用需要进行设计或重建,AWS的应用建模工具和引擎能够为交付每个步骤的应用程序提供全过程的设计工具和执行环境。
值得关注的是AWS借助了MDA(Model Driven Architecture,模型驱动架构)技术,实现了业务应用需求与软件开发技术的分离,让编程技术人员有更多的时间关注在用户需求与业务敏捷性,不必考虑实现细节。透过AWS的MDA模型架构,可以让一个软件应用可视、可控的通过模型组合起来,并随时可以重新进行组合。在AWS所表达的业务系统中,应用就是由看得见、摸的着的系列模型组合而成的,大大降低了应用功能(非流程)的交付周期和难度,使经过简单培训的技术人员也能高质量、高效率的设计出足够复杂的业务应用来。同时AWS的建模工具支持与Eclipse(java编程环境)的集成,具备简单Java编程经验的设计者可通过扩展各种事件接口实现更复杂的业务逻辑。
自动化
在BPM系统中,AWS将重复的、无增值价值的活动由触发器逻辑自动完成,而“人工任务”是最重要也最有价值的交互活动,“人工任务”在实现流程自动化的一大挑战是如何让当前任务工作者知道 “接力赛的下一棒”,负责这一环节的机制在AWS中被称为“参与者路由方案”。合适的参与者路由方案可以迅速、准确的动态找到任务的处理者,而不必担心因组织、角色的调整而引起的流程调整,组织是为流程自动化服务的。不仅支持按角色、上下关系的参与者路由方案,AWS平台为满足复杂业务、组织结构(例如矩阵式、多维矩阵式组织结构)提供了二十余种常用路由方案和规则表达,灵活满足90%以上的流程自动化路由需求,当不能满足特殊的流程自动化需求时,AWS提供了可自定义扩展的Java接口来编程实现。
应用整合
通过适合的技术可以将外部应用系统的身份、局部应用、业务互交、数据等整合到一起,AWS平台为实现集成提供了开放的工具、产品和技术,通过AWS平台实现集成的几种常见模式:
⊕ 身份被集成:登录状态被三方Portal门户掌管
⊕ 集成身份:登录状态由AWS Portal掌管,整合其他Web应用
⊕ 数据交换:流程中将请求/结果放入ESB企业服务总线或JMS队列
⊕ 协同外部系统数据:流程中读写外部数据(XML、WebServices、DB、Other)
⊕ 协同外部文件格式:流程表单与常用文件格式的转换(Word、Excel、XML、PDF)
⊕ 协同外部沟通平台:流程与外部通讯技术的集成(短信、MSN、EMail、RTX)
⊕ 协同外部Web界面:流程中调用外部Web应用界面(SSO、URL Binding)
⊕ 外部启动/执行AWS流程:在三方外部系统执行AWS流程(SDK API、WebServices)
⊕ 协同外部流程/状态:由AWS流程触发外部系统流程或更改数据的状态(API、WebServices、DB)
业务活动监控(Business Activity Montior,BAM)平台 BAM提供了对业务绩效指标的实时访问,以改进业务运作的速度和效率,并将这些变化和趋势由一系列的图形仪表动态的展现给用户。BAM能够让高管人员以可视化的方式从自己Web Portal上监控业务或流程的“关键指标”(Key Performance Indicator,简称 KPI),AWS平台为实现对流程、变化的业务数据进行时时监控提供了平台级支持。在AWS BAM平台中预设了十余个流程绩效和运行状态的监控,通过Adobe Flex技术将数据动态推送到Web客户端,在实施项目案例时也可根据BAM提供的接口快速封装成自己的业务仪表盘,并通过统一的授权机制将仪表部署给特定用户。
流程管理
除了提供各种度量和绩效指标监控,AWS还为流程管理员提供流程运行实例和任务运行实例的管理,能够对各类实例进行跟踪、转移、停止等相关管理。对流程运行数据提供丰富的统计分析和模型报告。AWS为领导监控全部流程或管辖范围内的流程实例提供了管控查询工具,该工具可以按条件查询到超时异常或符合条件的流程实例,进而打开流程跟踪图和用户表单界面,实现对系统流程运行的管控监督过程简单、透明化。
通过AWS报表工具,流程管理人员可以对任意系统BO数据(用户业务数据)的产生过程进行反向流程跟踪(任务追溯),最终可直达用户表单界面。亦可利用一些特殊的流程管理工具、特性实现非常规需求(例如任务超时绩效统计、表单用户数据版本快照、任务工作交接等)。
客户端
AWS Portal Server为企业用户访问散落各处的Web应用、信息、数据提供了统一的入口,并为BPM用户提供了简洁而高效的流程交互功能,使得流程参与者可以通过集成的入口完成所有任务或对历史任务进行查询、跟踪。
流程优化
适应企业的管理变化是BPM的主要任务,AWS适应变化的能力是所有BPM软件所不及的,这主要取决于AWS在一开始就采用了MDA架构,这一技术使得流程模型和其他业务模型的设计和执行在同一个统一的平台上,并抽取了通用的程序逻辑为丰富的规则表达式,使经过培训的普通人员即可完成流程的优化。使业务人员能够所见即所得,而流程设计人员可以随时在线调整和优化正在运行的流程模型或进行版本管理,并且使这一过程只需要轻点鼠标即可完成,真正实现了企业对战略规划和业务变化的敏捷响应。
④ 什么是 Amazon DynamoDB
DynamoDB 是Amazon(亚马逊)最新发布的 NoSQL (指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。)。DynamoDB是一个性能好、可靠高且具有可扩展性的 NoSQL 云数据库服务,DynamoDB集15年分布式非关系性数据库开发之精粹,又通过内部使用考验,是AWS团队精心打造的产品。
⑤ 请教用AWS的C++版SDK开发所遇到的问题,在线等
通过ARM交叉编译器可通过静态库的方式在Android平台上执行本地C++程序,但是未来在正式发布时可能会因为权限等种种问题而不发运行,但是理论上Android支持不支持C++是Google自己来决定的,毕竟老对手Symbian C++发展了近20年,而微软Windows CE也历经了13年,所以Google不会拿自己平台的安全问题开玩笑。
⑥ 过去两年,亚马逊云在中国都做了些啥
自从2013年底AWS亚马逊云宣布中国区域云计算平台服务开始有限预览服务以来,业界一直都很关注亚马逊云在中国的进展。在亚马逊AWS正式推出商用服务之前,业界普遍认为这个真空期是其它云服务厂商在中国发展的绝佳窗口期。看起来过去的两年中,亚马逊云在中国市场似乎没太多作为,事实是这样的么?
掘金中国企业“走出去”大市场
在深圳的TCL通讯科技控股有限公司移动互联网新兴业务中心总经理李友林说,TCL要在海外选云服务供应商,选来选去没的选,只有选亚马逊云。为什么呢?
先说TCL如何在海外用AWS亚马逊云服务。首先,TCL与AWS亚马逊在海外市场属于深度合作,特别是在FOTA(Firmware Over-the-Air ,移动终端空中下载软件升级技术)方面。TCL向海外用户推送手机的固件更新就是使用AWS的云服务及其技术架构,每年通过FOTA更新的海外用户约在1000万量级以上。其次,TCL的海外移动增值服务也依托于AWS的云服务及其CloudFront内容分发CDN服务,目前TCL海外手机应用商店的月APP下载量已经突破1000万,每个月的下载量以20%的速度增长。第三,TCL根据不同的国家为用户免费提供2G到5G不等的存储空间,也是通过AWS云服务方式实现的。个人云业务刚刚开始,将很快会达到很高的量级。目前TCL采用了亚马逊云在亚太两个服务节点、北美两个服务节点、欧洲一个服务节点以及在南美和澳洲各设有一个CDN节点。
那么,为什么TCL要在海外市场选AWS亚马逊云服务呢?一个最重要的原因在于AWS亚马逊云的销售模式和技术服务模式。负责TCL客户的AWS客户经理介绍说,AWS亚马逊云在中国的客户经理同时负责中国云服务和海外云服务的服务,并面向客户同时负责中国与海外的技术支持服务。其他的国际云服务厂商都是各个国家市场分开来单独承担销售任务,各个国家市场独立核算。AWS对于中国客户,无论是国际还是中国的服务需求,中国的客户一个电话打到中国的客户经理那就能解决问题。
很多中国企业在“走出去”的过程中,向海外云服务公司采购了当地的云服务。可一旦涉及到当地的云服务技术支持,或者语言不通或者文化上不理解等,造成中国企业海外上“云”的极大困难。而AWS亚马逊云从基因上就解决了这些问题,这就是李友林说的“选来选去没的选”的重要原因,实际上很多中国企业走出去的过程中选择亚马逊云,都是因为同样的原因。
让中国创业者裂变式增长
来自广州的Mobvista是一家成立于2013年的创业公司,从成立到现在主要有两块业务,一是全球移动网络广告分发,二是海外游戏发行。在过去两年多的时间中,该创业公司可以说是经历了裂变式的发展:从一开始的4个人到现在250人以上,在香港、广州、北京以及美国都设有办公室,还准备在东南亚和印度开设办公室。Mobvista目前服务的广告主包括了网络、阿里巴巴、360、91助手等在内的国内互联网公司以及各类游戏公司等。
Mobvista联合创始人、CTO 黄伟坚表示,选用AWS亚马逊云要的原因是随着业务的发展,整个系统架构越来越复杂,针对每一次比较大的技术架构升级,AWS亚马逊云都能提供相应的解决方案。以Mobvista的移动广告业务为例,其流量覆盖了全球236个国家和地区,每天的移动广告展现量为100亿次左右,点击量在1亿次到2亿次,通过转化流程每天激活量在百万级别。自公司成立以来,Mobvista经历了三次大的系统架构升级,分别对应系统承载点击量达到100万次、1000万次和1亿次三个节点。
每一次系统架构升级的时候,一方面Mobvista自己会去研究、组合、调研和测试云服务,另外一方面AWS亚马逊云也给出了专业性的建议,能根据业务场景相应建议如何搭建业务架构。Mobvista曾想尝试用机器学习,AWS亚马逊云专门派了一个机器学习专家做了两场介绍,后续还不停地邮件沟通。“这是我们选择AWS亚马逊云一个非常重要的原因,每一次业务架构的升级,AWS丰富的产品线都能满足我们在技术上的诉求。此外,AWS后台自动化程度很高、技术文档做得很全、技术支持也做得挺不错,整个云服务用起来非常顺畅。”
AWS亚马逊云让Mobvista的广告延迟性维持在非常低的水平。广告本身是一个点击和跳转的行为,用户点了广告后就会跳转到Mobvista的服务器,再跳转到真正要去的页面或者是购买页面。无论用户在世界哪个地区,Mobvista都可以把用户从点击一个广告到跳转到服务器的用时控制在200毫秒以内,这与AWS亚马逊的全球部署紧密相关。”对创业公司来说是一个非常快的起步过程,前提是云服务能提供非常稳定可靠的支持才行,到了我们这个量级对系统的稳定性、可靠性要求非常高。”
借势物联网、中外一把抓
物联网应用通常会产生海量数据存储,因为不论是设备端现有的诸多传感器,还是传感器在控制过程中,都会产生海量数据。在大数据的时代,很多设备造商会把数据存储交给云服务,之后再做数据分析。“AWS亚马逊云提供了相当稳定的IO效果。我们在其他平台上也试用过,当流量增长之后数据库的品质就大幅度下滑了,下滑的部分主要是因为系统的IO效果不足,所以导致在响应和体验方面都很差的效果。”艾拉物联中国区技术总监杨闽钟如是说。
实际上物联网是一个万物互联的基础设施,物联网更需要全球化的部署及高稳定、高可靠、高可用性。艾拉物联于2010年成立于美国硅谷,2014年5月份在中国深圳成立了办事处,艾拉物联是AWS亚马逊云中国有限预览版的用户之一。公司联合创始人之一Adrian Caceres,曾在亚马逊126实验室工作过,是四代Kindle的架构团队成员之一。另外一位联合创始人Tom Lee是斯坦福教授,在斯坦福任教22年并主导开设了世界上第一门物联网IoT课程。
杨闽钟表示,艾拉物联是一个有着全球化战略的公司,在美国和中国都有自己的团队。很多美国大品牌生产的产品其实都是针对中国市场的,当这些美国品牌公司听说艾拉物联能在中国提供本地的云服务,都非常高兴,这是因为这些产品在真正上市之前都需要做测试。反过来,很多中国厂商想做OEM产品再卖给国外的客户,通过艾拉物联的品牌及其在全球的支持网络,很容易扩张海外的业务。现在艾拉物联除了在中国和美国外,还将在欧洲搭建平台。AWS亚马逊云为艾拉物联提供IaaS层,艾拉物联在此基础上向客户提供自己的PaaS开发层。
“我们预计未来物联网上有500亿的设备,很多平台都面临着如何形成一个系统而不是碎片化的状态。把设备联上网了,后续将产生很多问题。新功能如何更新?产品设计出来后,需求发生了变化怎么办?我们经常说在IoT行业里没有水晶球,没有人会知道在一年后或者是3年、5年后整个市场会变成什么样。一个灵活的平台可以让自身随着需求变化而迅速改变。”当AWS亚马逊云在中国开放有限预览后,艾拉物联迅速加入。
AWS亚马逊云中国华南区、西南区团队负责人黄皓介绍说,AWS亚马逊云在全球除中国外是一个统一的账户,用户无论在哪个国家使用了云服务,都是通过一个统一的账户进行管理。而中国相对独立,单独设置了一个账户进行区分。因此,AWS亚马逊云的全球化管理相当简单、灵活。
上述三个企业的经历表明了AWS亚马逊过去两年在中国市场的积极布局与推进,其中AWS中文支持服务的推出极大推进了AWS亚马逊云针对中国企业的销售。2014年底,AWS亚马逊云面向中国市场的有限预览客户推出了中文技术支持(AWS Support)服务,提供快速响应客户需求的专业服务团队,实现全球覆盖、全时区、24x7x365 全年无休的客户服务。客户使用AWS Support服务,无需签订长期的合同,而是按照实际使用时间付费,而且所有级别的 AWS Support 均为供不限次数的案例支持。
AWS的人士告诉记者,现在AWS亚马逊云在中国有几百人的技术销售团队,专门负责针对中国企业的全球化云服务需求及中文技术支持。可见在过去的两年中,AWS亚马逊云在中国也没闲着,而是积极拓展业务,曲线进入中国市场。随着与宁夏政府合作数据中心工程的推进, AWS亚马逊云全面进入中国市场已经指日可待,届时将给中国云计算市场带来多大冲击?套用贵州大数据的一句推广语:“人在干,云在算”!
⑦ 基于AWS开发编译的平台使用的是什么编译环境
开始前 先强烈建议 登录控制台走一遍亚马逊的引导流程,并用nodejs版 在你ubuntu上跑一边,把策略文件生成了。并了解如何创建事物(设备)
文档:https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html
当前版本:
aws-iot-device-sdk-cpp: Release version 1.3.0
Openssl 版本: 1.0.2d
gcc:4.8.3(需支持c++11)
项目AWS IOT C++SDK git:
https://github.com/aws/aws-iot-device-sdk-cpp/tree/release
⑧ 为什么选择AWSAWS有哪些认证与考试
大家知道亚马逊的一个基本原则是不会去评论竞争对手,这是公司的要求。用户在选择云服务商的时候的风险与买产品是不太一样的,应该要低一些。因为买产品,基本上是一锤子买卖,三年之内软硬件不太会换的。但是云服务却不一样,你任何时间都可以换。这个服务到底好不好,最好亲身去体验一下。亚马逊AWS会提供一个Free
Usage Tier免费套餐服务,大家可以试一下。如果要做横向比较的话,可以从几个方面来看:
第一,云服务商的运营经验和品牌。
第二,技术。技术包括两个维度,一是技术的广度,你要的技术他有没有,二是技术的深度,某一个技术做得怎么样,这是需要去评估的,而不仅仅去看产品名字、服务名字有可以了。比如同样叫RDS,但RDS与RDS之间的差别蛮大的。同样的虚拟主机,差别也是蛮大的。
第三,服务,云计算是作为一个服务而不是产品提供了,因此服务商的服务能力和品质直接影响到用户的体验。
第四,价格。各服务商的价格有高有低,还是需要你自己去比较。
关于认证考试培训的问题,这个很有意思的问题,为什么呢?因为大家知道如果一个平台的使用量越来越多,平台认证的价格会越来越高,我们现在看到AWS的使用量增长非常快,而且在市场上应用也非常广,所以这个认证是会挺有市场。AWS认证目前按照三个不同的角色来划分,比如说你是开发者,我们是有开发人员认证。如果你是一个架构师,那我们架构师认证。如果你是一个做运维的,我们有运维的认证。
同时在级别主要分为三个,入门级就是初级(Associate),中级叫专家级(Professional),高级叫大师级(Master),详见这里。
如果你想更系统的了解AWS的服务,你可以参加一些AWS的培训,目前国内没有正式推出,但是应该快会推出。国内培训团队推出了一个免费的培训课程AWSome
Day,建议大家有机会就去参加。(InfoQ注:6月25日AWSome Day将在成都举行,欢迎报名。)
关于认证考试,这个认证考试是机考的,要到专门的考点去考。北京的考点是在魏公村附近,这个具体的地点在注册考试时能看到。
⑨ 如何用aws完成 maprece program
大数据的时代, 到处张嘴闭嘴都是Hadoop, MapRece, 不跟上时代怎么行? 可是对一个hadoop的新手, 写一个属于自己的MapRece程序还是小有点难度的, 需要建立一个maven项目, 还要搞清楚各种库的依赖, 再加上编译运行, 基本上头大两圈了吧。 这也使得很多只是想简单了解一下MapRece的人望而却步。
本文会教你如何用最快最简单的方法编写和运行一个属于自己的MapRece程序, let's go!
首先有两个前提:
1. 有一个已经可以运行的hadoop 集群(也可以是伪分布系统), 上面的hdfs和maprece工作正常 (这个真的是最基本的了, 不再累述, 不会的请参考 http://hadoop.apache.org/docs/current/)
2. 集群上安装了JDK (编译运行时会用到)
正式开始
1. 首先登入hadoop 集群里面的一个节点, 创建一个java源文件, 偷懒起见, 基本盗用官方的word count (因为本文的目的是教会你如何快编写和运行一个MapRece程序, 而不是如何写好一个功能齐全的MapRece程序)
内容如下:
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.maprece.Job;
import org.apache.hadoop.maprece.Mapper;
import org.apache.hadoop.maprece.Recer;
import org.apache.hadoop.maprece.lib.input.FileInputFormat;
import org.apache.hadoop.maprece.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class myword {
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
public static class IntSumRecer
extends Recer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
public void rece(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println('Usage: wordcount <in> <out>');
System.exit(2);
}
Job job = new Job(conf, 'word count');
job.setJarByClass(myword.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumRecer.class);
job.setRecerClass(IntSumRecer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
与官方版本相比, 主要做了两处修改
1) 为了简单起见,去掉了开头的 package org.apache.hadoop.examples;
2) 将类名从 WordCount 改为 myword, 以体现是我们自己的工作成果 :)
2. 拿到hadoop 运行的class path, 主要为编译所用
运行命令
hadoop classpath
保存打出的结果,本文用的hadoop 版本是Pivotal 公司的Pivotal hadoop, 例子:
/etc/gphd/hadoop/conf:/usr/lib/gphd/hadoop/lib/*:/usr/lib/gphd/hadoop/.//*:/usr/lib/gphd/hadoop-hdfs/./:/usr/lib/gphd/hadoop-hdfs/lib/*:/usr/lib/gphd/hadoop-hdfs/.//*:/usr/lib/gphd/hadoop-yarn/lib/*:/usr/lib/gphd/hadoop-yarn/.//*:/usr/lib/gphd/hadoop-maprece/lib/*:/usr/lib/gphd/hadoop-maprece/.//*::/etc/gphd/pxf/conf::/usr/lib/gphd/pxf/pxf-core.jar:/usr/lib/gphd/pxf/pxf-api.jar:/usr/lib/gphd/publicstage:/usr/lib/gphd/gfxd/lib/gemfirexd.jar::/usr/lib/gphd/zookeeper/zookeeper.jar:/usr/lib/gphd/hbase/lib/hbase-common.jar:/usr/lib/gphd/hbase/lib/hbase-protocol.jar:/usr/lib/gphd/hbase/lib/hbase-client.jar:/usr/lib/gphd/hbase/lib/hbase-thrift.jar:/usr/lib/gphd/hbase/lib/htrace-core-2.01.jar:/etc/gphd/hbase/conf::/usr/lib/gphd/hive/lib/hive-service.jar:/usr/lib/gphd/hive/lib/libthrift-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-metastore.jar:/usr/lib/gphd/hive/lib/libfb303-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-common.jar:/usr/lib/gphd/hive/lib/hive-exec.jar:/usr/lib/gphd/hive/lib/postgresql-jdbc.jar:/etc/gphd/hive/conf::/usr/lib/gphd/sm-plugins/*:
3. 编译
运行命令
javac -classpath xxx ./myword.java
xxx部分就是上一步里面取到的class path
运行完此命令后, 当前目录下会生成一些.class 文件, 例如:
myword.class myword$IntSumRecer.class myword$TokenizerMapper.class
4. 将class文件打包成.jar文件
运行命令
jar -cvf myword.jar ./*.class
至此, 目标jar 文件成功生成
5. 准备一些文本文件, 上传到hdfs, 以做word count的input
例子:
随意创建一些文本文件, 保存到mapred_test 文件夹
运行命令
hadoop fs -put ./mapred_test/
确保此文件夹成功上传到hdfs 当前用户根目录下
6. 运行我们的程序
运行命令
hadoop jar ./myword.jar myword mapred_test output
顺利的话, 此命令会正常进行, 一个MapRece job 会开始工作, 输出的结果会保存在 hdfs 当前用户根目录下的output 文件夹里面。
至此大功告成!
如果还需要更多的功能, 我们可以修改前面的源文件以达到一个真正有用的MapRece job。
但是原理大同小异, 练手的话, 基本够了。
一个抛砖引玉的简单例子, 欢迎板砖。