hive 实践(一):部署和安装

一,目标

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用户,数据库等

<span style="font-family:Microsoft YaHei;font-size:12px;">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; </span>

退出mysql 

hive 实践(一):部署和安装_第1张图片


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
hive 实践(一):部署和安装_第2张图片

使其有效
source /etc/profile


4)修改hive-site.xml
    首先进入 hive的conf目录,cp hive/conf/hive-default.xml.template hive/conf/hive-site.xml
   编辑hive-site.xml
<span style="font-family:Microsoft YaHei;font-size:12px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>
<property>
  <name>hive.metastore.local</name>
  <value>true</value>
  <description></description>
</property>
<property>
        <name>datanucleus.readOnlyDatastore</name>
        <value>false</value>
    </property>
    <property> 
        <name>datanucleus.fixedDatastore</name>
        <value>false</value> 
    </property>
    <property> 
        <name>datanucleus.autoCreateSchema</name> 
        <value>true</value> 
    </property>
    <property>
        <name>datanucleus.autoCreateTables</name>
        <value>true</value>
    </property>
    <property>
        <name>datanucleus.autoCreateColumns</name>
        <value>true</value>
    </property>
</configuration>
</span>

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

HADOOP_HOME=/usr/local/hadoop



6)下载mysql-connector-java-5.1.6-bin.jar并拷贝到hive 的lib下面
<span style="font-family:Microsoft YaHei;font-size:12px;">[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]# </span>
7)把hive lib目录里面的jline-2.12.jar拷贝到hadoop相应的目录下,替代jline-0.9.94.jar,否则启动会报错
<span style="font-family:Microsoft YaHei;font-size:12px;">[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</span>


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

    1) 启动 hive server

    hive 实践(一):部署和安装_第3张图片

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

    [root@archive hive]# jps
   4944 DataNode
   16356 RunJar
   5105 SecondaryNameNode
   5257 ResourceManager
   18329 Jps
   5353 NodeManager
   4822 NameNode

    注意,多了RunJar

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

hive 实践(一):部署和安装_第4张图片

    

五:启动异常和处理

   1)  启动报异常,如图

hive 实践(一):部署和安装_第5张图片

这个是因为之前 

<span style="font-family:Microsoft YaHei;font-size:12px;">jdbc:mysql://192.168.136.144:3306/hive?createDatabaseIfNotExist=true修改后</span>
<span style="font-family:Microsoft YaHei;font-size:12px;">
</span>
 
 

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


hive 实践(一):部署和安装_第6张图片

    解决: 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
#如果不报错,就成功了。

    

你可能感兴趣的:(hive)