为了账号安全,请及时绑定邮箱和手机立即绑定

windows下Hive搭建踩坑汇总

标签:
大数据

前言:

Hive是一个基于Hadoop的数据仓库工具,以一种类SQL的HQL语句操作Hadoop数据仓库(HDFS等)。所以本地windows安装前需要先搭建Hadoop。前面文章已经大概介绍了环境搭建和踩坑汇总,所以这里也依旧只是介绍基础的安装方法。因为关于Hive的安装,网上其实有很多文章,这里更多的是小北在安装过程中的遇到的各种坑的汇总以及解决方法。

环境:

  1. windows10

  2. hadoop2.7.7

  3. mysql-connector-java-5.1.7-bin.jar

  4. hive2.1.1

简易安装:

1. Hadoop本地搭建,略过。

2. Hive下载安装,环境变量配置,略过。

3. Hive config配置。

(1). 找到hive的conf下的以下四个文件再按下面方式修改。

4. 创建目录。

(1). 先将mysql-connector-java-5.1.7-bin.jar文件移动到hive的lib中,如下。

(2). 现在hive根目录下创建一个my_hive再创建以下四个目录。

5. 修改hive-env.sh

(1). 找到hive的conf下的hive-env.sh并添加以下几个配置。

6. 修改hive-site.xml

(1). 找到hive的conf下的hive-site.xml。

(2). 修改以下几个选项。

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>${java.io.tmpdir}/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
</property>

<property>
    <name>hive.downloaded.resources.dir</name>
    <value>E:/2setsoft/1dev/apache-hive-2.1.1/my_hive/resources_dir/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>
    <description>Username to use against metastore database</description>
  </property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>password to use against metastore database</description>
  </property>


7. 在Hadopp上创建HDFS目录

(1). 创建以下目录并授予777权限。

(2). 在hadoop控制台上查看。

8. 创建MySQL数据库

(1). 创建hive数据库,可以以命令或者navicat方式创建。

create database if not exists hive default character set latin1;

9. 启动 Hive metastore

(1). 安装完毕只需要启动一次,启动后Mysql的hive数据库会多出以下表格。

hive --service metastore

10. 启动hive

(1). 如果配置了hive环境变量,如果没有则进入hive目录的bin文件下,输入hive。

(2). 启动成功没有报错,示例创建一张表格,输入以下HQL语句创建。

create table stu(id int, name string)

(3). 进入hadoop的控制台就可以查看了。

11. HQL几个常见命令

hive
启动hive

show databases;
查看所有数据库

use default;
打开指定数据库

show tables;
根据指定的数据库下展示所有数据表

desc movie;
查看 movie表结构

create movie(id int, name string);
创建了一个有id和name两个字段的表格

quit;
退出hive

报错集锦

1. HiveConf of name hive.metastore.local does not exist

2. Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 2.1.0

在hive数据库的version添加一条记录,如下

3. applying authorization policy on hive configuration: java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got '%' at position 23: …:java.io.tmpdir%̲7D/%7Bsystem:user.name%7D Beeline version 2.1.1 by Apache Hive

打开hive-site.xml,找到hive.exec.local.scratchdir, 将带有system:的标识全部去掉,如下

4. hadoop的web控制台文件系统,打开某个目录报错: Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp/hive/Administrator":Administrator:supergroup:drwx------

进入hadoop命令,输入hadoop fs -chmod 777 /tmp/hive

Default数据仓库默认位置:hdfs上的:/user/hive/warehouse路径下

<property>
	<name>hive.metastore.warehouse.dir</name>
	<value>/user/hive/warehouse</value>
	<description>location of default database for the warehouse</description>
</property>
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
PHP开发工程师
手记
粉丝
1
获赞与收藏
8

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消