您的位置:首页 > 其它

Hive远程模式安装

2015-12-25 14:06 495 查看
本文使用远程模式安装Hive,将元数据存储在远程的oracle数据库中(MySQL也可以)。

=============================

安装前

1、下载所需软件

下载hive-1.2.1 http://archive.apache.org/dist/hive/

下载oracle的jdbc驱动 http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

2、创建oracle用户

[code]--创建用户
create user hive identified by oracle;
--赋予权限
grant dba to hive;


===============================

安装Hive

1、解压安装并配置环境变量

解压安装:

[code]tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin ../labc


配置环境变量:

[code]vi /etc/profile


末尾添加

[code]export  HIVE_HOME=/home/hadoop/labc/apache-hive-1.2.1-bin
export  PATH=$PATH:$HIVE_HOME/bin


使环境变量生效,
source /etc/profile


将下载的oracle的jdbc驱动放到安装目录下的lib目录下。

2、编辑配置文件

[code]cd apache-hive-1.2.1-bin/conf
vi hive-site.xml


将下面的配置信息复制黏贴到hive-site.xml文件下。

[code]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- Hive Execution Parameters -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
     <!-- oracle URL 换成你自己的 -->
    <value>jdbc:oracle:thin:@10.0.0.221:1521/ORCL</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
     <!-- oracle user 第一步创建的用户名 -->
    <value>hive</value>                 
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
     <!-- oracle password 第一步创建的用户名对应的密码 -->
    <value>oracle</value>                            
    <description>password to use against metastore database</description>
  </property>
</configuration>


3、启动hive

如果配置了环境变量,你可以在任意目录启动hive,只需输入
hive




在oracle数据库中验证是否启动成功(如果登录成功,会在oracle中自动创建一系列表)。

此下内容在sqlplus中输入:

[code]SQL> show user;
USER is "HIVE"
SQL> select * from tab;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
NUCLEUS_TABLES TABLE
A TABLE
DBS TABLE
SEQUENCE_TABLE TABLE
SERDES TABLE
TBLS TABLE
SDS TABLE
PARTITION_KEYS TABLE
COLUMNS TABLE
BUCKETING_COLS TABLE
SD_PARAMS TABLE

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
SORT_COLS TABLE
SERDE_PARAMS TABLE
TABLE_PARAMS TABLE

14 rows selected.
SQL>


==============================

启动时出现的问题

1、oracle拒绝连接

首先判定远程主机是否关闭防火墙

关闭防火墙如果还拒绝连接,请在oracle服务器的主机上查看oracle端口是否被占用,默认是1521

netstat -aon | findstr "1521"


如果端口绑定在127.0.0.1,则远程当然连接不上,具体解决办法oracle修改监听IP地址

2、org.apache.hadoop.dfs.SafeModeException: Cannot create /tmp/hive. Name node is in safe mode

这是由于hadoo运行在安全模式,此时没法对文件系统进行操作。

解决办法:

hadoop  dfsadmin -safemode leave


3、15/12/25 09:38:06 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist

解决办法:

这是在hive-site.xml中配置了

[code] <property>
 <name>hive.metastore.local</name>
  <value>true</value>
  <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>


而在0.10 0.11或者之后的HIVE版本中, hive.metastore.local 属性不再使用,删除掉此属性就行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: