Hive Developing

Building hive from source

clone and build from source

downlaod

git clone https://git-wip-us.apache.org/repos/asf/hive.git
or
git clone [email protected].com:wankunde/hive.git

build

git branch -va
// checkout the branch which you are intrest.
git checkout -b branch-0.14 origin/branch-0.14
// or git checkout --track origin/branch-0.14

// compile and dist
mvn clean install -DskipTests -Phadoop-2 -Pdist

//  generate protobuf code
cd ql
mvn clean install -DskipTests -Phadoop-2,protobuf

// generate Thrift code
mvn clean install -Phadoop-2,thriftif -DskipTests -Dthrift.home=/usr/local

Tips

  • By default,before compile,maven will download many dependency packages and meet timeout exception.I use nexus and add <timeout>120000</timeout> configuration to <server> configuration item. Not Test
  • Hive HiveDeveloperFAQ Wiki

Test Unit

Change hive log level

bin/hive -hiveconf hive.root.logger=DEBUG,console

Or change log4j properties.

cp conf/hive-log4j.properties.template conf/hive-log4j.properties

Connecting a Java Debugger to hive

Example java remote debug

  • Run remote java program using script
JVM_OPTS="-server -XX:+UseParNewGC -XX:+HeapDumpOnOutOfMemoryError"
DEBUG="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2345"
JVM_OPTS="$JVM_OPTS $DEBUG"
$JAVA_HOME/bin/java $JVM_OPTS -cp tools-1.0.jar com.wankun.tools.hdfs.Test2
  • Add and run new remote debug configuration in eclipse

Created with Rapha?l 2.1.0debug asdebug configurationsRemote Java Applicaiton connect (configure host and post using above parameters)

Start hive debug

help command

hive --help --debug

Run hive without a hadoop cluster

export HIVE_OPTS=‘--hiveconf mapred.job.tracker=local --hiveconf fs.default.name=file:///tmp     --hiveconf hive.metastore.warehouse.dir=file:///tmp/warehouse     --hiveconf javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=/tmp/metastore_db;create=true‘

Hive test unit

Two kind of unit tests

  • Normal unit test
mvn test -Dtest=ClassName#methodName -Phadoop-2

For example,

mvn test -Dtest=TestAbc -Phadoop-2 which TestAbc is the test case.

mvn test -Dtest=‘org.apache.hadoop.hive.ql.*‘ -Phadoop-2 .

Help Links : Maven Surefire Plugin

  • Query files

There are many test scripts. Not successed

$ ls ql/src/test/queries/
clientcompare  clientnegative  clientpositive  negative  positive

// run test unit,ql as example
cd ql
mvn test -Dtest=TestCliDriver -Dqfile=groupby1.q -Phadoop-2

//Take src/test/queries/clientpositive/groupby1.q for example.

mvn test -Dmodule=ql -Phadoop-2 -Dtest=TestCliDriver -Dqfile=groupby1.q -Dtest.output.overwrite=true

Help Links1

Help Links2

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-30 01:48:30

Hive Developing的相关文章

学习Hive和Impala必看经典解析

Hive和Impala作为数据查询工具,它们是怎样来查询数据的呢?与Impala和Hive进行交互,我们有哪些工具可以使用呢? 我们首先明确Hive和Impala分别提供了对应查询的接口: (1)命令行shell: 1. Impala:impala shell 2. Hive:beeline(早期hive的命令行版本是hive shell,现在基本不使用) (2)Hue Web UI: 1.Hue里面提供了 Hive查询编辑器 2.Hue里面提供了Impala查询编辑器 3.Hue里面提供了元数

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

Spark 整合hive 实现数据的读取输出

实验环境: linux centOS 6.7 vmware虚拟机 spark-1.5.1-bin-hadoop-2.1.0 apache-hive-1.2.1 eclipse 或IntelJIDea 本次使用eclipse. 代码: import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.DataFrame; import o

Hive JDBC——深入浅出学Hive

第一部分:搭建Hive JDBC开发环境 搭建:Steps ?新建工程hiveTest ?导入Hive依赖的包 ?Hive  命令行启动Thrift服务 ?hive --service hiveserver & 第二部分:基本操作对象的介绍 Connection ?说明:与Hive连接的Connection对象 ?Hive 的连接 ?jdbc:hive://IP:10000/default" ?获取Connection的方法 ?DriverManager.getConnection(&q

Hadoop Hive基础sql语法

Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据.而mapreduce开发人员可以把己写的mapper 和reducer 作为插件来支持

hive安装以及hive on spark

spark由于一些链式的操作,spark 2.1目前只支持hive1.2.1 hive 1.2安装 到http://mirror.bit.edu.cn/apache/hive/hive-1.2.1/ 网址下载hive1.2.1的部署包 2.配置系统环境变量/etc/profile export HIVE_HOME=/opt/hive-1.2.1 export PATH=$PATH:$HIVE_HOME/bin source /etc/profile 使刚刚的配置生效 3. 解压 tar -xvf

Hive UDTF开发指南

在这篇文章中,我们将深入了解用户定义表函数(UDTF),该函数的实现是通过继承org.apache.Hadoop.hive.ql.udf.generic.GenericUDTF这个抽象通用类,UDTF相对UDF更为复杂,但是通过它,我们读入一个数据域,输出多行多列,而UDF只能输出单行单列. 代码 文章中所有的代码可以在这里找到:hive examples.GitHub repository 示例数据 首先先创建一张包含示例数据的表:people,该表只有name一列,该列中包含了一个或多个名字

Hive入门到剖析(二)

5 Hive参数 hive.exec.max.created.files 说明:所有hive运行的map与reduce任务可以产生的文件的和 默认值:100000 hive.exec.dynamic.partition 说明:是否为自动分区 默认值:false hive.mapred.reduce.tasks.speculative.execution 说明:是否打开推测执行 默认值:true hive.input.format 说明:Hive默认的input format 默认值: org.a

Hive入门到剖析(一)

1 Hive简介 1.1 Hive定义 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 本质是将SQL转换为MapReduce程序. 1.2 为什么使用Hive 1.面临的问题 人员学习成本太高 项目周期要求太短 我只是需要一个简单的环境 MapReduce  如何搞定 复杂查询好难 Join如何实现 2.为什么要使用Hive 操作接口采用类SQL语法,提供快速开发的能力 避免了去写MapReduce,减少开发人员的学习成本 扩展