上一篇文章我们实现了Java+Spark+Hive+Maven实现和异常处理,测试的实例是打包运行在linux环境,但当直接在Windows系统运行时,会有Hive相关异常的输出,本文将帮助您如何在Windows系统上集成Hadoop+Spark+Hive开发环境。
一.开发环境
系统:windows 7
JDK:jdk1.7
eclipse:Mars.2 Release (4.5.2)
Hadoop:hadoop-2.6.5
Spark:spark-1.6.2-bin-hadoop2.6
Hive:hive-2.1.1
二.前期准备
1.系统环境配置
JDK,Hadoop和Spark配置系统环境
2.Hadoop相关文件
winutils.exe和hadoop.dll,下载地址:hadoop2.6.5中winutils和hadoop
将上面2个文件放置..\hadoop-2.6.5\bin目录下;
将winutils.exe同时放置到C:\Windows\System32目录下;
3.新建tmp/hive目录
在应用工程目录中新建tmp/hive目录,由于我的工程是放置在E盘,顾可以在E盘新建tmp/hive目录
三.hive配置
1.Hive环境
本系统的Hive是部署在远程linux集群环境上的。主安装目录ip地址:10.32.19.50:9083
具体Hive在linux环境的部署,请查看相关文档,本文不介绍。
2.Windows中hive-site.xml文件配置
四.实例测试
需求:查询hive数据,eclipse正常显示
1.实例工程结构
2.pom文件
3.测试用例实现
package com.lm.hive.SparkHive;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.hive.HiveContext;
/**
* Spark sql获取Hive数据
*
*/
public class App
{
public static void main( String[] args )
{
SparkConf sparkConf = new SparkConf().setAppName("SparkHive").setMaster("local[2]");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
//不要使用SQLContext,部署异常找不到数据库和表
HiveContext hiveContext = new HiveContext(sc);
// SQLContext sqlContext = new SQLContext(sc);
//查询表前10条数据
hiveContext.sql("select * from bi_ods.owms_m_locator limit 10").show();
sc.stop();
}
}