hadoop平常維護之問題解決01

執行hadoop任務遇到的問題:java

Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/hive/warehouse/rec_new2.db/user_session/.hive-staging_hive_2017-12-10_08-22-41_311_4339813855157373054-1/-ext-10000/_temporary/0/_temporary/attempt_20171210082241_0000_m_000000_3/appid=10017/dt=2017-12-09/part-00000 could only be replicated to 0 nodes instead of minReplication (=1).  There are 3 datanode(s) running and no node(s) are excluded in this operationnode

當時遇到不管是hive向hadoop寫入數據仍是spark、storm寫入數據都報以上錯誤:apache

一開始網上各類找,冷靜下仔細看hadoop運行日誌信息,session

日誌查看:app

$HADOOP_HOME/logsoop

經過在master節點查看,tail –f hadoop-root-namenode-hadoop-master.log  監聽namenode運行日誌信息,發現問題所在:this

原來在hadoop配置文件中,預留磁盤大小爲20G,經過df -hl 命令查看磁盤空間大小,發現hadoop-slave3 磁盤空間只剩17G,致使數據沒法插入;spa

解決方案:增大磁盤空間或刪除較大文件,達到配置預留磁盤空間便可;日誌

因爲spark配置的是standalone模式,致使每執行一個spark任務,運行日誌中都會有一個運行任務所需jar包;累積下來佔用磁盤空間;可按期刪除,也能夠配置spark-env.sh 每執行完後直接刪除運行日誌信息及jar包;orm

spark運行任務查看運行日誌信息及jar包所在位置:$SPARK_HOME/work

 

運行完直接刪除運行日誌信息及jar包,在spark-env.sh中加入以下內容:

SPARK_WORKER_OPTS=」-Dspark.worker.cleanup.enabled=true」

注意官方文檔中說無論程序是否已經中止,都會刪除文件夾,這是不許確的,只有中止掉的程序文件夾纔會被刪除

 

附:

Hdfs-site.xml:

能夠經過配置,修改配置只需停掉集羣重啓便可:

$HADOOP_HOME/conf/hdfs-site.xml 文件裏的 dfs.datanode.du.reserved 屬性來配置HDFS預留磁盤的空間大小,從而限制 data node 的磁盤使用量(單位是字節數),如如下配置會給磁盤預留20GB的空間:

 

<property>

<name>dfs.datanode.du.reserved</name>

<!-- reserved space in bytes -->

<value>21474836480</value>

<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.

</description>

</property>

相關文章
相關標籤/搜索