PySpark 開発環境の構築における一般的な問題と解決策

PySpark環境を構築する際の一般的な問題と解決策



この記事では主に、PySpark 開発環境を構築する際のいくつかの一般的な問題と解決策を収集し、いくつかの関連リソースを収集します。

1.winutils.exeの問題


ここに画像の説明を挿入します

エラーの概要:

WARN Shell: Did not find winutils.exe: {
    
    }
java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
......

理由 1: Windows で Hadoop をサポートする環境が不足している: hadoop.dll および winutils.exe

詳細については、公式 Web サイトをご覧ください:https://cwiki.apache.org/confluence/display/hadoop/WindowsProblems

原因 2: hadoop.dllwinutils.exe はダウンロードされ、環境変数は設定されていますが、 a> がダウンロードされました。a> ディレクトリ (コンピュータを再起動して有効にします) はオプションです) ファイルを hadoop.dll (winutils.exeC:\Windows\System32

解決策: Hadoop の Windows サポート環境 (hadoop.dll および winutils.exe) をダウンロードし、環境変数を構成し、 sethadoop.dllファイルをC:\Windows\System32ディレクトリにコピーし、コンピュータを再起動します

追記: hadoop.dllwinutils.exe の各バージョンのダウンロード リンクは、巻末の付録にあります。記事

2.SparkURLの問題


ここに画像の説明を挿入します

エラーの概要:

To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
23/12/05 14:50:09 ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: Invalid Spark URL: spark://HeartbeatReceiver@***
......

原因: ホスト名に下線が付いている_またはドット.が原因です。

解決する:

方法 1: 構成を追加します:spark.driver.host=localhost

方法 2: ローカル ホスト ファイルを変更します: ホスト名と IP マッピングを追加します:

主机名 127.0.0.1

次に、構成を追加します。spark.driver.bindAddress=127.0.0.1

Spark 属性設定の公式ドキュメント:https://spark.apache.org/docs/3.1.2/configuration.html

3. set_agi() の問題


ここに画像の説明を挿入します

エラーの概要:

23/12/05 15:13:10 WARN NativeIO: NativeIO.getStat error (3): ϵͳ�Ҳ���ָ����·����
 -- file path: tmp/hive
23/12/05 15:13:21 WARN ProcfsMetricsGetter: Exception when trying to compute pagesize, as a result reporting of ProcessTree metrics is stopped
23/12/05 15:13:22 WARN metastore: set_ugi() not successful, Likely cause: new client talking to old server. Continuing without it.
org.apache.thrift.transport.TTransportException
......

考えられる理由: 権限の問題、バージョンの問題

解決策: まずブロックを設定します:spark.executor.processTreeMetrics.enabled=false、次に次のことを試してください:

方法 1: 変更するhdfs-site.xml

# 在集群服务器的hdfs-site.xml文件中添加跳过权限验证
# 注意修改配置前先停止集群,配置结束之后,重启集群即可。经测试只需要修改NameNode上的配置文件即可
<property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
</property>

方法 2: 変更するhive-site.xml

# 新客户端与旧服务器通信,hive-site.xml与服务器不同步
# 在hive-site.xml中添加以下内容:
<property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
</property>

バージョンの問題に関する参考情報:https://cloud.tencent.com/developer/ask/sof/1059191


その他の関連質問のリファレンス:https://forum.mirrorship.cn/t/topic/4921


================== 付録リソース ==================


hadoop.dll および winutils.exe のバージョンをダウンロードする:https://github.com/cdarlint/winutils/tree/master/ hadoop-3.1.2

Hadoop 各バージョン本ダウンロードhttps://archive.apache.org/dist/hadoop/common/

Spark 各バージョン本ダウンロードhttp://archive.apache.org/dist/spark/


おすすめ

転載: blog.csdn.net/weixin_55629186/article/details/134810156