Hive1.2.2详细安装教程

安装 Hive1.2.2

Hive—般在工作站上运行。

它把SQL查询转换为一系列在Hadoop集群上运行的作业。

Hive把数据组织为表,通过这种方式为存储在HDFS上的数据赋予结构。

元数据(如表模式)存储在metastore数据库中。

Hive的安装模式分为三种,分别是嵌入模式、本地模式和远程模式。(其实指的是meta服务)下面针对这三种模式进行介绍:

嵌入模式:使用内嵌的 Derby数据库存储元数据,这种方式是Hive的默认安装方式,配置简单,但是一次只能连接一个客户端,适合用来测试,不适合生产环境。

本地模式:采用外部数据库存储元数据,该模式不需要单独开启Metastore服务,因为本地模式使用的是和Hive在同一个进程中的Metastore服务。

远程模式:与本地模式一样,远程模式也是采用外部数据库存储元数据。不同的是,远程模式需要单独开启Metastore服务,然后每个客户端都在配置文件中配置连接该Metastore服务。远程模式中,Metastore服务和Hive运行在不同的进程中。使用该模式。

1. 环境准备

安装Hadoop。配置好环境变量。

2. 下载解压

下载Hive 的一个发布版本,然后把压缩位解压到工作站上合适的位置:.

tar xzf apache-hive-x.y.z-bin*tar.gz

3. 配置环境变量

把Hive放在你自己的路径下以便于访问:

export HIVE_HOME=/opt/apache_hive_x.y.z_bin

export PATH= P A T H : PATH: PATH:HIVE_HOME/bin

4. 配置hive

修改hive-env.sh

cp hive-env.sh.template hive-env.sh

export HADOOP_HOME=/export/servers/hadoop-2.7.4

如果设置了环境变量,可以不修改。

配置 hive-site.xml

# cp -p hive-default.xml.template hive-site.xml

<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>root</value>
  </property>
  <property>
     <name>javax.jdo.option.ConnectionPassword</name>
     <value>123456</value>
  </property>
</configuration>

注意上传MySQL驱动包到 /export/servers/apache-hive-1.2.1-bin/lib

5. 启动hive

此时已经可以通过shell使用hive了:

hive

4. 启动hive服务

这里启动hive的一些服务使得可以多种方式使用hive。

启动 hiveserver2

hiveserver2 &

启动metastore 服务

hive --service metastore &

默认它包含一个内嵌的以本地磁盘作为存储的Derby数据库实例,可以修改为mysql,也可以是远程metastore服务。

5.问题解决

1.Exception in thread “main” java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D

解决:这是因为在hive-site.xml配置文件中需要配置system:java.io.tmpdir属性。

在配置文件中加入:

<property>
  <name>system:java.io.tmpdir</name>
  <value>/usr/local/hive/tmp</value>
</property>
<property>
   <name>system:user.name</name>
   <value>${user.name}</value>
</property>
  1. [ERROR] Terminal initialization failed; falling back to unsupported
    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

解决:Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.x.x.jar的jar包替换掉hadoop中的
cp /usr/local/hive/libjline.xxx.jar /usr/local/hadoop/share/hadoop/yarn/lib/jline-x.x.x4.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值