大數據排錯

Spark

Spark版本由2.4.2 -> 2.2.0,依賴多個版本衝突

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.9.4

解決思路
maven倉庫刪除com.fasterxml,查看項目中產生衝突的那些依賴,刪除pom中中的那些依賴。

Spark集羣啓動時候,JAVA_HOME is not set

在spark 根目錄使用 sbin/start-all.sh 時,console提示:
slave107 JAVA_HOME not set
在sbin目錄下的spark-config.sh 中追加一條記錄:
export JAVA_HOME=/home/hadoop/soft/jdk

hadoop集羣,某臺服務器jps無任何輸出

集羣啓動時,會在/tmp目錄下生成一個hsperfdata_username的文件夾,這個文件夾的文件以java進程的pid命名。因此使用jps查看當前進程的時候,其實就是把/tmp/hsperfdata_username中的文件名遍歷一遍之後輸出。如果/tmp/hsperfdata_username的文件所有者和文件所屬用戶組與啓動進程的用戶不一致的話,在進程啓動之後,就沒有權限寫/tmp/hsperfdata_username,所以/tmp/hsperfdata_username是一個空文件,理所當然jps也就沒有任何顯示。

解決:
使用chown修改/tmp/hsperfdata_dumz的文件所有者和文件所屬用戶組,重新啓動集羣或者刪除/tmp目錄下所有文件重新啓動集羣

IDEA

internal java compiler error或java compiler failed

1、project的jdk版本設置
在這裏插入圖片描述
2、具體模塊jdk設置
在這裏插入圖片描述
3、全局設置settings—java compiler設置
在這裏插入圖片描述

kafka

Connection to node -1 could not be established. Broker may not be available

分析:連接沒有建立
解決:You should first describe the topic so that you can see what partitions and broker ids are available.
https://stackoverflow.com/questions/49947075/kafka-console-consumer-connection-to-node-1-could-not-be-established-broker?answertab=votes

hadoop

namenode一直處於安全模式

查看日誌發現:
Resources are low on NN. Please add or free up more resources then turn off safe mode manually

解決思路:查看文件系統磁盤空間使用情況: /home目錄已經使用完

查看配置文件:core-site.xml、hdfs-site.xml、hdfs-default.xml
[core-site.xml]
hadoop.tmp.dir = /home/yk/hadoop/hadoopData
[hdfs-default.xml]
dfs.name.dir = ${hadoop.tmp.dir}/dfs/name
dfs.data.dir = ${hadoop.tmp.dir}/dfs/data

修改 core-site.xml、hdfs-site.xml
刪除core-site.xml中的hadoop.tmp.dir
增加hdfs-site.xml中的dfs.name.dir 、dfs.data.dir
注:dfs.name.dir 、dfs.data.dir指定在不同的目錄

錯誤原因:name與data數據放在同一目錄,空間不足時,name數據無法加載

df - report file system disk space usage
-h, --human-readable   -> print sizes in human readable format (e.g., 1K 234M 2G)
-l, --local            -> limit listing to local file systems

在這裏插入圖片描述

Could not locate executable null \bin\winutils.exe in the hadoop binaries

shell.java
 ......
 String home = System.getProperty("hadoop.home.dir");

    // fall back to the system/user-global env variable
    if (home == null) {
      home = System.getenv("HADOOP_HOME");
    }
 ......

解決:配置環境變量
HADOOP_HOME=F:\soft\hadoop\hadoop-2.7.3
Path=%HADOOP_HOME%\bin

hdfs數據節點空間清理

查看hdfs文件系統,記錄需要處理數據的上傳時間
hdfs dfs -du -h /

切換目錄
/home/yk/hadoop/hadoopData/dfs/data/current/BP-369437989-172.16.2.106-1552725600401/current/finalized

打印/刪除特定時間產生的中間數據(比如作業運行失敗時間爲Mar 24)
find . -maxdepth 3 -type f -newermt “Mar 24” -print
find . -maxdepth 3 -type f -newermt “Mar 24” -delete

spark sql

join操作

df1.join(df2)時候報錯如下:
org.apache.spark.sql.AnalysisException: Detected cartesian product for INNER join between logical plans
解決:設置spark.sql.crossJoin.enabled=true
在這裏插入圖片描述

timeout

執行腳本如下:

/home/hadoop/soft/spark/bin/spark-submit \
--master spark://172.16.2.106:7077 \
--class sql.cluster \
/home/hadoop/test/jars/sparkDemo-1.0-SNAPSHOT-jar-with-dependencies.jar

報錯如下:

Connection to slave106/172.16.2.106:33562 has been quiet for 120000 ms while there are outstanding requests. Assuming connection is dead; please adjust spark.network.timeout if this is wrong

file permissions

保存文件到本地:
在這裏插入圖片描述
文件格式如下
在這裏插入圖片描述
加載文件時候報錯
在這裏插入圖片描述
在這裏插入圖片描述
解決:val accessRDD = spark.sparkContext.textFile(“sparkDemo/data/test_good/*”)

IDEA本地測試 - OutOfMemoryError: GC overhead limit exceeded

hdfs負載均衡

在這裏插入圖片描述
添加配置
在這裏插入圖片描述
啓動命令
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章