实验目的

学会安装与配置Hive(前提是Hadoop已完成安装和配置)。

实验原理

如果Hadoop是完全分布式安装,那么Hive要在每一个节点上安装。

Hive需要存储metastore,metadata即元数据。元数据包含用Hive创建的database、tabel等的元信息。元数据存储在关系型数据库中。如Derby、MySQL等。

metastore的作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

Hive Metastore有三种配置方式,分别是:

(1)Embedded Metastore Database (Derby) 内嵌模式

(2)Local Metastore Server 本地元存储

(3)Remote Metastore Server 远程元存储

这三种配置方式的区别是:

内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境;

本地元存储和远程元存储都采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.通常使用MySQL;

本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程元存储的metastore服务和hive运行在不同的进程里。

本实验采取内嵌模式安装。

实验步骤

步骤1.检查Java环境是否安装。

#java -version
java version "1.8.0_144" 
Java(TM) SE Runtime Environment (build 1.8.0_144-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

步骤2.检查Hadoop环境是否安装。

#cd /usr/local/hadoop
#hadoop version
Hadoop 2.7.4
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0 
From source with checksum 79e53ce7994d1628b240f09af91e1af4

步骤3.如果步骤1或2没完成,则按照《Hadoop基础实验》的实验一来完成,完成后继续步骤4.

步骤4.启动Hadoop。

#start-dfs.sh
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

步骤5.下载Hive。

下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-1.2.2/,得到apache-hive-1.2.2-bin.tar.gz

下载后将自动存入~/Downloads目录。

步骤6.安装hive

解压安装包

#sudo tar -zxf apache-hive-1.2.2-bin.tar.gz -C /usr/local
#cd /usr/local
#sudo mv apache-hive-1.2.2-bin hive

给安装用户赋权限,user为当前用户名

#sudo chown -R user hive

设置环境变量

#sudo edit ~/.bashrc

在打开的文件中添加以下内容:

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.

保存退出,生效环境变量

#source ~/.bashrc

步骤7.下载并安装Apache Derby。

此处,我们使用apache derby作为Hive的元数据库。

#cd ~
# wget http://archive.apache.org/dist/db/derby/db-derby-10.4.2.0/db-derby-10.4.2.0-bin.tar.gz

解压derby

#sudo tar -zxf db-derby-10.4.2.0-bin.tar.gz -C /usr/local
#cd /usr/local
#sudo mv db-derby-10.4.2.0-bin derby
#sudo chown -R user derby

配置环境变量

#sudo edit ~/.bashrc

在打开的文件中添加以下内容:

export DERBY_HOME=/usr/local/derby
export PATH=$PATH:$DERBY_HOME/bin
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar

保存退出,生效环境变量

#source ~/.bashrc

创建文件以存储元数据

# mkdir $DERBY_HOME/data

步骤8.配置Hive。

配置hive-site.xml

#cd $HIVE_HOME/conf
#cp hive-default.xml.template hive-site.xml

因为Hive默认内嵌模式安装,其hive-site.xml默认derby的参数,我们不需更改。

配置hive-env.sh

#cp hive-env.sh.template hive-env.sh
#gedit hive-env.sh

在打开的文件中添加以下内容:

export HADOOP_HOME=/usr/local/hadoop

配置jpox.properties

#touch jpox.properties
# gedit jpox.peoperties

在打开的文件中添加以下内容:

javax.jdo.PersistenceManagerFactoryClass =

org.jpox.PersistenceManagerFactoryImpl
org.jpox.autoCreateSchema = false
org.jpox.validateTables = false
org.jpox.validateColumns = false
org.jpox.validateConstraints = false
org.jpox.storeManagerType = rdbms
org.jpox.autoCreateSchema = true
org.jpox.autoStartMechanismMode = checked
org.jpox.transactionIsolation = read_committed
javax.jdo.option.DetachAllOnCommit = true
javax.jdo.option.NontransactionalRead = true
javax.jdo.option.ConnectionDriverName = org.apache.derby.jdbc.ClientDriver
javax.jdo.option.ConnectionURL = jdbc:derby://localhost:1527/metastore_db;create = true
javax.jdo.option.ConnectionUserName = APP
javax.jdo.option.ConnectionPassword = mine

步骤9.在HDFS中配置hive的存取目录。

# $HADOOP_HOME/bin/hadoop fs -mkdir /tmp 
# $HADOOP_HOME/bin/hadoop fs -mkdir /user
# $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive
# $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

步骤10.启动Hive命令行,测试Hive。

# cd $HIVE_HOME
# bin/hive
hive>show tables;

results matching ""

    No results matching ""