【Spark3.2.0源码编译并用spark sql *** 作hive表】

【Spark3.2.0源码编译并用spark sql *** 作hive表】,第1张

【Spark3.2.0源码编译并用spark sql *** 作hive表】 Spark3.2.0源码编译

building 参考spark官方文档:https://spark.apache.org/docs/3.2.0/building-spark.html

环境要求 Maven 3.6.3 、 Java 8 和 Scala 2.12

当前已安装的
java-1.8
maven-3.6.3
scala-2.12.15
hadoop-3.2.2
hive-3.1.2

基于maven有两种方式:build/mvn 和 dev路径下的 make-distribution.sh
这里只记录 build/mvn 的方式。
使用make-distribution.sh的方式可以参考:https://www.cnblogs.com/chuijingjing/p/14660893.html

下载spark源码包:https://www.apache.org/dyn/closer.lua/spark/spark-3.2.0/spark-3.2.0.tgz
解压后打开,在当前目录使用 Git Bash 的命令行窗口执行:

./build/mvn -Phadoop-3.2 -Pyarn -Dhadoop.version=3.2.2 -Phive -Phive-thriftserver -DskipTests clean package

编译成功后使用IDEA打开,Build整个项目
可以发现 hive-thriftserver 没有受父级项目管理,需要在主pom文件中添加:

sql/hive-thriftserver

Linux启动Hive服务:hive --service metastore -p 9083 &
启动主类:org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver

报错、其他pom文件修改参考:https://www.cnblogs.com/chuijingjing/p/14660893.html

注意:修改pom文件后不要保留备份在同一目录,IDEA构建项目时仍然可能取到pom.xml.bak,于是所以的修改都不生效,记得因为这个浪费了好多时间。。

启动spark-sql 后。可以像在hive中一样 *** 作hive表。
如果遇到,切换数据库都可以,但是select 数据就会报错:

	Failed to connect to namenode:9866 for file

记得检查resources/hdfs-site.xml 【以及 target/scala-2.12/classes/hdfs-site.xml】下是否有设置:

    
        dfs.datanode.use.datanode.hostname
        true
     

如果遇到:

java.io.IOException: java.nio.channels.UnresolvedAddressException

检查win的hosts文件中是否配置的namenode的域名映射

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存