码迷,mamicode.com
首页 > 其他好文 > 详细

Spark和Hive的整合

时间:2017-03-04 21:09:11      阅读:952      评论:0      收藏:0      [点我收藏+]

标签:start   设置   round   ima   服务   sql   java   info   元数据   

 


Spark和Hive的整合

node1 spark master
node2 hive 的服务端-->metastore server

1.拷贝 hive-site.xml 到 spark master的 conf 下

node1
  1. <configuration>
  2. <property>
  3. <name>hive.metastore.uris</name>
  4. <value>thrift://node2:9083</value>
  5. <description>Thrift uri for the remote metastore.Used by metastore client to connect to remote metastore.</description>
  6. </property>
  7. </configuration>
技术分享

2.开启hive的元数据服务

 
node2   hive --service metastore    
技术分享

3.启动HDFS和Spark集群

因为hive中源数据是在hdfs上的,所以需要启动hdfs
启动zookeeper 
   zkServer.sh start
启动hdfs
   start-all.sh 
 
启动spark集群
   spark-start-all.sh
 

4.测试 

进入node1spark中bin下启动 spark-shell
   spark-shell --master spark://node1:7077 --executor-memory 1G
技术分享
 
先导入HiveContext的包
scala>import org.apache.spark.sql.hive.HiveContext
技术分享
scala> val hiveContext = new HiveContext(sc)
技术分享
技术分享
 
scala> hiveContext.sql("show tables").show
这一步可能会出现资源问题!
技术分享
出错原因:确保每个节点有足够的资源,因为一开始启动spark shell的时候指定--executor-memory 1G,表明每个executor进程需要1G的资源,但是实际运行时master不能为executor分配足够的资源,所以就报了如上的错误。
解决办法:
    在web端把其他无关的Applications kill(Application ID下方有kill)掉即可
技术分享
 
出现如下结果,表明Spark和hive整合ok
   如果看不到打印信息,在spark shell 中设置
                                           scala>:sc.setSetLogLevel(INFO)
技术分享
 
 
 
 
 
 
 
 
 
 

Spark和Hive的整合

标签:start   设置   round   ima   服务   sql   java   info   元数据   

原文地址:http://www.cnblogs.com/haozhengfei/p/27483a9d86f7f12a237cd35635d5c400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!