上一篇博客我们已经说过了要如何安装Hadoop,别忘记了我们的目的是安装Hive。所以这篇博客,我就来介绍一下如何安装Hive。

一、环境准备

(1)Vmware

(2)  Ubuntu 16.04

(3)  Hadoop

二、安装Hive

 (1) mysql-server和mysql-client的下载

  $ su hadoop

  $ sudo apt-get install mysql-server mysql-client

 (2)启动mysql服务

  $ sudo /etc/init.d/mysql start

  

(3)进入mysql服务

  $ mysql -u root -p

  键入你自己设置的mysql的root密码,

  现在进入到了mysql里面,执行以下命令:

  create user 'hive'@'%' identified by 'hive';

  create all privileges on *.* to 'hive'@'%' with grant option;

  flush privileges;

  create database if not existes hive_metadata;

  grant all privileges on hive_metadata.* to 'hive'@'%' identifies by 'hive';

  grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';

  flush privileges;

  exit;

  $ sudo /etc/init.d/mysql restart

  mysql -u hive -p

  键入密码:hive

  show databases;

  如果hive_metadata不存在的话就执行 create database hive_metadata;

(4)安装hive

  $ su hadoop

  $ cd /usr/local

  $ wget http://mirrors.hust.edu.cn/apache/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz

  要检查是否有相应的文件,没有的话要自己去搜

  $ tar zxvf apache-hive-2.3.3-bin.tar.gz

  $ sudo mkdir hive

  $ sudo mv apache-hive-2.3.3.bin hive/hive-2.3.3

  $ cd hive/hive-2.3.3

  $ cd conf

  $ cp hive-default.xml.template hive-site.xml

  $ sudo vim hive-site.xml

  

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>

  $ cp hive-env.sh.template hive-env.sh

  $ sudo vim hive-env.sh

export  HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/hive-2.3.3/conf

  $ cd ../bin

  $ vim hive-config.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HIVE_HOME=/usr/local/hive/hive-2.3.3
export HADOOP_HOME=/usr/local/hadoop

  $ sudo vim /etc/profile

 

export HIVE_HOME=/usr/local/hive/hive-2.3.3
export PATH=$PATH:$HIVE_HOME/bin

  $ source /etc/profile

  $ sudo cd /usr/local/hive/hive-2.3.3

  $ wget http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz

  $ tar zxvf mysql-connector-java-5.1.45.tar.gz

  $ jar -cf mysql-connector-java-5.1.45.jar mysql-connector-java-5.1.45

  $ sudo cp mysql-connector-java-5.1.45.jar lib/

(5)测试

  $jps

  检查hadoop的Namenode, datanode, secondarynode, resourcemanager, nodemanager是不是都存在,不是的话就要关闭hadoop,重启。至于如何关闭和重启hadoop参见上一篇安装hadoop的博客

  $cd bin

  $./hive

  执行完这个会进入到:

  hive>

三、报错记录

(1)如果运行bin/.hive的报错为:

  

which: no hbase in (/opt/service/jdk1.7.0_67/bin:/opt/service/jdk1.7.0_67/jre/bin:/opt/mysql-5.6.24/bin:/opt/service/jdk1.7.0_67/bin:/opt/service/jdk1.7.0_67/jre/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/hadoop/bin)

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/apache/hive-2.1.0/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/apache/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

等类似这样出现Class path contains multiple XXX bindings,只需要根据下面的Found binding,删除其中的一个文件,就可以了。

(2)如果报错为:

call from wuyanjing-virtucal-machie/127.0.0.1 to localhost:9000 failure

出现这个错误的时候,先运行了一下jps命令,看看hadoop是不是成功运行。一般重启hadoop,这个问题就解决了。

(3) 如果报错为:

Exception in thread "main" java.lang.RuntimeException:java.lang.illegalAgrumentException:java.net.URISystaxException:Relative path in absolate URI:${system:ja va.io.tmpdir}

出现这个错误的时候,只要在hive-site.xml中找到${System:java.io.tmpdir},并把此都替换成具体目录。

Ubuntu16.04下安装Hive的更多相关文章

  1. Ubuntu16.04下安装数据库oracle客户端

    在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...

  2. Ubuntu16.04下安装redis

    Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/release ...

  3. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  4. ubuntu16.04下安装artoolkit5

    目前对AR技术的常见理解就是CV(Computer Vision)+CG(Computer Graphic).CV的方法很多,简单些比如FREAK+ICP(ARToolKit中的NFT),复杂些就是S ...

  5. Ubuntu16.04下安装多版本cuda和cudnn

    Ubuntu16.04下安装多版本cuda和cudnn 原文 https://blog.csdn.net/tunhuzhuang1836/article/details/79545625 前言 因为之 ...

  6. Ubuntu16.04下安装Hadoop

    一.记录理由 刚开始只是想要学习怎么使用Hive的.想着安装应该很简单,没想到花了整整一天的时间来安装,为了避免下次犯同样的错误,特此记录. 二.安装Hadoop 网上教你怎么安装Hadoop的文章有 ...

  7. Ubuntu16.04下安装texlive

    Ubuntu 16.04下安装texlive的步骤如下: 1.下载texlive 打开终端输入:sudo apt-get install texlive-full  #下载这一过程会持续10-20分钟 ...

  8. Ubuntu16.04下安装googlechrome flash 插件和安装网易云音乐

    一.ubuntu 16.04 下安装完后发现 flash无法播放没有安装flash插件因为 Adobe Flash 不再支持 linux Google 便开发了PepperFlashPlayer来替代 ...

  9. ubuntu16.04下安装opencv3.4.1及其扩展模块

    1.源文件下载 opencv-3.4.1.tar.gz(https://github.com/opencv/opencv/releases) opencv_contrib-3.4.1.tar.gz(h ...

随机推荐

  1. Android进阶(九)APP编程感想

    从初识Android到现在,在不断做APP(二维码.条形码扫描,彩票购买,火车票余票查询)的过程中,自己学会了很多东西.找时间整理了一下,总结如下: 其中,对于前两个APP,自己都是在他人已完成的基础 ...

  2. 15-5-23 下午02时22分58秒 CST> <Info> <Management> <BEA-141281> <unable to get file lock, will retry ...>

     A-141281> <unable to get file lock, will retry ...>   http://gdutlzh.blog.163.com/blog/s ...

  3. ROS_Kinetic_04 ROS基础内容(一)

    ROS_Kinetic_04 ROS基础内容(一) 在开始基础内容之前,假定您已经完成了ROS kinetic版本的安装, 如果没有请参考ROS kinetic安装说明. 1. 环境变量 在使用ROS ...

  4. 将Ext JS 6应用程序导入Web项目

    由于Ext JS 6包含了Sencha Touch,因而在应用程序结构有了些改变,Ext JS 5的方法已经不适用于新版本了.经过研究,发现6导入Web项目要比5简单. 下面来说说导入的过程. 使用S ...

  5. css3动画从入门到精通

    什么是css3动画? 通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片.Flash 动画以及 JavaScript. CSS3带来了圆角,半透明,阴影,渐变,多背景图等新的特征,轻松实 ...

  6. org/w3c/dom/ElementTraversal 错误解决办法

    org/w3c/dom/ElementTraversal 错误解决办法 不记得之前几天把什么maven依赖包删除了,今天利用htmlunit运行代码的时候报了下面的错误: Exception in t ...

  7. (NO.00001)iOS游戏SpeedBoy Lite成形记(十五)

    现在啃第2个问题:如何让玩家输入赌注金额. 实现的方法有很多种,比如可以限制玩家只能从特定的金额中选择,把每个选择做成一个按钮即可.以下是一个假想选择窗口的示意图: 这样没有玩家的输入问题了.缺点是不 ...

  8. (NO.00001)iOS游戏SpeedBoy Lite成形记(十三)

    游戏特效部分就先这样了,因为毕竟是Lite版本,而且是第一个App,所以咱们把主要精力放在游戏可玩逻辑上吧(虽然已经厚颜无耻的加了不少特效了). 说句题外话:游戏美工是独立开发者不可逾越的鸿沟,是无法 ...

  9. (二十四)监听键盘的通知和键盘弹出隐藏的View移动

    让控制器监听键盘的通知,注意谁监听,谁的dealloc方法中就要remove,如果非ARC还要调用父类的dealloc方法. //监听键盘的操作: [[NSNotificationCenter def ...

  10. AngularJS进阶(二十二)实现时间选择插件

    JS实现时间选择插件 引导语 在项目开发过程中,需要实现根据以日期为筛选条件之一,故需要实现时间选择插件.对于未接触的新事物,自己总是感觉不明觉厉.其实,有些实现可以使用很简单的方法即可.以此为例,偶 ...