hive on spark 部署

1. 环境

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases

hive默认使用mr作为计算引擎,当进入cli时会看到以上的提示信息,刚好有hive2.1.0,查了下pom文件,依赖了spark1.6.0,版本应该可以兼容spark1.6.1,所以在此基础上搭建hive on spark环境。

2.搭建hadoop环境

安装过程略。

3.搭建spark环境

安装过程略。

虽要注意的一点是,使用hive on spark模式时,spark-assembly-1.6.1-hadoop2.6.0.jar不能包含hive的相关依赖,所以需要自己编译spark源码,在编译时去掉-Phive参数。

4.安装mysql

采用mysql来存储hive的元数据,使用了免安装的mysql,安装过程略。

5.安装hive

5.1 下载hive2.1.0
https://hive.apache.org/downloads.html

5.2 解压到服务器
/usr/apache-hive-2.1.0-bin

5.3 配置环境变量

export HIVE_HOME=/usr/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/bin
export HCAT_HOME=$HIVE_HOME/hcatalog/

5.4 初始化hive配置

创建hive-default.xml文件
cp hive-default.xml.template hive-default.xml

创建hive-site.xml文件
参考hive-default.xml文件生成hive-site.xml,并将内容修改为以下:

 
      javax.jdo.option.ConnectionURL
      jdbc:mysql://master:3306/hive2?createDatabaseIfNotExist=true
 

 
      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
 

 
      javax.jdo.option.ConnectionUserName
      root
 

 
      javax.jdo.option.ConnectionPassword
      mysql
 

把mysql的驱动包旋转到$HIVE_HOME/lib目录下

初始化元数据:schematool -initSchema -dbType mysql

使用hive进入cli客户端验证hive是否安装成功

5.5 配置hive on spark
添加spark依赖到hive环境中

scala-library.jar
spark-core_2.10-1.6.1.jar
spark-network-common_2.10-1.6.1.jar

设置hive的执行引擎为spark

方式一:进入cli后通过以下命令进行动态设置

set hive.execution.engine=spark;
set spark.master=spark://master:7077;


方式二:在hive-site.xml中进行全局设置

 
    hive.execution.engine
    spark
 

 
    hive.enable.spark.execution.engine
    true
 

 
    spark.master
    spark://master:7077
 


其余一些配置项参考:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-Spark

验证hive on spark

create table tb_user(id int,name string ,age int);
insert into tb_user values(1,'name1',11),(2,'name2',12),(3,'name3',13);

5.6 使用hiveserver2和beline
启动hiveserver2服务:$HIVE_HOME/hiveserver2
通过beline连接hiveserver2


6.安装配置过程遇到问题
问题1

Error: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=,code=0)

在$HODOOP_HOME/hadoop/core-site.xml中添加:


    hadoop.proxyuser.root.groups
    *


    hadoop.proxyuser.root.hosts
    *


问题2
Exception in thread "main" java.lang.NoSuchFieldError: SPARK_RPC_SERVER_ADDRESS


Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
 

spark中不能含有hive的依赖,去掉-Phive进行编译spark

参考:
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
 

你可能感兴趣的:(hive,hive,spark)