Pycharm配置Spark环境时候遇到的几个问题

第一个问题:python报错:missing 1 required positional argument: ‘value‘

python报错:missing 1 required positional argument: ‘value‘

这个问题一定要第一时间查看一下import的方法有没有实例化,错误写法如下

from pyspark import SparkConf
conf = SparkConf.setMaster("local[*]").setAppName("WordCountHelloWorld")

对比一下下面正确的写法,明眼的同学相信已经看出来了,少了(),我当时真的眼拙了,扣了好久,哈哈

from pyspark import SparkConf
conf = SparkConf().setMaster("local[*]").setAppName("WordCountHelloWorld")

第二个问题:Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=executor...

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=executor......

原因就是Windows和Linux的用户名不一致,由于,Hadoop的权限验证是依靠Linux系统的,而用户名不一致,会报错

解决办法:修改linux中hdfs-site.xml【位置在hadoop/etc/hadoop/hdfs-site.xml】,在里面添加配置

  <property>
	  <name>dfs.permissions.enabled</name>
	  <value>false</value>
	  
  </property>

然后重新启动hadoop集群即可

对于这个问题,错误的原理分析也可以适当参考一下https://blog.csdn.net/haohaoxuexiyai/article/details/116530770?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169172420416800192290440%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169172420416800192290440&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-7-116530770-null-null.142^v92^controlT0_1&utm_term=Caused%20by%3A%20org.apache.hadoop.ipc.RemoteException%28org.apache.hadoop.security.AccessControlException%29%3A%20Permission%20denied%3A%20user%3Droot%2C%20access%3DEXECUTE%2C%20inode%3D%2Fdata%3Ahadoop%3Asupergroup%3Adrwxrwx---&spm=1018.2226.3001.4187

第三个问题:TypeError: 'JavaPackage' object is not callable

TypeError: 'JavaPackage' object is not callable

原因一般就是import的包版本不对导致的,我本人的Linux环境spark版本为3.2.0,而pycharm里面pyspark包的版本却是latest的3.4.1版本,说白了货不对板导致的

解决方法:删除原来的版本,重新install对应的3.2.0版本

 好了,分享一下今天学习spark中踩过的坑,因为相关解决办法不多,所以这里分享几种较为有效的,也希望能对你们碰到的相似问题可以完美KO掉,打字不易,如果我的方法有效的话,麻烦给点个赞吧,感谢!

2023年8月12日更新

对于昨天碰到的问题2,是因为远程连接的用户是root用户,而当前运行的user是hadoop用户没有相关的操作权限,所以给hadoop授权一下就行了,在linux中的hadoop用户,使用

 hadoop fs -chmod 777 /user

获取相应权限即可,后续像还原只需要改回755即可

第四个问题:Failed to submit xxxxxxx to YARN : root is not a leaf queue

Failed to submit xxxxxxx to YARN : root is not a leaf queue

 这里的意思就是root没有配置好节点队列

解决方法,修改yarn-site.xml(位置:.../hadoop/etc/hadoop/yarn-site.xml)中的配置

 <!-- 选择调度器,默认容量 -->
    <property>
        <description>The class to use as the resource scheduler.</description>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>

之前我的调度器为

<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
<description>选择公平调度器</description>

 要把其修改为上面的默认容量的选择调度器

参考文章为:https://blog.csdn.net/wenchun001/article/details/128975141

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值