【Hive】(二)环境介绍

学习的搬运工,笔记摘自 实验楼课程

目录

1、实验介绍

2、Hive运行模式

3、下载安装及配置

4、本地模式

5、内嵌模式


1、实验介绍

实验内容

  • Hive 安装与准备
  • Hive 的运行模式
  • Hive 与mysql数据库的连接

实验知识点

  • 配置数据库连接驱动
  • 运行模式
  • mysql

实验环境

  • Hive 1.2.1
  • hadoop 2.7.3
  • Xfce终端

2、Hive运行模式

与 Hadoop 类似,Hive 也有 3 种运行模式:

1. 内嵌模式

将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

2. 本地模式

这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这就可以支持多会话和多用户连接了。

3. 远程模式

此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。

3、下载安装及配置

首先打开终端切换到hadoop用户下:

su -l hadoop #密码为hadoop

3-1

Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。本次实验,使用Hive 1.2.1版本。Hive 1.2.1 可以在 Hadoop V2.7.x以上环境中工作。

  • 下载apache-hive-1.2.1-bin.tar.gz 后,对其进行解压: tar zxvf apache-hive-1.2.1-bin.tar.gz

配置系统环境变量

  • 修改/etc/profile文件。
  • 修改 .bashrc 文件
sudo vim /etc/profile
# Hive environment
export HIVE_HOME=/opt/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin

注意:个人实验在/etc/profile配置环境信息即可,而在实际生产环境中,运维人员会将配置信息统一写到专门的文件中

Hadoop集群启动

先进入的/opt/hadoop-2.7.3/sbin目录下,再启动hdfs

$ cd /opt/hadoop-2.7.3/sbin
$ hdfs namenode -format                 #namenode初始化
$ ./start-all.sh                          # 启动hadoop

验证hdfs是否启动成功

  1. 输入jps查看相关进程是否存在
  2. 输入hadoop dfs -fs /确定能否链接成功

2-3-1

4、本地模式

现在我们替换默认的 Derby 数据库为 MySQL数据库。

(1)下载安装 MySQL

$ sudo apt-get install mysql-server

本实验环境下默认是安装了 MySQL 的,直接启动它:

$ sudo service mysql start

添加 root 用户,创建 hive 数据库:

mysql -u root -p  #没有密码直接回车即可
create database hive;  #创建hive数据库
grant all on hive.* to 'hive'@'localhost' identified by 'hive';   #创建用户hive

此处输入图片的描述

此处输入图片的描述

虽然 MySQL 已经默认安装,但我们还需要下载一个 MySQL 的 JDBC 驱动包。这里使用的是 mysql-connector-java-5.1.32-bin.jar,你需要将其复制到$HIVE_HOME/lib 目录下面:

$ sudo mv /home/shiyanlou/mysql-connector-java-5.1.32-bin.jar /opt/apache-hive-1.2.1-bin/lib/

这里我们提供了 mysql-connector-java-5.1.32.jar的下载链接,需要的同学可以自行下载:

wget http://labfile.oss.aliyuncs.com/courses/38/mysql-connector-java-5.1.32.rar

(2)修改 hive-site.xml 配置文件

最后,依然是修改 $HIVE_HOME/conf 下的 hive-site.xml 文件,把默认的 Derby 修改为 MySQL :

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    //所连接的MySQL数据库实例
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    //连接的MySQL数据库驱动
    <value>com.mysql.jdbc.Driver</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    //连接的MySQL数据库用户名
    <value>hive</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    //连接的MySQL数据库密码
    <value>hive</value>
</property>

(3)启动 Hive

初始化hive元数据库:

schematool -dbType mysql -initSchema

注意:hive已经初始化,这里仅需要我们启动hive即可。

启动 Hive 的方式如下(需要在实验环境中操作):

cd /opt/apache-hive-1.2.1-bin/bin
hive

2-6-1

5、内嵌模式

注意:由于实验楼配置的本地模式,这里就不给出内嵌模式的运行截图了,同学们可以自己在本地电脑操作,实验楼环境中不需要进行此操作,只有标明了需要在环境中操作的步骤才在环境中操作

(1)hive-site.xml

$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的HBase, 该路径下的 hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现(这里暂时不需要修改,先拷贝):

先切换到对应的目录下操作。

cd /opt/apache-hive-1.2.1-bin/conf/
ls

2-4-1

$ sudo cp hive-default.xml.template hive-site.xml

hive-site.xml 的主要配置有以下,不需要修改:

此处输入图片的描述

此处输入图片的描述

  • hive.metastore.warehouse.dir 该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。
  • hive.exec.scratchdir 该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。

同时我们还要修改 Hive 目录下 /conf/hive-env.sh 文件(请根据自己的实际路径修改),该文件默认也不存在,同样是拷贝它的模版来修改:

cat hive-env.sh

(2)创建必要目录

前面我们看到 hive-site.xml 文件中有两个重要的路径,切换到 hadoop 用户下查看 HDFS (需要先启动 Hadoop)是否有这些路径:

$ hadoop dfs -ls /

2-4-3

没有发现上面提到的路径,因此我们需要自己新建这些目录,并且给它们赋予用户写(W)权限。 注意:这里需要同学们实际操作,新建这些目录

$ hadoop dfs -mkdir /user
$ hadoop dfs -mkdir /user/hive
$ hadoop dfs -mkdir /user/hive/warehouse
$ hadoop dfs -mkdir /tmp
$ hadoop dfs -mkdir /tmp/hive
$ hadoop dfs -chmod 777 /user/hive/warehouse
$ hadoop dfs -chmod 777 /tmp/hive

2-4-4

检查是否新建成功 hadoop dfs -ls / 以及 hadoop dfs -ls /user/hive/ :

2-4-5

(3)修改 io.tmpdir 路径

同时,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value ,可以自己新建一个目录来替换它,例如 /home/hadoop/hive/iotmp 。(以下是一个修改示例,其他的同理)

<value>${system:java.io.tmpdir}/${system:user.name}</value>

改成

<value>/home/hadoop/hive/iotmp</value>

并且需要在/home/hadoop/下建立相应的目录

$ mkdir /home/hadoop/hive

如果不修改这个目录,你很可能会出现如下错误:

此处输入图片的描述
(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可), 同样注意修改写权限。

(4)运行 Hive

前面我们已经提到过,内嵌模式使用默认配置和 Derby 数据库,所以无需其它特别修改直接运行 hive(确保 Hadoop 已经先启动)。完整步骤如下:

cd ..
cd bin/
schematool -dbType derby -initSchema  # 初始化hive的元数据库
hive  #启动hive
发布了44 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/YYIverson/article/details/101112016