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. echart 单选legend 并排序

    java代码 List<Map<String, Object>> AllList = null; JSONArray jsonArray = JSONArray.fromObj ...

  2. Android中使用commons-codec-1.6.jar 进行Base64编解码出现的问题

    编码时出现异常: java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; in c ...

  3. python的执行过程

    1,解释器找到代码文件 2,将代码字符串按照文件头或者解释器默认的编码格式加载待内存,转为unicode格式 3,将代码字符串按照语法规则解释 4,转为二进制语言 5,进行执行

  4. PhoenixFD插件流体模拟——UI布局【Resimulation】详解

    Liquid Resimulation 流体再(重)渲染 本文主要讲解Resimulation折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 综述 Liquid Resi ...

  5. NodeJs命令

    cd命令,就是change directory的缩写,表示更改当前目录 cls命令,清屏.清屏幕命令(CLS,CLear Screen) tab键,自动补全. 上键,提示最近的命令   在cmd窗口 ...

  6. PHP安装linux

    PHP 7.1.26 安装 1. 下载安装包 例php-7.1.26.tar.gz 下载地址:http://cn2.php.net/downloads.php 2. 放入/root 3. 切换目录 # ...

  7. Git 基础 - 删除暂存区的文件

    1 直接删除文件 这个文件会有两个操作:已暂存的修改.未暂存的删除 2 直接删除文件 + 记录删除操作 先在工作目录中删除文件,再使用git rm命令记录此次移除文件的操作(删除暂存区中该文件的修改快 ...

  8. Scatter 散点图

    散点图 首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据.生成1024个呈标准正态分布的二维数据组 (平均数是0,方差为1) 作为一个数据集,并图像 ...

  9. NGS NGS ngs(hisat,stringtie,ballgown)

    NGS ngs(hisat,stringtie,ballgown) #HISAT (hierarchical indexing for spliced alignment of transcripts ...

  10. 锻造(forging)

    --九校联考24OI__D1T1 题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打,于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现--自己连一个史莱姆都打不过了. 勇 ...