热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Oozie】Oozie企业级案例分析及实现

1、需求分析流程:将Hive表中的数据进行分析,将分析结果存储到hdfs上,然后用Sqoop将hdfs上的分析结果导出到mysql表中&#

1、需求分析


流程:将Hive表中的数据进行分析,将分析结果存储到hdfs上,然后用Sqoop将hdfs上的分析结果导出到mysql表中,前端通过查询mysql表进行数据展示。
Oozie构成:需要两个Action,一个是hive action,一个是sqoop action,workflow中的start节点进入hive action,hive action执行成功进入sqoop action,sqoop action执行成功到达end,有任何地方出错进入error。


2、测试SQL语句

hive (default)> select id, account, password, INPUT__FILE__NAME from user_hive;

OK
id account password input__file__name
1 admin admin hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
2 pu 12345 hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
3 system system hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
4 zxh zxh hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
5 test test hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
6 pudong pudong hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
7 qiqi qiqi hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
8 beifeng beifeng hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
9 xuanyu xuanyu hdfs://hadoop-senior.ibeifeng.com:8020/user/hive/warehouse/user_hive/part-m-00000
Time taken: 30.244 seconds, Fetched: 9 row(s)

3、SQL脚本select-user.sql

-- drop table tmp_user
drop table if exists default.tmp_user ;
-- create table tmp_user
create external table default.tmp_user like user_hive location '${OUTPUT}';
-- create table default.tmp_user like user_hive location '/user/beifeng/oozie/datas/wf-user-select/output';
-- load data to tmp_user
insert into table tmp_user
select id, account, password
from user_hive
where id >= 15 and account like 'beif%' ;

4、配置文件hive-site.xml

此文件也需要放入apps目录下。



javax.jdo.option.ConnectionURLjdbc:mysql://hadoop-senior.ibeifeng.com:3306/metadata?createDatabaseIfNotExist=trueJDBC connect string for a JDBC metastorejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverDriver class name for a JDBC metastorejavax.jdo.option.ConnectionUserNamerootusername to use against metastore databasejavax.jdo.option.ConnectionPassword123456password to use against metastore databasehive.cli.print.headertrueWhether to print the names of the columns in query output.hive.cli.print.current.dbtrueWhether to include the current database in the Hive prompt.hive.fetch.task.conversionminimalSome select queries can be converted to single FETCH task minimizing latency.Currently the query should be single sourced not having any subquery and should not haveany aggregations or distincts (which incurs RS), lateral views and joins.1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only2. more : SELECT, FILTER, LIMIT only (TABLESAMPLE, virtual columns)

5、配置文件job.properties

nameNode=hdfs://hadoop-senior.ibeifeng.com:8020
jobTracker=hadoop-senior.ibeifeng.com:8032
queueName=default
oozieAppsRoot=user/beifeng/oozie-apps
oozieDataRoot=user/beifeng/oozie/datasoozie.use.system.libpath=trueoozie.coord.application.path=${nameNode}/${oozieAppsRoot}/wf-user-select
start=2015-10-15T00:00+0800
end=2015-10-26T00:00+0800
workflowAppUri=${nameNode}/${oozieAppsRoot}/wf-user-selectoutputDir=wf-user-select/output

6、配置文件workflow.xml

${jobTracker}${nameNode}${nameNode}/${oozieAppsRoot}/hive-select/hive-site.xmlmapred.job.queue.name${queueName}OUTPUT=${nameNode}/${oozieDataRoot}/${outputDir}${jobTracker}${nameNode}mapred.job.queue.name${queueName}export --connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test --username root --password 123456 --table my_user --num-mappers 1 --fields-terminated-by "\t" --export-dir /user/beifeng/oozie/datas/wf-user-select/output Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]


7、配置文件Coordinator.xml

${workflowAppUri}jobTracker${jobTracker}nameNode${nameNode}queueName${queueName}


推荐阅读
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 1.创建目录mkdir-phomerocketmqnamesvr1data&&mkdir-phomerocketmqnamesvr1log&&mkdir-phomerocketm ... [详细]
  • 本文详细介绍了如何在 Android 应用中获取系统的版本号,包括具体的应用场景和实现步骤。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
author-avatar
报告大王报报报报告大王
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有