spark saveAsTable 将DF数据写入hive表之后,在hive客户端查询不到,在Spark-sql可以

查看数: 33080 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-9-3 15:57

正文摘要:

spark运行结果通过saveAsTable写入表中之后,在spark-sql可以正常查询,在hive客户端select返回为空,查看desc formatted tablename; 其中的Detailed Table Information 中的Location显示的不是hdfs的路径,很奇怪, ...

回复

zyy186 发表于 2019-5-4 19:26:40
ltne 发表于 2018-9-5 17:28
问题解决啦
当未由hive-site.xml配置时,上下文将在当前目录中自动创建metastore_db,并创建由spark.sql. ...

可以说的清楚些吗,具体的解决办法,因为我加了"spark.sql.warehouse.dir","hdfs://master:8020/user/hive/warehouse/" ,还是不行,
非常希望可以得到你的解答,感谢!
zyy186 发表于 2019-5-4 19:21:53
gk091620 发表于 2019-3-26 19:20
请问问题解决了吗?怎么解决的呢?

请问解决了吗,分厂希望可以得到你的解答
gk091620 发表于 2019-3-26 19:20:54
ltne 发表于 2018-9-5 14:40
我安装的spark是直接官网编译好的,是不是这个导致的,是需要重新编译spark才可以支持hive吗

请问问题解决了吗?怎么解决的呢?
ltne 发表于 2018-9-5 17:28:08
问题解决啦
当未由hive-site.xml配置时,上下文将在当前目录中自动创建metastore_db,并创建由spark.sql.warehouse.dir配置的目录,该目录默认为启动Spark应用程序的目录中的spark-warehouse目录 。 请注意,hive-site.xml中的hive.metastore.warehouse.dir属性自Spark 2.0.0以来已弃用。 相反,使用spark.sql.warehouse.dir来指定仓库中数据库的默认位置。 您可能需要向启动Spark应用程序的用户授予写入权限。
因为在hive-site 或者spark-default添加hive.metastore.warehouse.dir  value:/user/hive/warehouse   就可以啦


ltne 发表于 2018-9-5 14:40:25
我安装的spark是直接官网编译好的,是不是这个导致的,是需要重新编译spark才可以支持hive吗
ltne 发表于 2018-9-5 09:20:57
本帖最后由 ltne 于 2018-9-5 10:40 编辑
阿飞 发表于 2018-9-4 15:46
可能跟配置文件有关系,把你的本地客户端的配置文件贴出来。

hive-site
<configuration>
        <property>
                 <name>hive.metastore.warehouse.dir</name>
                <value>/user/hive/warehouse</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://master:3306/hive</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>(mysql的驱动)
                <value>com.mysql.jdbc.Driver</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionUserName</name>(用户名)
                <value>hadoop</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionPassword</name>(密码)
                <value>aims2016</value>
        </property>

        <property>
                <name>hive.metastore.schema.verification</name>
                <value>false</value>
        </property>
        <property>  
                  <name>hive.metastore.local</name>  
                  <value>false</value>  
        </property>
        <property>
                <name>hive.server2.authentication</name>
                <value>NONE</value>
        </property>
        <property>
                <name>hive.server2.thrift.bind.host</name>
                <value>0.0.0.0</value>
                 <description>Bind host on which to run the HiveServer2 Thrift interface.
                  Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
        </property>
</configuration>

其他都是默认配置

阿飞 发表于 2018-9-4 15:46:51
ltne 发表于 2018-9-4 13:17
还是没找到具体解决方法,求助大家

可能跟配置文件有关系,把你的本地客户端的配置文件贴出来。
ltne 发表于 2018-9-4 13:17:44
还是没找到具体解决方法,求助大家
关闭

推荐上一条 /2 下一条