开发者使用文档和场景汇总.docx_第1页
开发者使用文档和场景汇总.docx_第2页
开发者使用文档和场景汇总.docx_第3页
开发者使用文档和场景汇总.docx_第4页
开发者使用文档和场景汇总.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开发者使用文档和场景汇总 系统名称数据平台用户指南 项目负责人DP in DP作者数据平台团队文档提交日期2014年4月10日 修改记录No修改后版本号修改内容简介修改日期修改人10.1 初始版本,使用Data.dp和现有的开发流程2014/4/10张翼2 0.2传输系统替换成galaxy.dp,其他部分做了补充和优化 2014/6/3张翼 3 0.3 新增后端日志入库流程 2014/7/4许景楠 1. 开发准备1.1 组账号申请1.2 熟悉开发环境3. 开发程序3.1 开发测试DOL3.2 开发测试MapReduce Job4. 程序上线过程4.1 程序发布BU开发人员:4.2 调度配置4.3 同步表结构4.4 预跑数据5. 数据传输5.1 数据导入(MySQL, SQLServer 到 Hive)5.1.1 新增传输5.1.2 表结构变更处理5.2 后端日志接入(后端日志 到 hive)5.2.1 日志打印数据平台对接入的后端日志有一些规范,具体详见后端日志规范。后端日志规范包括内容规范和格式规范,格式规范通过日志打印工具marin加以保证。 后端日志内容规范 后端日志格式规范 日志打印工具marin5.2.2 申请后端日志入库到hdfs5.2.3 测试环境下测试 建立线上组帐号目录和产品目录 生成ETL任务需要的配置文件并建表 测试ETL任务5.2.4 任务发布 配置文件发布 线下表同步到线上5.2.5 任务配调度 配置doCheck任务 ETL任务配置 任务预跑5.3 数据导出(Hive 到GP Report, GP Analysis)6. 附录6.1 DOL开发参考6.1.1 参考资料6.1.2 运行方式6.1.3 时间格式6.1.4 velocity中的字符串比较6.2 MapReduce开发参考6.2.1 参考资料6.2.2 新手指南6.2.3 进阶指南6.2.4 本地测试6.2.5 伪分布环境提交1. 开发准备1.1 组账号申请图1-1按图1-1点击用户组权限申请,进入组大众点评工作流平台帐号申请界面,按界面提示填写必要信息,提交之后在”我发起的流程”中查看流程状态。组帐号申请通过之后,您将收到如下邮件:图1-2如邮件遗失,您也可以通过以下操作获取密码:图1-3申请权限之前请先了解需要使用到的表,在申请界面中填写相关信息。如暂时不确定需要使用哪些数据,也可以后续申请。原则是后续开发中要使用到的数据必须先通过权限申请。开发环境建表权限请邮件至进行单独申请。1.2 熟悉开发环境请先登录跳板。开发环境的IP为4, 使用组帐号登录开发机器:ssh $线下组帐号名称4 -p58422进入组账号的HOME目录(cd),创建程序目录(如果已经创建,则次步可以省略),格式:$HOME/$线上组帐号名称/$产品或项目名称,其中”产品或项目名称“为可选,各业务线按需创建, 在”产品或项目名称“目录下,用户放置程序或DOL注意:开发环境以Hadoop作为认证方式,每次登录拿到的ticket有效期为一天,如出现执行hive,hadoop失败,请重新登录!2. 典型用户场景1. 数据导入:可选步骤;如果有需要的数据没有导入,可以使用Galaxy的传输工具配置导入作业(具体使用请参考5.1)2. 查询主数据,两个目的:a. 查询程序使用的数据是否都已经导入HIVEb. 查询如何使用模型数据 (请点击链接访问新的主数据系统)3. 开发程序:开发DOL或MapReduce作业,并在开发环境测试DOL或MapReduce程序(具体使用参考3)4. 程序发布:程序发布到git(具体使用参考4.1)5. 配置调度:在调度系统中配置程序,定时运行程序(具体使用参考4.2)6. 同步表结构:从开发环境同步表结构,并在线上建表(具体使用参考4.3)7. 预跑数据:可选步骤;两个目的:a. 在线上验证作业正确性b. 补历史数据(具体使用参考4.4)8. 数据导出:可选步骤;将数据从Hive导入GP Report或是GP Analysis(具体使用参考5.2)3. 开发程序3.1 开发测试DOLDOL的命名规范:组账号.业务划分.表名.dol例:dwdev.dp.dpdim_dp_shop.dolDOL程序由Hive的配置和SQL组成,开发完DOL程序后需要将它放入对应的”产品或项目“目录中,之后可以使用以下命令在开发环境中进行测试:sun velocity -g 线上组账号名称 -p 产品或项目名称 -dol DOL文件名 -d 时间参数使用示例:sun velocity -g warehouse -p dol -dol dwdev.dp.dpdim_dp_shop.dol -d 20131123.2 开发测试MapReduce Job如果复杂的逻辑较难或无法使用Hive实现,用户可以自己实现MapReduce作业,开发完成之后将程序放入对应的”产品或项目“目录中,之后需要使用shell脚本或是python脚本封装程序启动的命令,shell脚本和python脚本的命名规范如下:shell脚本 - 组账号.业务划分.表名.sh python脚本 - 组账号.业务划分.表名.py例:shell脚本 - dwdev.dp.dpdim_dp_shop.sh pyhton脚本 - dwdev.dp.dpdim_dp_shop.py之后可以使用系列命令在开发环境中进行测试:shell脚本: sun shell -g 线上组账号名称 -p 产品或项目名称 -f demo.sh 用户参数python脚本: sun shell -g 线上组账号名称 -p 产品或项目名称 -f demo.py 用户参数关于如何开发一个DOL或MapReduce作业,请参考附录中的资料6.1 DOL开发参考6.2 MapReduce开发参考4. 程序上线过程4.1 程序发布BU开发人员:Step 1:Clone项目data_analysis (/datadp/data_analysis.git),创建自己的分支data_analysis项目的组织结构与调度机器上目录组织结构基本相同:/线上组账号名称/产品或项目名/gitep 2:加入自己的代码,push代码到仓库(如果没有push权限,请找模型同学:开通)Step 3:提交Pull Request,找模型的同学审核(请大家找自己对应的BU同学,或是赵宏),审核通过后会merge到master分支Step 4:登陆开发环境,发布程序登陆到开发机器上(4),运行下面的命令:sun publish -g group name其中group name对应data_analysis项目中的第一级目录名e.g. sun publish -g dwdev_online会把data_analysis项目中/dwdev_online/下的所有内容 传到调度机器的 /data/deploy/dwdev_online/目录下 DW开发人员:步骤同BU开发人员,两点有所不同:项目使用:/warehouse ) 同步命令:使用 sun publish -w 即可Step1. 初始化git配置 mac下使用要将/.ssh/id_rsa权限由默认改为400,否则clone会因权限太宽而失败 /.ssh/id_rsa内容要拷贝到的个人profile下 创建项目分支Step2. 加入代码, push代码到仓库 在预发环境测试,将dol代码跑通 用建表工具,在线上环境建表(建表工具会读取预发换环境下的表schema,建表到线上 http:/data.dp/halley/hive-tool.html),同时为各个列添加注释 加入dol文件代码到分支本地 warehouse/dol 将分支发布到gitlab Step3. 发起分支合并请求,找人review,通过后分支将合并到竹竿Step4. 发布dol,命令 sun publish -w (将warehouse所有的dol同步到线上)参考/bin/view/%E6%95%B0%E6%8D%AE%E5%B9%B3%E5%8F%B0/Warehouse%E9%A1%B9%E7%9B%AEGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E4.2 调度配置配置调度,填写此任务需要运行的线上帐号名称,以及产品名称可以为空,同时注明dol脚本名称;如果之前你已经将程序发布到了调度机器上,那么“基本配置”里面的绝大多数配置项系统会自动帮你填上,你只需要根据你的任务的实际情况修改其中的配置项即可如果是DOL的作业,系统会分析DOL依赖的原表,并在“前驱依赖配置”自动预填生成原表的任务,请确认依赖任务或加入新的前驱依赖任务 图3-2注:非dol job直接打开基本配置及前驱依赖配置,手工配置相关参数。4.3 同步表结构工具链接:http:/data.dp/halley/hive-tool.htmlStep1. 在右侧数据需要同步的表名点击“确定”按钮,主界面就会显示出表格和字段的相关信息 Step2. 如果是外部表,用户可以修改真实数据的路径,另外,我们要求用户补全表的注释和每个字段的注释,补全数据后点击“确定”按钮,系统会完成数据导入的过程4.4 预跑数据在查看任务页面(http:/data.dp/halley/task-view.html )找到对应任务,点击预跑按钮。 输入预跑时间段,开始时间和结束时间为左开右闭,有1天的偏移(小时级为1小时的偏移)下例为预跑2012-12-31的数据。5. 数据传输Galaxy系统链接5.1 数据导入(MySQL, SQLServer 到 Hive)5.1.1 新增传输Step 1: 数据源选择mysql, 找到需要导入的表,点击”新增传输链接”Step 2: 选择需要的“目标表类型”(如果是增量表,需要额外填写几项扩展信息),点击“保存”即可,系统会按照用户的配置自动创建wormhole任务,并把wormhole任务配置到调度系统上(每天启动一次)如果你是高级用户,需要修改传输任务的wormhole相关的配置或是任务的相关配置,你可以点击“获取SQL/传输/调度信息” 按钮,获取详细的信息,并在相应的部分中做出修改,修改完成后请点击“保存”,你的修改就会被保存下来5.1.2 表结构变更处理如果你的传输任务的原表的表结构发生变化(新增字段,或者是修改字段名称),你可以通过下面的流程自动处理目标表结构的修改和传输任务配置的变化,具体步骤如下:Step1. 在作业查询页面找到需要变更的作业,在目标数据介质的标签上(Hive标签上)点右键,弹出操作菜单,选择“修改”Step2. 如果字段发生变化,将跳出如下对话框,”点击保存”即可;你可以点击“获取SQL/传输/调度信息” 按钮,获取详细的信息,查看目标表结构和传输任务的变化5.2 后端日志接入(后端日志 到 hive)5.2.1 日志打印数据平台对接入的后端日志有一些规范,具体详见后端日志规范。后端日志规范包括内容规范和格式规范,格式规范通过日志打印工具marin加以保证。 后端日志内容规范后端日志内容规范定义了后端日志可能用到的公用字段 common keys,并对这些common keys的命名进行了规范,保证不同日志之间数据的一致性。 后端日志格式规范后端日志格式规范定义了后端日志在日志格式、传输、命名、存储上的规范,开发者只需要使用数据平台提供的日志打印工具marin,即可符合格式规范的内容。 日志打印工具marinMarin打印工具是用于保证后端日志格式规范的日志打印工具。请在代码里面加入marin打印工具,在测试后发布上线,这样就能将日志打印到线上服务器的/data/applogs/$business/logs/$fileName.log文件。业务方在定下需要打的字段后,请和模型的同学 jingnan.xu/ryan/yujing.zou/wenjuan.gong review一下。同时麻烦各位在 数据平台BU合作开发需求 上面登记一下需求5.2.2 申请后端日志入库到hdfs请发邮件给lantao.jin/jingnan.xu/ryan/yujing.zou/hong.zhao/wenjuan.gong,这一步是把线上服务器上已经打好的日志拉到hdfs上指定的路径INPUT_PATH。e.g.INPUT_PATH=$LOG_ROOT/dpods_log_mobile-location-service/$TO_PROCESS_DAY/$TO_PROCESS_HOUR这个路径将作为后续ETL任务的输入路径,需要在配置文件里面设置(配置文件可以通过工具自动生成)其中$LOG_ROOT=/user/hive/warehouse/bi.db,是固定的前缀dpods_log_mobile-location-service是由dpods_log_$APPLICATION_NAME组成$TO_PROCESS_DAY表示天,比如2014-06-01,这个字段必须有$TO_PROCESS_HOUR表示小时,比如08点,如果是按天产生的日志,这个字段没有一般情况不会碰到该路径被其他应用使用了,除非两个应用有相同的$APPLICATION_NAME,这种情况请联系lantao,修改hdfs上的路径,并请自行修改config文件INPUT_PATH里的$APPLICATION_NAME。请在邮件里面说明:该日志的主要作用打印周期,是天级还是小时级,目前我们大部分都是小时级入库应用的名称以及线上服务器的名称,如果有多台线上服务器,请说明日志文件在线上服务器的路径日志文件的名称后续lantao同学会通过blackhole工具帮忙把日志拉到hdfs。如果后续有服务器扩容或者缩容,请务必通知lantao/jingnan,否则我们不保证数据完整性。5.2.3 测试环境下测试这一步主要是执行ETL mapreduce任务,对原始日志进行解析转换,以便最后hive表使用。mapreduce 任务的输入路径即为前面的INPUT_PATH,输出路径为OUTPUT_PATH=$hive_home/dpdw_mobile-location-service_log/$TO_PROCESS_DAY/$TO_PROCESS_HOUR其中$hive_home在测试环境的值为/user/bipredeploy/warehouse/bi.db,表示写到线下,在线上环境的值为/user/hive/warehouse/bi.db,表示写到线上,这个前缀是固定的。dpdw_mobile-location-service_log是由dpdw_$APPLICATION_NAME_log组成。$TO_PROCESS_DAY, $TO_PROCESS_HOUR的含义与INPUT_PATH一样。一般情况也不会碰到该路径被其他应用使用了,除非两个应用有相同$APPLICATION_NAME,这种情况请自行修改配置文件的OUTPUT_PATH里的$APPLICATION_NAME。 建立线上组帐号目录和产品目录参考4.1程序发布,以自己的线下帐号登录4测试环境,Clone项目data_analysis (/datadp/data_analysis),在$HOME/data_analysis/目录下面,建立线上组帐号文件夹和产品文件夹。线上组帐号请咨询王冰,产品名用户自己定义,一般可以用应用名。e.g.以mobile-location-service应用为例,假设以dwdev帐号登录4,建立对应的组帐号和产品文件夹,如下:/data/home/dwdev/data_analysis/bicron/mobile-location-web其中/data/home/dwdev/data_analysis为$HOME/data_analysis路径,bicron为线上组帐号,mobile-location-service为产品名 生成ETL任务需要的配置文件并建表使用命令 sun marin -g 组帐号 -p 产品 -a 应用名称 -c 周期,产生ETL任务需要的配置文件,并自动在测试环境下建表。e.g.输入命令 sun marin -g bicron -p mobile-location-service -a mobile-location-service -c hour其中命令参数-g 对应组帐号 -p 对应产品 -a 为应用名称(可以和-p 的值一样) -c表示周期(hour表示小时/day表示天)执行完后会生成以下几个文件:config文件:dpdw_mobile-location-service_configbean文件:dpdw_mobile-location-service_bean.xml schema文件:dpdw_mobile-location-service_schema.xml建表文件:dpdw_mobile-location-service_log.sql其中bean文件和schema文件是执行ETL mapreduce任务需要的配置文件,用户不需要改。config文件用户根据需要进行修改,默认不用改。e.g. config文件INPUT_PATH=$LOG_ROOT/dpods_log_mobile-location-service/$TO_PROCESS_DAY/$TO_PROCESS_HOUROUTPUT_PATH=$hive_home/dpdw_mobile-location-service_log/$TO_PROCESS_DAY/$TO_PROCESS_HOURPROCESSOR=cessor.LzoSimpleProcessorMODE=tableVERSION=-SNAPSHOTSCHEMA=dpdw_mobile-location-service_schema.xmlBEANS=dpdw_mobile-location-service_bean.xmlPERIOD=hourdoLoad() while true do $HIVE_CMD -e use bi;alter table dpdw_mobile_location_service_log drop if exists partition(hp_stat_date=$TO_PROCESS_DAY, hp_stat_hour=$TO_PROCESS_HOUR);alter table dpdw_mobile_location_service_log add if not exists partition(hp_stat_date=$TO_PROCESS_DAY, hp_stat_hour=$TO_PROCESS_HOUR) location $OUTPUT_PATH; if 0 -eq 0 ; then break fi sleep 5 doneJOB_NAME=MARIN_LOG_mobile-location-service-$TO_PROCESS_DAY-$TO_PROCESS_HOUR其中INPUT_PATH/OUTPUT_PATH即ETL mapreduce 任务的输入路径和输出路径,一般不用改,除非路径已经被其他应用使用。PROCESSOR,MODE,VERSION,SCHEMA,BEANS,PERIOD,JOB_NAME都不需要改。doLoad函数是实现在ETL mapreduce任务跑完,将输出数据加载到hive中,除非目标表已经被其他应用使用,否则也不需要改。目标表名默认是根据APPLICATION_NAME生成的,如果该表已被其他人使用,请自行建表(sh $建表文件 $新的表名 )和doLoad函数里面的表名。在执行过程中输出相关提示信息:ETL输入检查:1. 如果打印日志还未拉到hdfs,会提示 hdfs input path not exist, ok. 此时输入路径没有问题。后续把日志拉到hdfs后即可使用2. 如果打印日志已经拉到hdfs,或者目标路径已经被其他数据使用了,会提示hdfs input path exist, please rename hdfs INPUT_PATH in config file,请自行判断INPUT_PATH是否被其他应用使用。ETL输出检查:1. hdfs output path not exist, ok.表示路径可用2. hdfs output path exist, please rename hdfs OUTPUT_PATH in config file,请自行判断OUTPUT_PATH是否被其他应用使用。hive建表检查:1. hive table not exist, ok. 表示目标表未建,ok2. hive table exist, please rename table name in config file,表示目标表已经建立,请自行判断目标表是否被其他应用使用。如果目标表未建立,命令会自动在测试环境建表,并提示用户通过建表工具将测试环境中的表同步到线上please syncronize the offline table dpdw_mobile_location_service_log to online using 建表工具标红的地方即默认建立的目标表名。至此,我们完成了生成ETL任务需要的配置文件并在测试环境下建表成功。 测试ETL任务使用命令sun jar -g data_analysis/组帐号 -p 产品 -c config文件 -t $time_stamp执行ETL mapreduce 任务。如果前面的配置没有问题,一般都是可以成功的。其中config文件即前面通过sun marin命令产生的config文件,-t参数后面跟的是一个时间戳,可以通过shell命令获得,比如 date +%s -d 2014-06-01 09:00:00 。需要注意的是,sun jar命令在ETL任务执行完成后会进行加载到hive的操作,即config文件里面的doLoad函数,所以请在执行之前确保hive里面目标表已经建立(默认通过sun marin命令即可,除非需要修改目标表名)可以通过在测试环境下执行hive命令,验证数据是否正确进到目标表里面。e.g.5.2.4 任务发布 配置文件发布参考4.1,先通过git push代码,merge后,执行命令sun publish -g 组帐号即可将所有文件发布到线上 线下表同步到线上通过建表工具将测试环境中的表同步到线上,因为是外部表,所以需要把路径中的bipredeploy改成hive,这样才能保证线上是有数据的。如下图5.2.5 任务配调度 配置doCheck任务此任务主要是为了检查blackhole是否已经将需要的日志数据拉到hdfs上的INPUT_PATH,具体可以参考下面的截图。需要修改的地方如下:任务的owner请改成自己。结果表名为bi.dpods_log_$APPLICATION_NAME_check_done,此时界面会提示错误,不用管它。由于表名不能带有-和大写字母,所以请在这里把$APPLICATION_NAME里面的大写字母改成小写,并用_替换-,其他地方的$APPLICATION_NAME不用改。周期根据实际情况选择日/时运行级别默认为低,如果任务很重要,请选择中或者高执行频率:小时级日志为0 5 * * * ? 天级任务为0 5 0 * * ?参数1为 sh /data/deploy/bicron/blackhole/check_done.sh参数2为 $unix_timestamp参数3为INPUT_PATH的路径的根目录,比如/user/hive/warehouse/bi.db/dpods_log_$APPLICATION_NAME,不包括$TO_PROCESS_DAY/$TO_PROCESS_HOUR保存后可以查看到新增加的任务ID和任务名称,后面配ETL任务会用到该任务ID和任务名称。如果doCheck任务有问题,请先检查线上服务器是否正常产生日志。如果日志正常产生,请再联系lantao看是否是blackhole在数据传输中有问题。 ETL任务配置此任务主要是为了通过调度每小时/每天执行ETL任务,自动将日志数据处理完加载到目标表中,具体参考下图配置。需要修改的地方:任务owner改成自己结果表名为bi.$结果表名周期/运行级别/执行频率和doCheck任务相同参数1为 sh /data/deploy/sun/bin/ivy.sh jar参数2为 -t $unix_timestamp参数3为 -c config文件 -g 组帐号 -p 产品注意在前驱依赖配置里面加上对 doCheck任务的依赖 任务预跑预跑主要有两个功能,1是补历史数据,2是测试线上任务是否能正常运行。操作如下:根据需要选择开始时间和结束时间,如果有问题,可以咨询hongdi.tang5.3 数据导出(Hive 到GP Report, GP Analysis)过程同数据导入部分;数据源选择hive其他数据传输任务请直接联系galaxy_user_,我们会进行支持6. 附录6.1 DOL开发参考6.1.1 参考资料Apache HIVE Language Manual Apache VTL Reference Apache Velocity User Guide Hive开发规范6.1.2 运行方式sun velocity:Arguments:-g Group. 线上组帐号名称 -p 可选参数,项目名称 -c Caculator name -d date input 传入时间,如果没有该参数,默认传入昨天 -dol dol filename,命名规范:组账号.业务划分.表名.dol ,如:badev.ad.dpmid_ad_contract.dol,命名注意文件相对于指定的dol目录,与-str冲突 -E user defined parameters -h short help -o only parse the dol and print sql 仅解析且打印 -s serverid: 5|6|7 (预留功能,暂时未使用) -tid scheduling task id 在配置任务时需要 -u user type: dwdev|bi (预留功能,暂时未使用) -str Text for dol 直接执行参数中的文本,与-dol冲突常用参数为-dol ,传入dol文件名称。-d ,传入时间参数。-str 执行传入文本。使用示例:sun velocity -g warehouse -p dol -dol dwdev.dp.dpdim_dp_shop.dol -d 20131126.1.3 时间格式目前有两种获取动态时间的方法:1. $env.FORMAT2. $dt.ACTION(ARGS) $env.FORMAT: FORMAT的具体展现有以下: YYYYMMDD (传入时间的年月日), 如select * from dual where hp_statdate=$env.YYYYMMDD : 传入当前时间的年月日,解析后 :select * from dual where hp_statdate=2013-07-31; YYYYMMDD_PND (在传入时间的基础上向前偏移N天) 如select * from dual where hp_statdate=$env.YYYYMMDD_P2D : 在传入时间的基础上向前偏移2天。0N=30. 解析后 :select * from dual where hp_statdate=2013-07-29; YYYYMMDD_PNM (在传入时间的基础上向前偏移N月,0N=12), YYYYMMDD_PNY (在传入时间的基础上向前偏移N年,0N=2), YYYYMMDD_YESTERDAY,YYYYMMDD_TODAY,YYYYMMDD_DEFAULT_HP_DT(昨天、今天、拉链表默认时间(30001231),不会受传入时间参数的影响) 如执行脚本通过 -d 传入一个过去的时间。canaan -dol test.dol -d 20130101 实际select * from dual where hp_statdate=$env.YYYYMMDD_YESTERDAY; 解析后为:select * from dual where hp_statdate=2013-07-31; YYYYMMDD_NND,YYYYMMDD_NNM,YYYYMMDD_NNY (在传入时间的基础上向后偏移N天、月、年) YYYYMMDD_PNDOW (DOW=DAY OF WEEK , 传入时间在这个星期的前一天 0N=10) 如select * from dual where hp_statdate=$env.YYYYMMDD_P2DOW;解析后:select * from dual where hp_statdate=2013-07-29; YYYYMMDD_PNDOM (DOM=DAY OF MONTH, 传入时间在这个月的前一天 0N=2) YYYYMMDD_PNDOY ( DOY=DAY OF YEAR, 传入时间在今年的前一天 0N=2) YYYYMMDD_PNDOWIM (传入时间的前一星期的那一天,如如果当天是2.22,则结果为2.14 0N=2) YYYYMM (传入时间的年月) YYYYMM_YESTERDAY(昨天的月份,不收传入时间影响),YYYYMM_TODAY (今天的月份,不收传入时间影响), 如select * from dual where hp_statdate=$env.YYYYMM_YESTERDAY; 解析后:select * from dual where hp_statdate=2013-07; canaan -d传入参数不影响。 YYYYMM_PND,YYYYMM_PNM,YYYYMM_PNY 0N=2 YYYYMM_NND,YYYYMM_NNM,YYYYMM_NNY 0N=2 YYYYMM_PNDOW,YYYYMM_PNM,YYYYMM_PNY,YYYYMM_PNDOWIM YYYY (传入时间的年份) YYYY_P1DOWIM,YYYY_P2DOY,YYYY_P1DOM,YYYY_P1DOW 0N=2 YYYY_NND,YYYY_NND,YYYY_NNY 0N=2 YYYY_PND,YYYY_PND,YYYY_PNY 0N 0)$sql#end6.2 MapReduce开发参考6.2.1 参考资料Hadoop权威指南 /a//file/d/0B94dklODGW9UMUhVczUtZ0Y3RTQ/edit6.2.2 新手指南对于完全没有使用过Hadoop的同学,我们推荐大家可以按照下面的步骤一步一步地去了解Hadoop系统,并尝试编写第一个Map/Reduce程序:Step 1. 初识Hadoop系统: /what-is-hadoop/hadoop-overview/ /common/docs/r1.0.3/index.html通过上面的2篇文章能够使大家对HDFS,MapReduce有一个概念上的了解Step 2. 搭建Hadoop的本地开发环境,编写第一个Hadoop Job:我们建议在Linux环境下开发Hadoop程序,因为Hadoop的产品环境只支持Linux,在Linux下的环境的安装和环境测试最为简单;而且Hadoop程序的单元测试只能运行在Linux环境下。我们有已经设置好环境,安装好相关软件和工具的CentOS 6.0的VMware的镜像,请发邮件向房明()对于第一个Hadoop程序,我们准备了两个候选的tutorial,大家可以从中任选一个: Word Count: /common/docs/r1.0.3/mapred_tutorial.html 天气数据分析分析:Hadoop权威指南(英文版下载地址见“6 其他信息”)第2章前3小节: 第1小节A Weather Dataset介绍了背景信息和天气数据文件的格式 第2小节Analyzing the Data with Unix Tools介绍使用Unix的工具如何去分析这些数据,以及它们的局限性 第3小节Analyzing the Data with Hadoop提供了完整的示例代码 如果想要深入了解系统的框架和MapReduce处理大规模数据的数据流,你可以进一步阅读第4小节Scaling OutStep 3. 了解HDFS,熟悉HDFS的常用命令: HDFS指南: Hadoop权威指南第3章前2小节 HDFS架构指南:/common/docs/r1.0.3/hdfs_design.html我们推荐先看第1篇资料,然后再看第2篇;第2篇的讲解比较深入和专业化,比较不容易看懂HDFS Shell Command List:http:/hadoop.apache.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论