hive安装

1 前提

  1. 安装java
  2. 安装hadoop

2 下载安装

2.1 下载

从这里下载,这里以apache-hive-2.3.5为例。 https://hive.apache.org/downloads.html

2.2 解压 & 配置环境变量

tar -xzvf hive-2.3.5.tar.gz
export HIVE_HOME=/home/xxx/hive-2.3.5
export PATH=$HIVE_HOME/bin:$PATH

3 配置

3.1 前提

  1. 必须在path中有hadoop,或者
  2. export HADOOP_HOME=<hadoop-install-dir>

3.2 修改配置文件

cd HIVE_HOME/conf
cp hive-default.xml.template hive-default.xml
cp hive-log4j2.properties.template hive-log4j2.properties
  1. 默认情况下hive从hive-default.xml中获取配置,所以这个最好不要改动,当做是hive的默认配置
  2. 可以在hive-site.xml中定义或者重定义配置。重定义可以覆盖hive-default.xml中的配置。所以有新的修改可以改在hive-site.xml中
  3. hive-site.xml默认是空白的,在添加配置项的时候需要在<configuration></configuration>中添加,否则启动hive会报错。

3.3 配置日志文件(可选)

hive的日志默认在/tmp/<user.name>/下,可以通过修改配置文件来改变:

  1. 在$HIVE_HOME/conf/hive-log4j2.properties中添加 hive.log.dir=<other_location>
  2. 修改query log位置:在hive-site.xml中添加如下配置:
 <property>
    <name>hive.querylog.location</name>
    <value>other_location</value>
</property>

3.4 创建hdfs文件

在hdfs中创建如下目录:

  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

/user/hive/warehouse 是在$HIVE_HOME/conf/hive-default.xml 中指定的(hive.metastore.warehouse.dir), 如3.2所述,如果要修改该路径,可以在hive-site.xml中修改。

4 运行

4.1 修改内置derby配置

hive默认使用内嵌的derby数据库来存储元数据,这样有个缺点:

  1. derby会在运行hive命令的本地目录生成metastore_db文件,如果换一个目录就看不到之前的元数据了
  2. 每次切换目录都需要运行$HIVE_HOME/bin/schematool -dbType -initSchema 来初始化metastore_db

原因就是在hive-default.xml的默认配置下,metastore_db是生成在当前目录:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>

所以我们可以配置下内置的derby,让其metastore_db只生成在一个目录下: 在hive-site.xml中添加如下配置,来覆盖默认配置:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:/home/xxx/metastore_db;create=true</value>
</property>

4.2 初始化derby

运行命令

$HIVE_HOME/bin/schematool -dbType derby -initSchema

运行结果最后是 schemaTool completed,则表示成功,这个时候可以看到在/home/xxx/下有metastore_db存在。

如果出现类似Error: FUNCTION 'NUCLEUS_ASCII' already exists的错误,则说明在/home/xxx/下存在有metastore_db,则删除掉metastore_db,重新运行以上命令即可。

4.3 启动hive

配置好外置的derby后,我们就可以启动hive了。运行show tables 验证安装。

参考

  1. https://cwiki.apache.org/confluence/display/Hive/GettingStarted
  2. https://cwiki.apache.org/confluence/display/Hive/HowToContribute#HowToContribute-UnderstandingHiveBranches
  3. https://stackoverflow.com/questions/43947930/unable-to-initialize-hive-with-derby-from-brew-install

posted on 2019-07-14 08:52  吼吼吼的吼  阅读(157)  评论(0编辑  收藏  举报

导航