博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive 实践(一):部署和安装
阅读量:2495 次
发布时间:2019-05-11

本文共 4009 字,大约阅读时间需要 13 分钟。

一,目标

1、部署hive

二、前提条件

1、环境为centos 6.5

2、已经部署了hadoop伪分布式

3、安装了hbase

4、安装了mysql 5.6.33

三、部署步骤

1、下载安装包

下载hive http://mirrors.hust.edu.cn/apache/   得到apache-hive-2.1.0-bin.tar.gz  ,放到该目录下 /home/soft/hive

2、 在mysql上创建 hive用户, 创建hive用户,数据库等

CREATE USER 'hive'@'archive.cloudera.com' IDENTIFIED BY 'hive'; GRANT ALL ON *.* TO 'hive'@'archive.cloudera.com';create database hive;grant all on hive.* to hive@'%'  identified by 'hive';grant all on hive.* to hive@'archive.cloudera.com'  identified by 'hive';flush privileges; 

退出mysql 

3、安装hive
1)解压安装包

进入/home/soft/hive目录,解压hive安装包 tar -zxvf apache-hive-2.1.0-bin.tar.gz

进入/opt/hadoop目录, mv  /home/soft/hive/apache-hive-2.1.0-bin ./hive

2) 添加环境变量

vi  /etc/profile
export HIVE_HOME=/opt/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin
使其有效
source /etc/profile
4)修改hive-site.xml
    首先进入 hive的conf目录,cp hive/conf/hive-default.xml.template hive/conf/hive-site.xml
   编辑hive-site.xml
 
javax.jdo.option.ConnectionURL
 
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
 
JDBC connect string for a JDBC metastore
 
javax.jdo.option.ConnectionDriverName
 
com.mysql.jdbc.Driver
 
Driver class name for a JDBC metastore
 
javax.jdo.option.ConnectionUserName
 
hive
 
username to use against metastore database
 
javax.jdo.option.ConnectionPassword
 
hive
 
password to use against metastore database
 
hive.metastore.local
 
true
 
       
datanucleus.readOnlyDatastore
       
false
   
   
        
datanucleus.fixedDatastore
       
false
    
   
        
datanucleus.autoCreateSchema
        
true
    
   
       
datanucleus.autoCreateTables
       
true
   
   
       
datanucleus.autoCreateColumns
       
true
   

5)配置hive-env.sh文件,指定HADOOP_HOME

HADOOP_HOME=/usr/local/hadoop
6)下载mysql-connector-java-5.1.6-bin.jar并拷贝到hive 的lib下面
[root@archive lib]# pwd/opt/hadoop/hive/lib[root@archive lib]# [root@archive lib]# cp  /home/soft/hive/*jar  .[root@archive lib]# [root@archive lib]# ls  my*mysql-connector-java-5.1.6-bin.jar[root@archive lib]# 
7)把hive lib目录里面的jline-2.12.jar拷贝到hadoop相应的目录下,替代jline-0.9.94.jar,否则启动会报错
[root@archive lib]# pwd/opt/hadoop/hive/lib[root@archive lib]# cp jline-2.12.jar /opt/hadoop/hadoop-2.6.4/share/hadoop/yarn/lib

四,启动测试hive,启动hadoop后,执行hive命令

    1) 启动 hive server

    

    启动正常,可以通过 jps 命令,显示

    [root@archive hive]# jps

   4944 DataNode
   16356 RunJar
   5105 SecondaryNameNode
   5257 ResourceManager
   18329 Jps
   5353 NodeManager
   4822 NameNode

    注意,多了RunJar

    现在我们可以用hive登录进行操作:  输入hive 回车

    

五:启动异常和处理

   1)  启动报异常,如图

这个是因为之前 

jdbc:mysql://192.168.136.144:3306/hive?createDatabaseIfNotExist=true修改后
 

   2) 启动异常二: 无法连接mysql

    解决: hive 版本太高,降级到2.0.0 问题解决

  3)hive连接mysql  被拒绝

hive采用本地mysql方式,异常Access denied for user 'hive'@'archive.cloudera.com' (using password: YES)

java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.136.144:3306/hive?characterEncoding=UTF-8, username = hive. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
java.sql.SQLException: Access denied for user 'hive'@'archive.cloudera.com' (using password: YES)
解决:
权限问题
#首先用root登录mysql
mysql -uroot -pnmc123
#登录后进行授权
grant all on *.*  to 'hive'@'archive.cloudera.com' identified by'hive'
grant all on *.*  to  hive@'%'  identified by 'hive';
flush privileges; 
#重启mysql
service mysql restart
#确认
mysql -uhive -phive
#登录后,使用数据库
use mysql
#如果不报错,就成功了。

    

你可能感兴趣的文章
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>
Django 源码阅读:url解析
查看>>
Docker面试题(一)
查看>>
第一轮面试题
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
一、redis面试题及答案
查看>>
消息队列2
查看>>
C++ 线程同步之临界区CRITICAL_SECTION
查看>>
测试—自定义消息处理
查看>>
MFC中关于虚函数的一些问题
查看>>
根据图层名获取图层和图层序号
查看>>
规范性附录 属性值代码
查看>>
提取面狭长角
查看>>
Arcsde表空间自动增长
查看>>
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
查看>>
记一次断电恢复ORA-01033错误
查看>>
C#修改JPG图片EXIF信息中的GPS信息
查看>>