Ubuntu下Hive-2.1.1安装

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数据库无法删除表等奇怪的问题,仔细分析,慢慢摸索!)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值