大数据分析 es hive_使用Hive和iReport进行大数据分析

大数据分析 es hive

每个JJ Abrams的电视连续剧疑犯追踪从主要人物芬奇先生一个下列叙述情节开始:“ 你是被监视。 政府拥有一个秘密系统-每天每天每小时都会对您进行监视的机器。 我知道是因为...我建造了它。 “当然,我们的技术人员知道得更多。 庞大的电气和软件工程师团队需要花费多年的时间来制造如此高性能的机器,而预算却是无法想象的……或者不是吗? 等一下,我们有了Hadoop ! 现在,由于有了Hadoop ,我们每个人都可以成为Finch先生,预算不高。

在JCG文章“ Hadoop模式介绍-独立,伪分布式,分布式 ”中,JCG合作伙伴Rahul Patodi解释了如何设置Hadoop 。 Hadoop项目已经产生了许多用于分析半结构化数据的工具,但是Hive也许是其中最直观的工具,因为它允许具有SQL背景的任何人提交被描述为SQL查询的MapReduce作业。 Hive可以从命令行界面执行,也可以在服务器模式下运行,而Thrift客户端充当JDBC / ODBC接口,可以访问数据分析和报告应用程序。

在本文中,我们将设置一个Hive服务器,创建一个表,使用文本文件中的数据加载它,然后使用iReport创建一个Jasper Resport。 Jasper报表在Hive服务器上执行SQL查询,然后将其转换为Hadoop执行的MapReduce作业。

注意:我使用的是运行OpenSuSE 12.1 Linux且安装了MySQL 5.5的Hadoop版本0.20.205,Hive版本0.7.1和iReport版本4.5。

假设你已经安装了Hadoop的下载和安装蜂巢下面的蜂巢 入门维基指令。 默认情况下, Hive是在独立Hadoop模式下运行的CLI模式下安装的。

制作多用户Hive Metastore

默认的Hive安装使用derby嵌入式数据库作为其元存储。 Metastore是Hive维护我们要通过SQL访问的数据的描述的地方。 为了使metastore同时可以从许多用户访问,必须将其移动到独立数据库中。 这是安装MySQL Metastore的方法。

  1. 将MySQL JDBC驱动程序 jar文件复制到〜/ hive-0.7.1-bin / lib目录
  2. 更改〜/ hive-0.7.1-bin / conf目录中的文件hive-default.xml中的以下属性:
    <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hyperion/metastore?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description>
    </property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description>
    </property><property><name>javax.jdo.option.ConnectionUserName</name><value>foo</value><description>Username to connect to the database</description>
    </property><property><name>javax.jdo.option.ConnectionPassword</name><value>bar</value><description>Password to connect to the database</description>
    </property>
  3. 使用MySQL工作台或MySQL命令行实用程序使用latin1字符集创建架构。 如果Hive找不到模式,它将使用MySQL的默认字符集自行创建模式。 在我的情况下,这是UTF-8,并生成了jdbc错误。 如果要使用命令行实用程序,请键入:
    mysql> CREATE DATABASE  IF NOT EXISTS `metastore` DEFAULT CHARACTER SET latin1 COLLATE latin1_bin;
  4. 在命令提示符下键入Hive以输入Hive CLI并键入:
    hive> SHOW TABLES;
    OK
    testlines
    Time taken: 3.654 seconds
    hive>

    这将填充您新创建的metastore模式。 如果看到任何错误,请检查hive-default.xml配置,并确保您的数据库模式被命名为“ metastore”,其中latin1作为默认字符集。



现在让我们用一些数据填充Hadoop Hive

我们只创建两个名为file01file02的文本文件,每个文件包含:

file01
你好世界再见世界
大家好再见大家

file02
您好Hadoop再见Hadoop
大家好,大家再见

将这些文件从本地文件系统复制到HDFS:

$ hadoop fs -mkdir HiveExample
$ hadoop fs -copyFromLocal ~/file* /user/ssake/HiveExample

转到Hive CLI并创建一个名为testlines的表,该表将在字符串数组中包含每一行的单词:

hive> create table testlines (line array<string>) row format delimited collection items terminated by ' ';

将文本文件加载到Hive中:

hive> load data inpath "/user/ssake/HiveExample/file01" INTO table testlines;
hive> load data inpath "/user/ssake/HiveExample/file02" INTO table testlines;

检查测试行现在是否包含每行的单词:

hive> select * from testlines;
OK
["Hello","World","Bye","World"]
["Hello","Everybody","Bye","Everybody"]
["Hello","Hadoop","Goodbye","Hadoop"]
["Hello","Everybody","Goodbye","Everybody"]
Time taken: 0.21 seconds

现在我们有了一个包含数据的Hive,我们可以在端口10000中将其作为服务器运行,这通常是运行hive服务器的方式:

$ HIVE_PORT=10000
$ hive --service hiveserver

通过此设置,可能有多个Thrift客户端访问我们的Hive服务器。 但是,根据Apache Hive博客 ,多线程Hive功能尚未经过全面测试,因此每个Thrift客户端使用单独的端口和Hive实例更为安全。

创建“字数统计”报告

iReport 4.5支持配置单元数据源,因此让我们使用它来创建一个以配置单元服务器作为数据源运行的报表:

1.创建一个连接到配置单元服务器的数据源

2.使用报告向导生成报告

3.在“ HiveQL查询”输入框中键入以下内容:

select word,count(word) from testlines lateral view explode(line) words as word group by word

让我们简要解释一下上述查询的作用:

我们的源表“ testlines”表只有一个名为“ line”的列,其中包含字符串数组形式的数据。 每个字符串数组代表在导入文件“ file01 ”和“ file02 ”中找到的句子中的单词。

为了正确计算所有输入文件中每个不同单词的出现次数,我们必须将源表中的字符串数组“分解”为一个新单词,其中应包含每个单词。 为此,我们将“侧视图”与HiveQL命令“ explode()”结合使用,如上所示。

在上面的HiveQL查询中,我们创建了一个名为“ words”的新图标表,该表具有一个名为“ word”的列,其中包含从“ testlines”表的每个字符串数组中找到的所有单词。

4.单击…按钮以选择所有文件,然后单击下一步。

5.在设计器视图中,单击“预览”选项卡以执行HiveQL报告

这是我们的报告:

现在,您已经准备好构建使用熟悉的JDBC接口访问Hadoop数据的应用程序!

参考:我们的W4G合作伙伴 Spyros Sakellariou 使用Hive和iReport进行大数据分析


翻译自: https://www.javacodegeeks.com/2012/02/big-data-analytics-with-hive-and.html

大数据分析 es hive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java+jsp+网页制作,java+jsp+mysql网页制作总结(2)

错误&#xff1a;url通过get传递时汉字出错解决&#xff1a;url通过get传递时汉字会乱码&#xff0c;1.String name1request.getParameter("name");String name new String(name1.getBytes("ISO-8859-1"),"gbk");2.通过post传递参数错误&#x…

Redis聚类

本文是我们学院课程的一部分&#xff0c;标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外&#xff0c;您将在Redis命令行中乱七八糟。 接下来是更高级的主题&#xff0c;例如复制&#xff0c;分片和集群&#xff0c;同时还介绍了…

域策略禁用usb

文档及模板可在 http://pan.baidu.com/s/1qYTcjTy 下载 pro_usb_users.adm 此模板可禁用到 指定盘符&#xff0c;针对用户策略 pro_usb_computers.adm 此模板 针对计算机&#xff0c;一般只要它就好了。 可以从 3 个方面下手 adm 配置 文件。注册表usb驱动其实 adm配置文件&…

Redis分片

本文是我们学院课程的一部分&#xff0c;标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外&#xff0c;您将在Redis命令行中乱七八糟。 接下来是更高级的主题&#xff0c;例如复制&#xff0c;分片和集群&#xff0c;同时还介绍了…

Openstack入坑指南

什么是云计算 概念 云计算是一种基于互联网的计算方式&#xff0c;通过这种方式&#xff0c;共享的软硬件资源和信息&#xff0c;可以按需求提供给计算机和其他设备。用户不需要了解”云“中的基础设施细节&#xff0c;不必具有相应的专业知识&#xff0c;也无需直接控制。云计…

MATLAB如何用循环分割,利用Matlab进行分割提取浮游生物

我试图从扫描图像中提取浮游生物.大纲也不错,但是,现在我不知道如何提取图像,因此可以单独保存每个浮游生物.我尝试使用标签,但是有很多噪音,它标出了每一个规格.我想知道是否有更好的方法来做到这一点.这是我的代码&#xff1a;I imread(plankton_2.jpg);figure, imshow(I), …

第一个Python程序

在E:\Python 下新建一个hello.py文件&#xff0c;里面的内容是print(hello world) 进入命令提示窗格&#xff0c;输入E: 点击回车 输入 cd python 点击回车 输入Python hello.py 结果如图 转载于:https://www.cnblogs.com/lgqboke/p/5882049.html

20145219 《信息安全系统设计基础》第01周学习总结

20145219 《信息安全系统设计基础》第01周学习总结 教材学习内容总结 别出心裁的Linux命令学习法 1、Ubuntu快捷键 CTRLALTT:打开终端&#xff1b;CTRLSHIFTT&#xff1a;新建标签页&#xff1b;ALT数字N&#xff1a;终端中切换到第N个标签页&#xff1b;Tab:终端中命令补全&…

拉盖尔多项式 matlab,类氢原子的定态波函数

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp预备知识 球坐标系中的定态薛定谔方程&#xff0c;原子单位制本文使用原子单位制&#xff0e;类氢原子(hydrogen-like atom)被定义为原子核有 $Z$ 个质子(核电荷为 $Ze$)有一个核外电子的原子/离子&#xff0…

再论EM算法的收敛性和K-Means的收敛性

标签&#xff08;空格分隔&#xff09;&#xff1a; 机器学习 &#xff08;最近被一波波的笔试面试淹没了&#xff0c;但是在有两次面试时被问到了同一个问题&#xff1a;K-Means算法的收敛性。在网上查阅了很多资料&#xff0c;并没有看到很清晰的解释&#xff0c;所以希望可以…

杰尔·地狱

什么是JAR地狱&#xff1f; &#xff08;或者是classpath地狱&#xff1f;还是依赖地狱&#xff1f;&#xff09;在考虑使用Maven或OSGi等现代开发工具时&#xff0c;哪些方面仍然有意义&#xff1f; 有趣的是&#xff0c;似乎没有对这些问题的结构化答案&#xff08;即&#…

matlab实验符号计算答案,实验五matlab符号计算

实验五matlab符号计算 实验 5 符号计算 教师评分班级 学号 姓名实验日期 2014 年 6 月 17 日 星期 二 第 1 至 2 节课实验地点实验目的1. 掌握定义符号对象的办法2. 掌握符号表达式的运算法则以及符号矩阵运算3. 掌握求符号函数极限及导数的方法4. 掌握求符号函数定积分和不定积…

Java学习笔记之:Java String类

一、引言 字符串广泛应用在Java编程中&#xff0c;在Java中字符串属于对象&#xff0c;Java提供了String类来创建和操作字符串。 创建字符串最简单的方式如下: String str "Hello world!"; String类型是特殊的引用类型&#xff0c;我们也可以通过实例化的方式来创建 …

WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载

昨天&#xff0c;WildFly团队发布了最新版本的WildFly 10 。 CR2很可能是预计于十月份发布最终版本之前的最后一个版本。 即使主要支持的Java EE规范是7&#xff0c;WildFly 8和WildFly 9仍具有许多新功能&#xff0c;该版本现在具有三个服务器版本&#xff0c;实现了Java EE 7…

openshift 部署_OpenShift Express:部署Java EE应用程序(支持AS7)

openshift 部署在过去的几年中&#xff0c;我越来越多地听说过“云”服务。 最初&#xff0c;我并不是很想尝试一下。 但是几个月后&#xff08;一年&#xff1f;&#xff09;&#xff0c;我决定看看这是怎么回事。 我从事Java EE开发已有7年以上&#xff0c;因此&#xff0c;我…

迪克逊准则matlab,浙江科技学院学报

引言传统的农业栽培需要遵循季节性及周期性的栽培规律,受外界环境的影响较大,相应的栽培技术无法得到良好的栽培结果[1]。而温室大棚通过环境控制器调节温室环境,为作物提供了合适的生长环境。因此,它在农业领域的应用越来越广泛,温室环境控制系统的研究成为人们关注的热点[2-5…

使用FlexDeploy对融合中间件应用程序进行自动化软件测试

自动化软件测试是任何软件组织都应执行的强制性活动之一&#xff0c;以保证其产品质量。 但是&#xff0c;此过程通常变得非常复杂&#xff0c;尤其是涉及由多个不同部分组成的现代复杂系统的自动化测试时。 所有这些部分都基于不同的技术&#xff0c;显然&#xff0c;应该使用…

java 反编译项目_Java 7 –反编译项目硬币

java 反编译项目大家好&#xff0c;该是从2012年开始写作的时候了。正如您在其他博客中可能已经看到的那样&#xff0c;有一些更改可以使您使用Java编程时的开发人员生活变得更加轻松&#xff1a;Diamond运算符&#xff0c;Switchs中的Strings&#xff0c;尝试使用资源&#xf…

Java 9代码工具:使用Java微型基准测试工具的实践会话

用肉眼看&#xff0c;基准测试似乎只是确定执行某些代码需要花费多长时间的简单问题。 但是通常&#xff0c;这是幼稚的方法。 提供具有准确和可重复结果的有意义的基准并非易事。 在本文中&#xff0c;我们想向您介绍OpenJDK代码工具项目&#xff0c;尤其是JMH。 Java Microb…

vaadin_在Vaadin和JSF之间选择

vaadin随着最新版本的Primefaces 3.0的发布&#xff0c;JSF终于达到了前所未有的成熟度和实用性&#xff0c;使其与其他流行的Rich Internet Applications&#xff08;RIA&#xff09;选项面对面&#xff0c;例如Google Web Toolkit&#xff08;GWT&#xff09;&#xff0c;Ext…