说明:

由于之前使用CDH5.4.8,其Hive版本为1.1.0,其业务的脚本和jar也在此版本开发,所以有很多依赖性,兼容性等等。然后当我们计划将CDH5.4.8 Job迁移至AliYun EMR平台上,发现hive-1.1.0-cdh5.4.8与该平台的Apache Hadoop2.7.2 严重不能兼容,于是花了很长时间在做这件事--根据业务脚本和jar包定制我们的hive-1.2.1-emr版本

其中我们尝试了以下

hive-1.1.0-apache,

hive-2.0.0-apache,

hive-1.1.0-cdh5.8.0,

hive-1.1.0-cdh5.4.8等版本与Apache hadoop2.7.2与脚本内容兼容错误甚多,且尝试无法解决,于是选择hive-1.x.x系列的最新版。

1.Download hive-1.2.1 source code

[root@sht-sgmhadoopnn-01 hadoop]# wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-src.tar.gz
[root@sht-sgmhadoopnn-01 hadoop]# tar -xzvf apache-hive-1.2.1-src.tar.gz
[root@sht-sgmhadoopnn-01 hadoop]# cd apache-hive-1.2.1-src

2.Download patch

Bug1:ADD JAR failing with URL schemes other than file/ivy/hdfs

https://issues.apache.org/jira/browse/HIVE-11920

[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# wget https://issues.apache.org/jira/secure/attachment/12761724/HIVE-11920.1.patch
[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# cat HIVE-11920.1.patch
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
index 9f738df..eece93e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
..................
..................

3.Patch HIVE-11920.1.patch

Format: patch -p0|-p1 < xxxx.patch

如果使用参数-p0,就表示从当前目录,找一个叫作b的目录,在它下面找一个叫ql的目录,再在它下面找一个叫src的目录。

如果使用参数-p1, 就表示忽略第一层,从当前目录找一个叫ql的目录,在它下面找一个叫src的目录。这样会忽略掉补丁头提到的b目录。

[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# patch -p1 < HIVE-11920.1.patch
patching file ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
patching file ql/src/test/queries/clientpositive/add_jar_pfile.q
patching file ql/src/test/results/clientpositive/add_jar_pfile.q.out

4.Download maven tool and configure parameter

[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# export MAVEN_HOME=/hadoop/maven
[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# export PATH=$MAVEN_HOME/bin:$PATH

5.Compile hive-1.2.1

[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# mvn clean install -Phadoop-2,dist -DskipTests -Dhadoop-23.version=2.7.2 -Dhive.version=1.2.1
[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# ll ./packaging/target/apache-hive-1.2.1-bin.tar.gz
-rw-r--r-- 1 root root 94035955 Oct 4 16:29 ./packaging/target/apache-hive-1.2.1-bin.tar.gz

6.Upload mysql-connector-java-5.1.36-bin.jar

[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# cp ./packaging/target/apache-hive-1.2.1-bin.tar.gz ../
[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-src]# cd ../
[root@sht-sgmhadoopnn-01 hadoop]# tar xzvf apache-hive-1.2.1-bin.tar.gz
[root@sht-sgmhadoopnn-01 hadoop]# cd ./apache-hive-1.2.1-bin/lib
[root@sht-sgmhadoopnn-01 lib]# rz
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring mysql-connector-java-5.1.36-bin.jar...
100% 949 KB 949 KB/sec 00:00:01 0 Errors

7.Modify hive-site.xml

[root@sht-sgmhadoopnn-01 lib]# cd ../conf
[root@sht-sgmhadoopnn-01 lib]# vi hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.local</name><value>true</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?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>root</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>EMRroot1234</value><description>password to use against metastore database</description></property>
</configuration>

8.Rerun tar hive files

[root@sht-sgmhadoopnn-01 conf]# cd ../
[root@sht-sgmhadoopnn-01 apache-hive-1.2.1-bin]# tar -zcvf hive-1.2.1-emr.tar.gz *

Apache Hive-1.2.1 Manual Patch and Compile相关推荐

  1. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  2. Apache Ignite与Apache Hive的个人理解与总结

    首先,贴一下官网链接辟邪:官网链接 下面,就看我强行总结吧,如果理解有误,请大佬及时指正,感激不尽! Apache Ignite是啥玩意,在上一篇已经讲过了,可能还比较易于理解:理解Ignite传送门 ...

  3. apache hive 使用概述

    2019独角兽企业重金招聘Python工程师标准>>> 1         产品概述 1.1  产品功能 Apache Hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管 ...

  4. IntelliJ IDEA——连接Apache Hive时 “Database” Plugin错误[enabling autocommit is not supported.]解决方案

    问题描述 运行环境 Clusters (VMWare Devices) Apache Hadoop v2.9.2 ( Apache Offical Edition ) Apache Hive v1.2 ...

  5. Apache Hive JdbcStorageHandler 编程入门指南

    以下博文转载自:https://www.iteblog.com/archives/2525.html Apache Hive 从 HIVE-1555 开始引入了 JdbcStorageHandler ...

  6. 【Hadoop Summit Tokyo 2016】Hivemall: Apache Hive/Spark/Pig 的可扩展机器学习库

    本讲义出自 Makoto YUI与NTT Takashi Yamamuro在Hadoop Summit Tokyo 2016上的演讲,主要介绍了Hivemall的相关知识以及Hivemall在Spar ...

  7. apache hive_Hive:使用Apache Hive查询客户最喜欢的搜索查询和产品视图计数

    apache hive 这篇文章介绍了如何使用Apache Hive查询Hadoop下存储的搜索点击数据. 我们将以示例的形式生成有关总产品浏览量的客户最爱搜索查询和统计信息. 继续之前的文章 使用大 ...

  8. apache hive_通过6个简单的步骤在Windows上运行Apache Hive

    apache hive 注意 :您需要安装cygwin才能运行本教程,因为Hadoop(Hive所需)需要cygwin才能在Windows上运行. 至少,系统中必须存在Basic,Net(OpenSS ...

  9. Hive:使用Apache Hive查询客户最喜欢的搜索查询和产品视图计数

    这篇文章涵盖了使用Apache Hive查询存储在Hadoop下的搜索点击数据. 我们将以示例的方式生成有关总产品浏览量的客户排名靠前的搜索查询和统计信息. 继续之前的文章 使用大数据分析客户产品搜索 ...

最新文章

  1. Github上十大热门可视化面板!再也不用担心画图啦!
  2. 设计模式 — 结构型模式 — 适配器模式
  3. kaldi语音识别实战pdf_语音识别相关工具和资料分享
  4. C++基础与面向对象
  5. 吴思涵国内首场肿瘤ecDNA学术报告|深度揭秘半个世纪ecDNA的研究成果及突破性进展...
  6. 中国胎儿(分娩和分娩)和新生儿护理设备行业市场供需与战略研究报告
  7. 彻底删除文件(File Delete Absolutely) 最新3.01版本 也已经在中关村在线升级成功
  8. 群晖nas存储系统原理_为群晖 NAS 加上 SSD 缓存,享受高速带来的酸爽吧!
  9. Reflector dll反编译工具
  10. 桌宠java_桌宠 下了Java还是说没法登上去 PHILIPS 电脑
  11. 如何绘制用例图 - How to Draw Use Case Diagram
  12. 装机必备的100个软件下载和注册码
  13. Blazor在IoT领域的前端实践 @.NET开发者日
  14. HTML文件里开头的!Doctype有什么作用?
  15. Android 面试指南
  16. 以太网PLC无线WIFI跨网段通讯和Modbus仪表数据采集
  17. 依然范特西,依然周杰伦
  18. 区块链+游戏还有什么可能性?
  19. 一张画布重塑你的职业生涯
  20. 你接触不到的阿里云福利

热门文章

  1. 电脑雕刻教程_C4D无敌渲染神器! 阿诺德全套预设+案例教程+3.0汉化插件合集!真香!【810期】...
  2. 通过MBean server监控weblogic应用
  3. MySQL 历史版本安装和下载
  4. Postfix:邮件系统常见错误代码解释
  5. linux内核包转发过程(三)NIC帧接收分析
  6. opengl矩阵变换与平移缩放旋转
  7. 如何在 Laravel 中 “规范” 的开发验证码发送功能
  8. 如何更改rhevm中admin的密码
  9. bin和sbin区别
  10. Linux 命令(44)—— expand 命令