分享

求问怎么设置sparksql读取hive的数据库

从网上找了几篇说法一一试了都没有用,不知道是不是帖子比较久远的原因
我的hive是2.1.1,spark是2.1.0,hadoop是2.7.3
求详细的配置思路,谢谢啦

我首先在hive-site.xml中
hive配置中
<property>
                <name>hive.metastore.warehouse.dir</name>
                <value>hdfs://master:9000/user/hive/warehouse</value>
        </property>

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:MySQL://IP:3306/hive?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>ndscbigdata</value>
    </property>

然后将hive-site.xml cp到spark的conf目录下,并在其中添加
<property>
      <name>hive.metastore.uris</name>
      <value>thrift://IP:9083</value>
    </property>

然后在spark下启动spark-sql,不能访问hive的数据库
然后有几个警告提示是
Unable to load native-hadoop library for your platform... using builtin-Javaclasses where applicable

failled to get database global_temp


WARN metastore.ObjectStore: Failed to get database global_temp, returning NoSuchObjectException
WARN metastore.ObjectStore: Failed to get database hive


补充内容 (2017-7-9 12:37):
解决看这:http://dblab.xmu.edu.cn/blog/1383-2/

补充内容 (2017-7-11 10:00):
想请问一下,spark下建表是会保存在本地还是在集群上?为什么我的sparkSQL建的表都保存的本地,而且建表成功,查询的时候会提示找不到文件,但是文件的确存在

已有(19)人评论

跳转到指定楼层
sstutu 发表于 2017-7-7 14:52:25
楼主怎么设置的可以贴出代码来。
在spark代码中设置下
hive.metastore.uris,连接上集群,然后使用hive sql即可
回复

使用道具 举报

yangyixin 发表于 2017-7-7 15:10:07
sstutu 发表于 2017-7-7 14:52
楼主怎么设置的可以贴出代码来。
在spark代码中设置下
hive.metastore.uris,连接上集群,然后使用hive s ...

贴出来了,麻烦帮我看一下,我设置uris了,然后是不是应该进入spark-sql,就可以 use hive了?
但是我并没有查询到在hive中建的表
回复

使用道具 举报

yangyixin 发表于 2017-7-7 15:36:44
sstutu 发表于 2017-7-7 14:52
楼主怎么设置的可以贴出代码来。
在spark代码中设置下
hive.metastore.uris,连接上集群,然后使用hive s ...

会和我用的mysql的数据库有关吗,那个哪里没有配置好?
mysql没有搭建在master上
回复

使用道具 举报

yangyixin 发表于 2017-7-7 16:03:27
本帖最后由 yangyixin 于 2017-7-7 16:04 编辑

官方文档的说法如下,求问怎么去设置这些属性啊,在哪设置啊
和不同版本的Hive Metastore交互

Spark SQL对Hive最重要的支持之一就是和Hive metastore进行交互,这使得Spark SQL可以访问Hive表的元数据。从Spark-1.4.0开始,Spark SQL有专门单独的二进制build版本,可以用来访问不同版本的Hive metastore,其配置表如下。注意,不管所访问的hive是什么版本,Spark SQL内部都是以Hive 1.2.1编译的,而且内部使用的Hive类也是基于这个版本(serdes,UDFs,UDAFs等)


QQ截图20170707160413.png
回复

使用道具 举报

yuntian0215 发表于 2017-7-7 16:09:24
学习大家的做法
回复

使用道具 举报

langke93 发表于 2017-7-7 16:16:41
yangyixin 发表于 2017-7-7 16:03
官方文档的说法如下,求问怎么去设置这些属性啊,在哪设置啊
和不同版本的Hive Metastore交互
spark与hive整合,hive应该需要编译,楼主是否编译过。
下面仅供参考
集成Hive与Spark SQL及代码实现
http://www.aboutyun.com/forum.php?mod=viewthread&tid=21155

编译能支持Hive的Spark,并部署测试。
http://www.aboutyun.com/forum.php?mod=viewthread&tid=13303



回复

使用道具 举报

yangyixin 发表于 2017-7-7 16:23:28
langke93 发表于 2017-7-7 16:16
spark与hive整合,hive应该需要编译,楼主是否编译过。
下面仅供参考
集成Hive与Spark SQL及代码实现

有在试,帖子中说这样编译,但是我的spark目录下没有这个脚本啊,连lib目录都没有

./make-distribution.sh --tgz -PHadoop-2.2 -Pyarn -DskipTests -Dhadoop.version=2.6.0-cdh5.4.4 -Phive
就不知道怎么继续下去了啊
回复

使用道具 举报

langke93 发表于 2017-7-7 16:32:36
本帖最后由 langke93 于 2017-7-7 16:34 编辑
yangyixin 发表于 2017-7-7 16:23
有在试,帖子中说这样编译,但是我的spark目录下没有这个脚本啊,连lib目录都没有

./make-distributio ...

spark都有的lib的。
1.jpg


hive也有,楼主说的是哪个没有

2.jpg
回复

使用道具 举报

yangyixin 发表于 2017-7-7 16:36:07
langke93 发表于 2017-7-7 16:32
spark都有的lib的。

我查查看,是不是我spark安装有问题了,那那个脚本在哪执行或者是要怎么处理你知道嘛,谢谢啦
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条