您的位置:首页 > 其它

Ubuntu下Hive-2.1.1安装

2017-04-13 22:38 274 查看
hive的元数据存储默认是derby数据库,以下是将mysql作为元数据的存储数据库

1)下载包,解压包,移动包到某位置(自己指定)

2)添加hive的环境变量,根据实际安装情况来定(ubuntu是在.bashrc文件中)

export HIVE_HOME=/usr/local/hive

export PATH="$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf"

3)将/conf文件夹下的hive-default.xml.template 改为 hive-default.xml

mv hive-default.xml.template hive-default.xml

该文件的作用是hive会默认读取该文件中的配置项,如果要修改其中的配置项,需要增加一个配置文件hive-site.xml,需要添加如下的配置节,

<?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>1</value>

    <description>password to use against metastore database</description>

  </property>

以上四个配置节是用于hive链接mysql时的驱动/用户名/密码,其中要求在mysql中创建一个hive数据库,并且将所有的权限赋予hive用户(mysql> grant all on hive.* to 'hive'@'%' identified by '1';flush privileges;)

  <property>

    <name>hive.metastore.warehouse.dir</name>

    <value>/user/hive/warehouse</value>

    <description>dfs dir:this directory is to store data</description>

  </property>

用于将hive数据存储到配置节中指定的hdfs位置

  <property>

    <name>hive.exec.scratchdir</name>

    <value>/user/hive/tmp</value>

    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission.</description>

  </property>

用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果,hdfs路径

  <property>

    <name>hive.exec.local.scratchdir</name>

    <value>/usr/local/hive/iotmp</value>

    <description>Local scratch space for Hive jobs</description>

  </property>

用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果,本地路径

  <property>

    <name>hive.querylog.location</name>

    <value>/usr/local/hive/log</value>

    <description>Location of Hive run time structured log file</description>

  </property>

用于存放hive job的日志

  <property>

    <name>hive.downloaded.resources.dir</name>

    <value>/usr/local/hive/iotmp</value>

    <description>Temporary local directory for added resources in the remote file system.</description>

  </property>

</configuration>

4)创建hive-site.xml配置节中需要的文件夹,同时需要修改权限

hdfs dfs -mkdir /user/hive/warehouse

hdfs dfs -mkdir /user/hive/tmp

hdfs dfs -chmod 777 /user/hive/warehouse

hdfs dfs -chmod 777 /user/hive/tmp

5)修改hive-env.sh

# Set HADOOP_HOME to point to a specific hadoop install directory

HADOOP_HOME=/usr/local/hadoop

# Hive Configuration Directory can be controlled by:

export HIVE_CONF_DIR=/usr/local/hive/conf

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:

export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

6)将hive-exec-log4j2.properties.template改名为hive-log4j2.properties

其中property.hive.log.dir = /usr/local/hive/log 指定hive系统日志的存放位置

property.hive.query.id = hive   

property.hive.log.file = ${sys:hive.query.id}.log 指定hive系统日志的名称

注:hive有两种日志,一种是hive系统日志,在此配置,另一种是job日志,在hive-site.xml中配置

7)拷贝mysql-connector-java-5.1.34到hive的lib路径下

8)设置hive与mysql关联(这样才能将hive的元数据存放到hive的数据库中,如果hive元数据使用derby存储,则不需要这一步)
schematool -initSchma -dbType mysql

9)命令行输入hive启动即可(安装过程可能会遇到奇怪的问题,请认真阅读日志,同时仔细看看hive-default.xml中配置节的意义,确实需要特色设置的再写入到hive-site.xml中,最后mysql-connect-java版本问题可能会导致hive数据库无法删除表等奇怪的问题,仔细分析,慢慢摸索!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: