spark-sql本地(IDEA)连接远程spark踩坑指南

问题1:scala版本不一致导致报错 (java.lang.ClassNotFoundException: scala.Serializable)

    解决办法:

      1. 通过spark-shell查看远程spark依赖的scala版本:(图-1.1)

图-1.1

2. 在本地maven项目中添加对应版本的依赖:(图-1.2)


图-1.2

3.pom中的scala版本也保持一致 (图-1.3)


图-1.3

问题2:无法连接远程spark

解决办法:

      1. SparkConf配置master为远程地址 (图-2.1)

图-2.1

2.从远程服务器上拷贝hive-site.xml到项目resources目录下(图-2.2)

图-2.2

3. 修改hive-site.xml中的配置,把metastore相关的配置改为远端配置 (图-2.3)

图-2.3

问题3:没有权限访问hdfs

解决办法:

1. 指定HADOOP_USER_NAME为hadoop的启动用户,参见 (图-2.1)代码

2. 在远端使用 hdfs dfs -chmod -R 777 /xxx 修改hdfs访问权限

问题4:运行报错:protocol message end-group tag did not match expected tag

解决办法:

1. 远端执行:hdfs getconf -confKey fs.default.name 结果如图(图-4.1)


图-4.1

2. 查看第一步返回的结果和本地hive-seite.xml中的端口是否一致,有的用户使用的是8020,如果不一致,修改为何第一步的一致的端口

3.参见 (图-2.1)代码,如果远端使用了hostname配置的hadoop集群,本地电脑设置/etc/host,

比如:172.100.200.76 hadoop01

然后把配置的远端地址172.100.200.76替换成 hadoop01,如图(图-2.1)代码把spark地址也使用hostname

问题5:远端使用hive查询正常,但是本地spark-sql返回无结果

    解决办法:

   1. 可能是hive表创建的时候指定的格式问题,比如我的日志表用的jsonDer,关闭spark的convertMetastoreParquet和convertMetastoreOrc (图-5.1)


图-5.1

问题6:运行报异常,内存溢出或者越界之类的信息

解决办法:

1.在远端spark的conf目录下分别配置spark-defaults.conf和spark-env.sh

       spark -defaults.conf :   spark.driver.memory              4g

       spark-env.sh : SPARK_EXECUTOR_MEMORY=4G

2. 代码中指定内存 spark.executor.memory 参见图 (图-5.1)

其他注意点:

1.jdk版本问题,可以在pom中和scala_compiler.xml(位置在.idea目录下)中指定target:jvm-1.8

2.远端hadoop全家桶和spark启动最好是用同一个用户,比如笔者是用的hadoop

3.运行报错:Unable to create log directory /xxx/xxx/xx/${user.name},笔者开始还以为是hdfs权限问题,因为报错路径和hdfs的路径一致,但是hdfs设置777依然报错,实际上是本地无法创建这个目录(笔者mac系统),自己手动创建这个目录并给予写权限就可以了

4.依赖版本一定要和系统的环境版本注意保持一致,依赖从maven仓库中能搜到各种版本,

地址:https://mvnrepository.com/

5.本地开发完成后,maven打包成jar包,上传到远端服务器,运行命令:

spark-submit --master yarn --class sparkKafka.App  /home/hadoop/sparkKafka01-1.0.jar

最后附上笔者最后的调试结果,执行sparksql从hive数据仓中捞出日志数据,如图(图-6.1),看到你,整个世界瞬间变美好了,哈哈哈

图-6.1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容