1、安装hive

    在安装hive前,请确保已经安装好了hadoop,如未安装,请参考centoos 安装hadoop集群进行安装;

    1.1、下载,解压

      下载hive2.1.1:http://mirror.bit.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz

       将下载好的hive包解压到/usr/local中

        tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local/

       进入到/usr/local目录下,将解压后的文件重命名为hive
        mv apache-hive-2.1.1-bin/ hive 

    1.2、设置hive环境变量

      vi ~/.bashrc

      在文件尾部添加

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

      让配置生效

        source ~/.bashrc

  2、安装mysql

     安装mysql可参考

     yum 安装mysql数据库

  3、下载mysql驱动包

    下载MySQL驱动,本机使用的版本是mysql-connector-java-5.1.35.jar;

     拷贝包到hive/lib中

      cp mysql-connector-java-5.1.35.jar /usr/local/hive/lib

  4、修改hive配置

    3.1、修改日志配置

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

      vim hive/conf/hive-log4j2.properties

      修改

        property.hive.log.dir = /usr/local/hive-2.1.1/logs/

    3.2、修改hive-site.xml

      cp hive/conf/hive-default.xml.template hive/conf/hive-site.xml

      vim  hive/conf/hive-site.xml

      删除里面的所有内容(未添加的会使用hive-default.xml.template中的默认配置),添加如下配置

<configuration>
  <property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://H30: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>root</value>
  </property>
  <property>
   <name>javax.jdo.option.ConnectionPassword</name>
   <value>root</value>
  </property>
</configuration>

      其中H30为安装hive的主机名;

  5、启动hive 

     启动hive之前,请确保hadoop和mysql已经启动

     执行schematool命令进行初始化

      schematool -dbType mysql -initSchema

     初始化完成后执行hive命令即可进入hive的命令行界面

      

    如果出现如下错误

      

    则需要在mysql中通过grant对连接进行授权;

  6、使用java api调用hive

    6.1、修改hive-site.xml配置

      在hive/conf/hive-site.xml的 <configuration></configuration>中添加如下配置

<property>
<name>hive.server2.thrift.bind.host</name>
<value>192.168.3.238</value>
<description>Bind host on which to run the HiveServer2 Thrift interface.
Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
</property>
<property>
<name>hive.server2.long.polling.timeout</name>
<value>5000</value>
<description>Time in milliseconds that HiveServer2 will wait, before responding to asynchronous calls that use long polling</description>
</property>

      6.2、启动HiveServer2服务

        hive --service metastore &

    6.3、启动hiveserver2服务    

        hive --service hiveserver2 &

      通过下述命令查看hiveserver2是否已经开启

        netstat -nl |grep 10000

      如出现错误请查看hive/logs;

    6.4、编写java API

      首先列出本程序依赖的Jar包:

        hadoop-2.2.0/share/hadoop/common/hadoop-common-2.7.1.jar
        $HIVE_HOME/lib/hive-exec-0.11.0.jar
        $HIVE_HOME/lib/hive-jdbc-0.11.0.jar
        $HIVE_HOME/lib/hive-metastore-0.11.0.jar
        $HIVE_HOME/lib/hive-service-0.11.0.jar
        $HIVE_HOME/lib/libfb303-0.9.0.jar
        $HIVE_HOME/lib/commons-logging-1.0.4.jar
        $HIVE_HOME/lib/slf4j-api-1.6.1.jar

      项目代码可在下载http://url.cn/4EvRdbw下载

       如果项目运行出现错误

   java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User root is not allowed to impersonate anonymous

      则可在hadoop的master服务器core-site.xml 配置中添加

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

      其中root表示项目中连接hive的mysql数据库用户名

   

  hive常用操作

     1、新建表 t_hive, "," 作为列分隔符
       CREATE TABLE t_hive (a int, b int, c int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

     2、导入数据 t_hive.txt
       LOAD DATA LOCAL INPATH '/home/cos/demo/t_hive.txt' OVERWRITE INTO TABLE t_hive ;

       hdfs dfs -put /opt/t_hive /user/hive/warehouse/t_hive

       -- 上面两个命令效果一样,创建一个表其实就是在hdfs中新建一个目录,目录名称与表名相同

       -- 对该目录中文件的增删改就是对表的增删改;

     3、查看表和数据
       show tables  --查看库中所有的表
       show tables '*t*'  -- 通过正则表达式查找库中的表
       select * from t_hive  -- 查看t_hive表中的数据
       desc t_hive;    -- 查看t_hive的表结构

     4、修改
        ALTER TABLE t_hive ADD COLUMNS (new_col String); --增加new_col字段
        ALTER TABLE t_hive RENAME TO t_hadoop; -- 修改t_hive表名为t_hadoop
     5、删除
        DROP TABLE t_hive; -- 删除
        truncate TABLE t_hive -- 删除t_hive表中的所有数据

hadoop安装hive及java调用hive的更多相关文章

  1. centos6.5 redis 安装配置及java调用

    1.安装gcc 执行命令  yum install gcc 2. 安装ruby环境 yum install ruby yum install rubygems gem install redis 下载 ...

  2. Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)

    前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.cs ...

  3. Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)

    Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...

  4. linux系统下安装redis以及java调用redis

    关系型数据库:MySQL  Oracle 非关系型数据库:Redis 去掉主外键等关系数据库的关系性特性 1)安装redis编译的c环境,yum install gcc-c++ 2)将redis-2. ...

  5. Hadoop生态组件Hive,Sqoop安装及Sqoop从HDFS/hive抽取数据到关系型数据库Mysql

    一般Hive依赖关系型数据库Mysql,故先安装Mysql $: yum install mysql-server mysql-client [yum安装] $: /etc/init.d/mysqld ...

  6. Linux 系统基于 Hadoop 安装 Hive

    [注意]安装hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可(在所有的namenode上安装),可以不在datanode节点的机器上安装. ...

  7. Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)

     说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...

  8. Hive学习之一 《Hive的介绍和安装》

    一.什么是Hive Hive是建立在 Hadoop 上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储.查询和分析存储在 Hadoop 中的大规模数据 ...

  9. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...

随机推荐

  1. 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)

    1. rnn.BasicLSTMCell(num_hidden) #  构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...

  2. 微信公众号Java接入demo

    微信公众号Java接入demo 前不久买了一台服务,本来是用来当梯子用的,后来买了一个域名搭了一个博客网站,后来不怎么在上面写博客一直闲着,最近申请了一个微信公众号就想着弄点什么玩玩.周末没事就鼓捣了 ...

  3. 如何编写Window服务程序(C# )

    虚拟需求:编写一个Window服务,并注册到操作系统的服务里.让他隔30秒运行一下(写当前日期到一个文本里) 步骤: 创建一个Window 窗体应用程序项目(Greatwall.Mes.Windows ...

  4. Java学习笔记(十九):Object类

  5. DB2在dbvisualizer 客户端执行begi/end 语句块

    注意,begin end 代码块在dbvisualizer 执行前要加 --/   后面要加   / 注意,begin end 代码块在dbvisualizer 执行前要加 --/   后面要加    ...

  6. tp3.2 phpexcel 简单导出多个sheet(execl表格)

    参考链接:https://blog.csdn.net/u011341352/article/details/70211962 以下是公共类PHPExcel.php文件: // 开始 <?php/ ...

  7. 异常解决 Unable to write generated Java files for schemas: null

    错误是在使用cxf调用其他系统接口时报出的.而且问题很诡异,只有服务器调用时才报错,本地直接写main方法直接调用却正常的.以下是异常的堆栈: ERROR c.k.p.webservice.WebSe ...

  8. 微信H5授权登录,公众平台,开放平台

    首先,特别不喜欢做微信开发,各种设置,各种文档,各种坑. 最近做一个H5网页,微信扫码打开,需要使用微信登录,获取用户的基本信息,自动保存,自动登录. 1.先去微信公众平台https://mp.wei ...

  9. 解决 ora-28001 密码过期的处理办法

    转载自:https://blog.csdn.net/pengyouchuan/article/details/12905623 操作步骤: $sqlplus / as sysdba ALTER PRO ...

  10. Linux驱动之poll机制的理解与简单使用

    之前在Linux驱动之按键驱动编写(中断方式)中编写的驱动程序,如果没有按键按下.read函数是永远没有返回值的,现在想要做到即使没有按键按下,在一定时间之后也会有返回值.要做到这种功能,可以使用po ...