中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hadoop2.7集群新增datanode節點后報錯怎么解決

發布時間:2021-09-01 18:16:00 來源:億速云 閱讀:223 作者:chen 欄目:云計算

本篇內容介紹了“hadoop2.7集群新增datanode節點后報錯怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

我們的hadoop是2.7版本的,取得當時最新的版本,唉,不穩定呀,中間波折好多。

當前集群是1個namenode,4個datanode。服務器是虛擬機,配置太差,需要增加節點。

悲催的hadoop集群,我同時增加了3個datanode節點,原來集群有4個數據節點,可能因為加的太多了,執行balancer的時候,很快將服務器資源耗盡了。

查了一下,服務器上設置了進程最大個數是1024個,而balancer在執行的時候會啟動native進程,因為需要執行的balance操作太多,集群會不斷的啟動本地進程,將進程數耗盡。連ps 命令都不好使了,幸好我之前記下了balancer的進程號,終于kill掉。出錯信息日志如下:

2015-09-11 20:04:11,175 WARN org.apache.hadoop.hdfs.LeaseRenewer: Failed to renew lease for [DFSClient_NONMAPREDUCE_880883068_1] for 73 seconds.  Will retry shortly ...

java.io.IOException: com.google.protobuf.ServiceException: java.lang.OutOfMemoryError: unable to create new native thread

        at org.apache.hadoop.ipc.ProtobufHelper.getRemoteException(ProtobufHelper.java:47)

        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.renewLease(ClientNamenodeProtocolTranslatorPB.java:592)

        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:606)

        at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)

        at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)

        at com.sun.proxy.$Proxy12.renewLease(Unknown Source)

        at org.apache.hadoop.hdfs.DFSClient.renewLease(DFSClient.java:891)

        at org.apache.hadoop.hdfs.LeaseRenewer.renew(LeaseRenewer.java:417)

        at org.apache.hadoop.hdfs.LeaseRenewer.run(LeaseRenewer.java:442)

        at org.apache.hadoop.hdfs.LeaseRenewer.access$700(LeaseRenewer.java:71)

        at org.apache.hadoop.hdfs.LeaseRenewer$1.run(LeaseRenewer.java:298)

        at java.lang.Thread.run(Thread.java:745)

Caused by: com.google.protobuf.ServiceException: java.lang.OutOfMemoryError: unable to create new native thread

        at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:243)

        at com.sun.proxy.$Proxy11.renewLease(Unknown Source)

        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.renewLease(ClientNamenodeProtocolTranslatorPB.java:590)

        ... 12 more

Caused by: java.lang.OutOfMemoryError: unable to create new native thread

        at java.lang.Thread.start0(Native Method)

        at java.lang.Thread.start(Thread.java:714)

        at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)

        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1371)

        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)

        at org.apache.hadoop.ipc.Client$Connection.sendRpcRequest(Client.java:1022)

        at org.apache.hadoop.ipc.Client.call(Client.java:1449)

        at org.apache.hadoop.ipc.Client.call(Client.java:1407)

        at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)

        ... 14 more

思路一:嘗試了調整balancer的threshold,據網上說,該值是0~100。按照90、80、70、50、30、10的順序執行,這樣一點一點的balance,會不會好一點,實際使用后,發現大于10的一律不好使,所以這個方法也行不通了。失敗!

思路二:是否是因為突然間增加了三個節點,hadoop的后臺balancer的內容太多(當前數據量是370G,絕大多數都是hbase文件)。那我就一個節點一個節點的增加,會不會好一點?于是,我又把三臺中的兩臺的節點去掉了,只剩下一臺后,執行balancer。好吧,剛開始以為可行,結果跑了大概幾分鐘之后,同樣的問題又出現了。。。失敗!

后來發現新加的主機和原有的hadoop的主機時區設置不一樣,改為中國上海時區后,還是出下面的問題。不過時區設置肯定要設置的,算是提前避免了另外一個隱藏的問題吧。

思路三:由于服務器使用的是vm,配置不是很高,所以一直不想改系統參數來調優,如果把參數值調高,linux的使用效率增加,同時也可能這個vm主機承受不住,造成系統宕機。但是沒辦法了,執行ulimit -a,查看結果中的“max user processes              (-u) 1024”,

執行vi /etc/security/limits.d/90-nproc.conf,修改將1024改為5120,保存退出即可。


# Default limit for number of user's processes to prevent

# accidental fork bombs.

# See rhbz #432903 for reasoning.


*          soft    nproc     1024

root       soft    nproc     unlimited


然后執行start-balancer.sh threshold 5 ,這次不再報錯了。可以正常執行結束。

“hadoop2.7集群新增datanode節點后報錯怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连山| 惠来县| 凤翔县| 平江县| 宜城市| 榆中县| 柏乡县| 伽师县| 开远市| 齐河县| 沙雅县| 大冶市| 兰州市| 青阳县| 额尔古纳市| 南通市| 南雄市| 平武县| 额敏县| 屏边| 陈巴尔虎旗| 孟州市| 佛坪县| 景泰县| 凌海市| 清徐县| 阿拉善盟| 乐平市| 盘锦市| 台东县| 白银市| 宜章县| 鄂伦春自治旗| 桐乡市| 阿克苏市| 会泽县| 永修县| 宕昌县| 临沭县| 米脂县| 霸州市|