hadoop安装hive及java调用hive
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可参考
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的更多相关文章
- centos6.5 redis 安装配置及java调用
1.安装gcc 执行命令 yum install gcc 2. 安装ruby环境 yum install ruby yum install rubygems gem install redis 下载 ...
- Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)
前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.cs ...
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...
- linux系统下安装redis以及java调用redis
关系型数据库:MySQL Oracle 非关系型数据库:Redis 去掉主外键等关系数据库的关系性特性 1)安装redis编译的c环境,yum install gcc-c++ 2)将redis-2. ...
- Hadoop生态组件Hive,Sqoop安装及Sqoop从HDFS/hive抽取数据到关系型数据库Mysql
一般Hive依赖关系型数据库Mysql,故先安装Mysql $: yum install mysql-server mysql-client [yum安装] $: /etc/init.d/mysqld ...
- Linux 系统基于 Hadoop 安装 Hive
[注意]安装hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可(在所有的namenode上安装),可以不在datanode节点的机器上安装. ...
- Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)
说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...
- Hive学习之一 《Hive的介绍和安装》
一.什么是Hive Hive是建立在 Hadoop 上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储.查询和分析存储在 Hadoop 中的大规模数据 ...
- 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法
前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...
随机推荐
- echart 单选legend 并排序
java代码 List<Map<String, Object>> AllList = null; JSONArray jsonArray = JSONArray.fromObj ...
- Android中使用commons-codec-1.6.jar 进行Base64编解码出现的问题
编码时出现异常: java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; in c ...
- python的执行过程
1,解释器找到代码文件 2,将代码字符串按照文件头或者解释器默认的编码格式加载待内存,转为unicode格式 3,将代码字符串按照语法规则解释 4,转为二进制语言 5,进行执行
- PhoenixFD插件流体模拟——UI布局【Resimulation】详解
Liquid Resimulation 流体再(重)渲染 本文主要讲解Resimulation折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 综述 Liquid Resi ...
- NodeJs命令
cd命令,就是change directory的缩写,表示更改当前目录 cls命令,清屏.清屏幕命令(CLS,CLear Screen) tab键,自动补全. 上键,提示最近的命令 在cmd窗口 ...
- PHP安装linux
PHP 7.1.26 安装 1. 下载安装包 例php-7.1.26.tar.gz 下载地址:http://cn2.php.net/downloads.php 2. 放入/root 3. 切换目录 # ...
- Git 基础 - 删除暂存区的文件
1 直接删除文件 这个文件会有两个操作:已暂存的修改.未暂存的删除 2 直接删除文件 + 记录删除操作 先在工作目录中删除文件,再使用git rm命令记录此次移除文件的操作(删除暂存区中该文件的修改快 ...
- Scatter 散点图
散点图 首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据.生成1024个呈标准正态分布的二维数据组 (平均数是0,方差为1) 作为一个数据集,并图像 ...
- NGS NGS ngs(hisat,stringtie,ballgown)
NGS ngs(hisat,stringtie,ballgown) #HISAT (hierarchical indexing for spliced alignment of transcripts ...
- 锻造(forging)
--九校联考24OI__D1T1 题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打,于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现--自己连一个史莱姆都打不过了. 勇 ...