Alluxio计算框架整合系列 (一) -- Alluxio & Apache Hive

我们在上篇文章中,已经演示了如何安装Alluxio,并将HDFS作为Alluxio的底层文件系统。

这里我们将通过一系列的文章,来说明如何将Alluxio和常见的一些结算框架实现集成,用以提交查询。

本篇,将说明如何实现 Alluxio和Apache Hive的集成(至于查询效率到底有多少提升?我们稍后将通过专门的查询性能测试对比来说明)。



其他更多关于Alluxio的使用和交流,请加QQ群讨论:
Alluxio计算框架整合系列 (一) -- Alluxio & Apache Hive_第1张图片
Alluxio-China 452894882


一、准备工作

1. 已经安装好Hadoop基础环境和Hive客户端环境

2. 系统已安装Java1.7以上版本的JDK

3. 通过Hive能正常提交查询作业


二、配置及环境准备工作

1. 修改hadoop、hive配置文件中Alluxio相关配置项

在hvie客户端所在的服务器,修改Hadoop配置文件 core-site.xml,增加如下黑体部分示例的配置项

[op1@HIVE_CLIENT_HOST_NAME01 app]$ vi /etc/hadoop/conf/core-site.xml








	
	
		fs.alluxio.impl
		alluxio.hadoop.FileSystem
	
	
		fs.AbstractFileSystem.alluxio.impl
		alluxio.hadoop.AlluxioFileSystem
	
								
	
		alluxio.user.file.writetype.default
		CACHE_THROUGH
	

在hvie客户端所在的服务器,修改hive-site.xml, 增加如下 黑体部分示例的配置项

[op1@HIVE_CLIENT_HOST_NAME01 app]$ vi /etc/hive/conf/hive-site.xml





	
	
		fs.defaultFS
		alluxio://:19998
	
	
		alluxio.user.file.writetype.default
		CACHE_THROUGH
	


在Hadoop运行环境配置文件hadoop-env.shhadoop-env.sh中增加如下黑体所示HADOOP_CLASSPATH配置项

[op1@HIVE_CLIENT_HOST_NAME01 app]$ vi /etc/hadoop/conf/hadoop-env.sh

export HADOOP_CLASSPATH=//core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar:${HADOOP_CLASSPATH}


2. 分发alluxio 客户端jar包到所有Hadoop MapReduce节点,并重启Hadoop集群的NodeManager

将上述步骤,hadoop-env.sh中配置的Alluxio客户端jar文件//core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar分发到所有Hadoop MapReduce节点的$HADOOP_HOME/share/hadoop/common/lib 目录中, 之后重启所有Hadoop MapReduce节点。


[op1@HIVE_CLIENT_HOST_NAME01 app]$ ls -l $HADOOP_HOME/share/hadoop/common/lib/ | grep "alluxio-core-client"
-rw-rw-r-- 1 op1 op1 46835687 Jan 15 21:50 alluxio-core-client-1.4.0-jar-with-dependencies.jar

3. 分发alluxio 客户端jar包到Hive跟目录下的lib目录

将上述步骤,hadoop-env.sh中配置的Alluxio客户端jar文件//core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar分发到Hive跟目录下的lib目录中

[op1@HIVE_CLIENT_HOST_NAME01 app]$ ls -l $HIVE_HOME/lib/ | grep "alluxio-core-client"
-rw-r--r--  1 op1 op1 46835687 Jan 15 21:53 alluxio-core-client-1.4.0-jar-with-dependencies.jar

三、验证

1. 在安装有alluxio的节点上行执行如下命令,查看是否存在目录路径/user/hive/warehouse和/tmp

[op1@HIVE_CLIENT_HOST_NAME01 current]$ ./bin/alluxio fs ls alluxio://SVR3404HW1288:19998/user/hive/
drwxr-xr-x     op1            op1            1.00B     01-15-2017 23:17:19:661  Directory      /user/hive/warehouse


如果不存在上述目录 ,请执行如下命令创建目录路径/user/hive/warehouse和/tmp

./bin/alluxio fs mkdir /tmp

./bin/alluxio fs mkdir /user/hive/warehouse

./bin/alluxio fs chmod 775 /tmp

./bin/alluxio fs chmod 775 /user/hive/warehouse

2. 在hive客户端所在服务器本地,创建数据文件hive-test.txt,写入数据如下

1 hadoop
2 hive
3 hbase
4 hello
5 alluxio-hive


3. 启动hive客户端,创建表,并加载本地数据到该表

hive> CREATE TABLE IF NOT EXISTS test_alluxio_hive_tbl (id INT,word STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LINES TERMINATED BY "\n";
OK
Time taken: 0.762 seconds
hive> LOAD DATA LOCAL INPATH 'hive-test.txt' OVERWRITE INTO TABLE test_alluxio_hive_tbl;
Loading data to table default.words
Table default.words stats: [numFiles=1, numRows=0, totalSize=32, rawDataSize=0]
OK
Time taken: 1.302 seconds


4. 执行查询

hive> show tables;
OK
test_alluxio_hive_tbl
words
Time taken: 0.578 seconds, Fetched: 2 row(s)
hive> select * from test_alluxio_hive_tbl;
OK
1	hadoop
2	hive
3	hbase
4	hello
5	alluxio-hive
Time taken: 0.498 seconds, Fetched: 5 row(s)
hive> 

另,也可以在Alluxio Master Web UI中查看数据文件

Alluxio计算框架整合系列 (一) -- Alluxio & Apache Hive_第2张图片

5. 删除表

hive> drop table if exists test_alluxio_hive_tbl;
OK
Time taken: 0.172 seconds
hive> 




你可能感兴趣的:(大数据,数据仓库,OLAP)