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的域名映射
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)