自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

翻译 Hive学习之Lateral View

Lateral view与UDTF函数如explode()一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用UDTF,然后连接结果输出行与输入行组成拥有指定表别名的虚拟表。Lateralview的语法如下:LateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlia

2014-09-15 10:55:03 6683

原创 Java编程之获取计算机的MAC地址

在论坛上发现了一篇如何获取MAC地址的帖子,遂决定动手试试,虽然结合Java API很快实现了该功能,并回复了该帖子,但在好奇心的催动下决定更深地学习一下什么是MAC地址,之前仅知道MAC地址是物理地址,再多也就不知道了。MAC为Media Access Control的缩写,也称为MAC地址、硬件地址,在OSI模型中,第二层数据链路层负责MAC地址。MAC地址是存在于NetworkInter

2014-09-12 11:31:18 6684 2

原创 Hive学习之连接查询

Hive支持连接查询,但有一些条件必须遵守,比如只支持相等查询,其它查询如不等式查询则不支持,还支持外连接,左半连接查询。另外Hive支持多于两个表以上的连接查询。下面为Hive连接查询的语法:

2014-09-11 14:41:03 8630

原创 Hive学习之自定义函数(UDF)

在之前的学习,包括后面的实践和工作中,已经多次使用了Hive的内置函数,即有普通的函数,像cast、lower等,也有聚合函数,比如max,min等,除了这些内置函数,Hive还允许在内置函数不满足业务需求的时候用户自己定义函数。现在就学习如何使用Hive API自定义函数。要想自定义Hive函数,只需要继承org.apache.hadoop.hive.ql.exec.UDF类,并在实现类中定

2014-09-09 15:23:03 3836

原创 Hadoop-2.4.1学习之SecondaryNameNode、CheckpointNode、BackupNode

在Hadoop-2.x版本之前只存在SecondaryNameNode,没有CheckpointNode、BackupNode的概念,在2.x版本中引入了后两者,增强了对NameNode的同步和备份。现在就学习一下2.x版本中的SecondaryNameNode、CheckpointNode、BackupNode,在开始之前先了解一下NameNode中的两个重要文件fsimage和edits以及N

2014-09-07 16:23:55 3604 1

原创 Java学习之线程同步(Synchronization)

线程间通信主要通过对字段和引用对象共享存取实现的,而这很容易导致线程冲突和内存一致性错误。那什么是线程冲突呢?线程冲突是指多个线程对某个字段进行访问或者操作,而这些操作有可能由多个步骤组成,即使操作只是简单的语句,比如a++。由于存在多个步骤就导致了多个线程可能对数据交叉操作,这样就容易引起操作结果与期望的不一致,举个例子如下:class Counter { private int c

2014-08-29 16:55:31 5597 2

原创 Java学习之进程和线程

在并发程序中,存在两个基本的概念:进程和线程。相对于进程,线程需要更少的资源(线程也被称为轻量级进程),并且存在于进程中,反过来进程中至少存在一个线程(主线程)。一个进程拥有独立的执行环境,通常拥有完整的,私有的基本运行时资源,每个进程都有自己的内存空间。一般情况下,进程通常做为应用程序的同义词,也就是往往将某个应用程序看做进程,而实际上一个运行的应用程序可能有多个互相协作的进程组成。大多数操作系

2014-08-27 15:28:06 1751

原创 Hadoop-2.4.1学习之配置管理Hadoop

Hadoop-2.X较Hadoop-1.X有了很大的变化,比如YARN将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,配置文件及参数也有了很大变化,目录结构的调整等。另外在Hadoop-2.X版本中,通常专门指定一台主机为NameNode,另一台主机做为ResourceManager,这两台主机为masters,集群中剩余的主机既做为DataNode也做为NodeM

2014-08-26 16:51:02 4697

翻译 Hive学习之内置聚合函数

聚合函数下表为Hive内置的聚合函数。返回类型函数名描述BIGINTcount(*) count(expr)count(DISTINCT expr[, expr_.])count(*) – 返回检索到的行的总数,包括含有NULL值的行。count(expr) – 返回expr表达式不是NUL

2014-08-25 17:19:24 31621

翻译 Hive学习之内置条件和字符串函数

条件函数下表为Hive支持的一些条件函数。返回类型函数名描述Tif(boolean testCondition, T valueTrue, T valueFalseOrNull)如果testCondition为真,返回valueTrue,否则返回valueFalseOrNullT

2014-08-22 10:29:28 35109

翻译 Hive学习之内置数学、日期函数

数学函数下面表格中的函数为Hive的内置数学函数,大部分当参数为NULL时返回NULL。返回类型函数名描述bigint round(double a)返回a经过四舍五入的BIGINT 值doubleround(double a, int d)返回a经过四舍

2014-08-20 13:54:51 12975

原创 Hadoop学习之传递命令行参数给Mapper和Reducer

讲述了如何将自定义参数传递给特定的Job,并分析了该方法之所以可行的Hadoop源代码

2014-08-18 15:38:24 11140

原创 Java学习之如何查找资源文件

当属性文件与类在同一包中时,使用Class.getResourceAsStream可以取得属性文件中的内容,而ClassLoader.getResourceAsStream却不能,当属性文件在类路径中时,情况正好相反

2014-08-13 11:47:15 1973

原创 Java学习之java命令如何查找Classes

使用Java很多年了,虽然对如何搜索classes有一定的认识,但精通却不敢妄说。尤其是最近在使用getResourceAsStream加载属性文件时,遇到了不大不小的几个问题,当然遇到的问题与不熟悉Class.getResourceAsStream和ClassLoader. getResourceAsStream有直接关系,但多少与没有彻底理解Java中搜索classes的原理有关,所以在总结C

2014-08-12 17:20:44 3589

原创 Hive学习之HiveServer2 JDBC客户端

HiveServer和HiveServer2都有两种模式,分别为嵌入式和单机服务器模式,对于嵌入式URI为"jdbc:hive://"或者"jdbc:hive2://",单机服务器模式的URI为"jdbc:hive://host:port/dbname"或者"jdbc:hive2://host:port/dbname"。HiveServer使用的JDBC驱动类为org.apache.hadoop.

2014-08-04 11:10:14 17739

原创 Hive学习之HiveServer2服务端配置与启动

在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServe

2014-08-01 13:49:38 54475

原创 Hive学习之配置Oracle为Metastore及问题

之前学习了如何配置MySQL做为Hive的Metastore,由于在实际应用环境中统一使用的是Oracle11g,所以需要将MySQL改为Oracle。原本预料只要简单地修改hive-site.xml文件即可,却遇到了在Hive中创建表失败的问题,下面就将遇到的问题及解决方法整理一下。首先修改hive-site.xml文件的内容如下,主要修改的地方为JDBC的URL和驱动类名。 jav

2014-07-29 11:25:21 4918 5

原创 Hive学习之内置操作符

Hive的内置操作符与很多编程语言中的操作符相似,可以分为关系操作符、算术操作符、逻辑操作符和复合类型操作符,下面进行一一学习。关系操作符关系操作符比较操作数并产生TRUE或者FALSE,需要注意的是Hive的相等比较为=,而不是= =。操作符类型描述A = B基本类型如果A与B相等则返回TRU

2014-07-25 11:10:48 4362

原创 Hadoop-2.4.1学习之以伪分布模式部署Hadoop

Hadoop-2.x版本与Hadoop-1.x除了整体架构上的变化之外,比如HDFS联盟,YARN等,目录结构、配置管理及执行脚本都有了很大的改变,具体哪些地方做了改变还需要通过持续地学习来掌握。在此之前,先学习如何以单机模式和伪分布模式运行Hadoop。单机模式默认情况下,Hadoop作为单个Java进程以非分布式模式运行,该模式非常适于用作Debugg。下面展示了Hadoop-2.4.

2014-07-17 14:00:55 6029 4

原创 Hive学习之Transform/Map-Reduce语法

使用Hive的用户可以在数据流中插入自定义的Mappers和Reducers,为了运行自定义的Mapper和Reducer脚本,用户可以使用下面的命令,该命令使用TRANSFORM从句嵌入Mapper和Reducer脚本: query:  FROM(    FROMsrc    MAPexpression (',' expression)*    (inRowFormat)?

2014-07-16 15:47:09 6649

原创 深入分析MySQL ERROR 1045 (28000)

这几天在MySQL新建用户后,出现访问拒绝的问题,错误码为ERROR 1045(28000)。在网上搜索了很久,找到了很多解决办法,但很遗憾的是这么多办法没有一个能解决该问题。虽然出现的错误码28000很多人都遇到过,但原因也有所不同,有的是mysql.user表中没有信息,有的是root用户没有密码(那就不用密码登录),而使用mysql-5.6.19时,mysql.user有用户信息,root用

2014-07-16 10:28:05 37568 3

原创 Hive学习之SELECT语句(二)

ORDER BY从句Hive中的order by从句与SQL中的order by很相似,都支持ASC和DESC,语法格式如下:ORDER BY colName[ASC|DESC]但Hive中的order by有一些限制。在严格模式下(hive.mapred.mode=strict),order by从句后面必须跟着limit从句,如果hive.mapred.mode= nonstric

2014-07-08 13:24:53 4325 1

原创 Hive学习之SELECT语句(一)

前面学习了Hive中的数据定义语言,也学习了如何加载或者插入数据,在一些示例中或多或少的使用了SELECT语句,但还没有全面系统地学习,现在就开始学习Hive的SELECT语句。Hive的SELECT语句与传统的SQL中的SELECT还是有些区别的。具体的语法如下:[WITH CommonTableExpression(, CommonTableExpression)*]   SELE

2014-07-03 14:19:20 9267

原创 Hive学习之Load和Insert语句

Load语句使用Load语句可以方便的将本地文件系统或者HDFS中的文件加载到Hive表中,语句格式如下:LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename[PARTITION (partcol1=val1, partcol2=val2 ...)]在该语句中,如果包含LOCAL关键字,则复制本

2014-07-01 16:10:30 21426

原创 Hive学习之部署UDF的四种方法

在向Hive添加自定义的UDF或者添加Hive自带的类,如GenericUDFDBOutput时,需要将包含UDF类的Jar包添加到Hive环境中,这样就可以使用Create [temporary]function创建函数了,添加UDF Jar包有四种方法,下面分别进行介绍。第一种是最常见但也不招人喜欢的方式是使用ADD JAR(s)语句,之所以说是不招人喜欢是,通过该方式添加的jar文件只存

2014-06-30 15:00:12 8657

原创 Hive学习之配置MySQL为Metastore

Hive默认情况下以内嵌模式使用Derby数据库做为metastore,该模式最大的缺陷是不支持多个客户端同时连接到metastore上,因此只适合用于学习测试的目的,要在实际生产上使用Hive需要将metastore配置为本地模式或者远程模式,现在就介绍如何以本地模式配置metastore,使用的数据库为MySQL5.6.19。在进行配置之前先要安装MySQL数据库,一般情况下Linux系统中已

2014-06-26 15:00:14 10041 1

原创 Hive学习之函数DDL和Show、Describe语句

创建/删除函数创建临时函数下面的语句创建由class_name实现的临时函数,该函数被创建后只能够在当前会话中使用,会话结束后函数失效。实现函数的类可以是Hive类路径中的任意类,可以使用Add Jar语句向Hive类路径添加类。CREATE  TEMPORARY  FUNCTION  function_name  AS  class_name删除临时函数使用下面的语句可以

2014-06-20 14:33:06 30061 1

原创 Hive学习之视图、索引DDL

创建视图 视图是纯逻辑对象并不关联任何存储,下面的语句使用给定view_name名称创建视图,若view_name与现存的表或者视图重名,则出错。CREATE VIEW [IF NOTEXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [COMMENTview_comment][TBLPROPERTIES(p

2014-06-17 14:17:27 6288

原创 Hive学习之修改表、分区、列

修改表/分区/列修改表的语句允许改变现有表的结构,通过该语句可以增加列/分区,修改SerDe,增加表和SerDe的属性或者重命名表。与之类似,修改分区的语句可以改变指定分区的属性。重命名表重命名表的语句如下:ALTER TABLE table_name RENAME TOnew_table_name修改表属性修改表属性的语句如下:ALTER TABLE table_na

2014-06-12 11:08:38 40237

原创 Hive学习之创建、删除、Truncate表

创建表的语句有两种,分别为: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT c

2014-06-08 19:16:49 33916 1

原创 Hive学习之Hive数据库DDL

Hive提供了与SQL相似的数据定义语言(DDL),对于熟悉SQL的人来说,学习Hive的DDL是非常容易得,即使从未接触过SQL的人,学习也不是一件很难的事情。虽然本人对SQL有一定的了解,但绝不敢自称熟悉SQL,所以准备对HiveQL进行深入的学习,按照SQL通常的学习曲线,先学习DDL,再学习DML(数据操作语言)。由于需要演示一些语句的示例,不得不超前使用一些其它语句,比如show、des

2014-06-04 11:38:54 3928

原创 Hive学习之Hive数据类型

Hive到0.13.0版本为止已经支持越来越多的数据类型,像传统数据库中的VCHAR、CHAR、DATE以及所特有的复合类型MAP、STRUCT等。Hive中的数据类型可以分为数值类型、字符串类型、日期时间类型、复合类型以及其它类型,下面分别予以介绍。数值类型Hive中的数值类型与Java中的数值类型很相似,区别在于有些类型的名称不一样,可以概括为如下的表格:类型名称

2014-05-29 17:09:51 52286

原创 Hive学习之Hive CLI

Hive命令行接口(CLI)提供了执行Hive QL、设置参数等功能,要启用CLI只需要在命令行下执行$HIVE_HOME/bin/hive命令。在命令下执行hive –H可以查看CLI选项,如下表所示:-d,--define 应用于Hive命令的变量替换,如-d  A=B或者--define A=B--database 指定所使用的

2014-05-28 15:25:06 5672

原创 Hive学习之Hive基本概念及实践

Hive是基于Hadoop的数据仓库,而Hadoop为数据的存储和处理提供了很强的水平扩展和容错功能。Hive能够轻松地汇总数据,特定查询和分析大数据,提供了简单的查询语言HiveQL,该语言基于SQL,这使得熟悉SQL的用户可以执行特定查询,容易得汇总和分析数据。同时Hive QL允许map/reduce程序员能够插入定制的mapper和reducer去执行更加复杂的分析,HiveQL的内建功能

2014-05-24 12:07:13 5399

原创 Hive学习之Hive Web接口

Hive的web接口是CLI的备选方案,使用web接口是开始使用Hive的一种很好的方式。Hive的web接口(HWI)是一个简单的图形用户接口(GUI)。HWI在Hive-0.2分支版本中第一次出现,,如果使用的是0.2或者之后的版本,不需要做任何修改就可以直接使用HWI,HWI的默认配置在HiveConf.java文件中:// HWIHIVEHWILISTENHOST("hive.

2014-05-22 16:48:51 9840

原创 Hive学习之Metastore及其配置管理

在学习Hive的配置管理参数时,曾将参数分为四类:Hive管理参数、Hive元存储(Metastore)管理参数、与Hadoop交互的管理参数、用于传递运行时信息的参数,当时并没有对Metastore参数进行深入的学习,现在就开始学习这部分的内容。Hive中表和分区的所有元数据都存储在Hive的元存储(Metastore)中。元数据使用JPOX(Java Persistent Objects)

2014-05-19 10:13:55 27088

原创 Hive学习之Hive配置管理

Hive是基于Hadoop的一种数据仓库,对查询和管理分布式存储中的超大数据集提供了很大帮助。正如绝大部分开源软件一样,Hive允许用户调整参数改变Hive的默认行为。用户可以使用下面三种方法中的任意一种对Hive进行配置管理:1.       在Hive的CLI(命令行接口)使用set命令在会话层级为后续语句设置参数值,比如:set hive.exec.scratchdir=/tmp/myd

2014-05-16 10:46:17 7306

原创 Hadoop学习之配置Eclipse远程调试Hadoop

在构建完成Hadoop项目后,接下来就应该跟踪Hadoop的运行情况,比如在命令行执行hadoop namenode–format时执行了Hadoop的那些代码。当然也可以直接通过阅读源代码的方式来做到这一点,但跟踪代码的执行情况更加直观,更容易理解。在动手配置Eclipse调试Hadoop之前,先大概学习一下JPDA(Java Platform Debugger Architecture,J

2014-05-11 12:48:47 7683 2

原创 Hadoop学习之Eclipse构建Hadoop项目

之前根据Hadoop官方文档对HDFS、MapReduce的架构、配置管理等进行了学习,但某些地方官方文档讲解的比较模糊。做过开发的人都能够体会,官方文档有些类似业务规则或者要求,而真正的细节还是需要深入研究源代码的。基于以上的原因,决定深入学习Hadoop的源代码,虽然现在已经出现Hadoop-2.x的文档版本,但还是决定学习Hadoop-1.x的源码,而要想研究源代码最好的方法还是先构建Had

2014-05-07 16:34:10 6092

原创 Hadoop学习之修改Eclipse插件

之前手工成功编译Hadoop-1.2.1的Eclipse插件后,发现了若干问题,比如生成的Mapper和Reducer还在使用Hadoop-0.x版本的一些类,为了解决这些问题并使插件能够适应Hadoop-1.2.1的变化,决定修改插件的源代码后再重新编译。首先需要确定要修改哪些类,在仔细观察了hadoop-1.2.1/src/contrib/eclipse-plugin/src/java/o

2014-04-30 19:48:43 2961

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除