hadoop部署的若幹問題解決

来源:https://www.cnblogs.com/junyue/archive/2018/08/01/9403726.html
-Advertisement-
Play Games

hadoop部署的若幹問題解決 1 清理系統記憶體cached方法,解決Out of memory問題 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2018-07-31 10:34:58,344 FATAL org... ...


hadoop部署的若幹問題解決
1 清理系統記憶體cached方法,解決Out of memory問題

INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting

2018-07-31 10:34:58,344 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager

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

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

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

at org.apache.hadoop.ipc.Server.start(Server.java:3071)

at org.apache.hadoop.yarn.server.resourcemanager.ClientRMService.serviceStart(ClientRMService.java:282)

測試了多種hadoop 關於記憶體配置xml的修改,均無效。

預設配置,可以排除hadoop配置問題,清理系統cached試試,果然有效。

清理系統cached方法

1.運行 sync 將 dirty 的內容寫回硬碟

$sync

2.通過修改 proc 系統的 drop_caches 清理free的cache

# echo 3 > /proc/sys/vm/drop_caches

2 hadoop.tmp.dir配置

如果不修改,預設在/tmp/下麵,可能會存在文件丟失。其他問題通過修改這個參數順利啟動。

core-site.xml

<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hdtest/hadoop-3.0.3/tmp</value>
</property>

3 util.NativeCodeLoader問題未解決

2018-08-01 10:27:07,428 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

2018-08-01 10:27:本地庫沒有載入,這種本地庫載入目錄

查了各種資料,試了一下各種修改Djava.library.path方法目前沒有解決,初步排除沒有找到路徑的原因,懷疑是3.0.3自帶的庫有問題。

export HADOOP_HOME=/home/hadoop/hadoop-2.6.4

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

4 虛擬記憶體超標2.6 GB of 2.1 GB virtual memory used. Killing container.

<!--jie解決這個問題

,501 INFO mapreduce.Job: Task Id : attempt_1533094470713_0005_m_000001_0, Status : FAILED

[2018-08-01 13:01:48.863]Container [pid=22796,containerID=container_1533094470713_0005_01_000003] is

running beyond virtual memory limits. Current usage: 606.3 MB of 1 GB physical memory used;

2.6 GB of 2.1 GB virtual memory used. Killing container.

--->

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

<description>Whether virtual memory limits will be enforced for containers</description>

</property>

<property>

<name>yarn.nodemanager.vmem-pmem-ratio</name>

<value>4</value>

<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>

</property>

>yarn.nodemanager.vmem-check-enabled 預設true,會檢查虛擬記憶體是否超標

yarn.nodemanager.vmem-pmem-ratio 虛擬記憶體可使用量物理記憶體倍數 ,預設2.1倍

5 waiting for AM container to be allocated

clip_image002

YarnApplicationState:

ACCEPTED: waiting for AM container to be allocated, launched and register with RM.

2018-07-31 00:53:54,221 INFO org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl: appattempt_1532968834179_0001_000002 State change from SUBMITTED to SCHEDULED on event = ATTEMPT_ADDED

2018-07-31 00:56:54,299 INFO org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Error cleaning master

java.net.ConnectException: Call From cvm-dbsrv02/127.0.0.1 to cvm-dbsrv02:17909 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

at sun.reflect.GeneratedConstructorAccessor46.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:824)

at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:754)

at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1495)

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

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

懷疑 路由埠沒有開放。。。看rm日誌 果然 17909埠沒有開放。

iptables -I INPUT -p tcp --dport 0:65536 -s 10.16.xx -j ACCEPT

iptables -I INPUT -p tcp --dport 0:65536 -s 132.108.xx -j ACCEPT

iptables -I INPUT -p tcp --dport 0:65536 -s 127.0.0.1 -j ACCEPT

對本機開放所有埠

6 運行速度提高,cpu,記憶體占用提高方法

Hadoop預設使用 <memory:8192, vCores:8> ,top,free-g查看,運行最多占用10%cpu,記憶體還有大量空閑。如何提高運行資源占用,提高運行速度?

查看本機真實資源情況4路40核80線程,512G記憶體。

[root@cvm-dbsrv02 inputserv2675w]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

4

[root@cvm-dbsrv02 inputserv2675w]# cat /proc/cpuinfo| grep "cpu cores"| uniq

cpu cores : 10

[root@cvm-dbsrv02 inputserv2675w]# cat /proc/cpuinfo| grep "processor"| wc -l

80

[root@cvm-dbsrv02 inputserv2675w]#

4路40核80線程。

提供CPU使用率

yarn.xml

yarn.nodemanager.resource.cpu-vcores 預設8-->40 10%-預計提高到50%-》

yarn.nodemanager.resource.memory-mb 預設8192-->1024*40=40960

Amount of physical memory, in MB, that can be allocated for containers. If set to -1 and yarn.nodemanager.resource.detect-hardware-capabilities is true, it is automatically calculated(in case of Windows and Linux). In other cases, the default is 8192MB.

Yarn.xml

<property>

<name>yarn.nodemanager.resource.cpu-vcores</name>

<value>40</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>40960</value>

</property>

clip_image004

clip_image006

Cpu占用提高到了59%,預期之中。

8-08-01 13:58:29,121 INFO mapreduce.Job: The url to track the job: http://cvm-dbsrv02:8088/proxy/application_1533100404744_0003/

2018-08-01 13:58:29,122 INFO mapreduce.Job: Running job: job_1533100404744_0003

2018-08-01 13:58:36,256 INFO mapreduce.Job: Job job_1533100404744_0003 running in uber mode : false

2018-08-01 13:58:36,258 INFO mapreduce.Job: map 0% reduce 0%

2018-08-01 14:04:59,057 INFO mapreduce.Job: map 1% reduce 0%

2018-08-01 14:17:08,424 INFO mapreduce.Job: map 2% reduce 0%

^C[hdtest@cvm-dbsrv02 hadoop-3.0.3]$

[hdtest@cvm-dbsrv02 hadoop-3.0.3]$

任務執行效率明顯提高

2018-08-01 14:31:40,369 INFO mapreduce.Job: Running job: job_1533105032226_0001

2018-08-01 14:31:49,535 INFO mapreduce.Job: Job job_1533105032226_0001 running in uber mode : false

2018-08-01 14:31:49,544 INFO mapreduce.Job: map 0% reduce 0%

2018-08-01 14:34:25,322 INFO mapreduce.Job: map 1% reduce 0%

2018-08-01 14:38:11,068 INFO mapreduce.Job: map 2% reduce 0%

2018-08-01 14:41:55,441 INFO mapreduce.Job: map 3% reduce 0%

2018-08-01 14:45:36,867 INFO mapreduce.Job: map 4% reduce 0%

clip_image008

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、開機啟動+++ crontab 定時執行(定時執行可參考:https://www.cnblogs.com/prefectjava/p/9399552.html)可實現自動化運行的目的,簡化了維護人員的工作量。 在CentOS或者RedHat其他系統下 ,安裝後系統預設不會自動啟動的。就算手動執行 ...
  • --20171228 1、實驗環境 硬體環境:聯想ThinkPad E430(記憶體加到10G)、顯示屏×2、VGA線×1、HDMI線×1 、滑鼠×2、鍵盤×1、USB分線器×1、ZedBoard開發板套件×1、AD-FMCOMMS2-EBZ×1、網線×1、SD卡×1。 windows軟體環境(E43 ...
  • 三範式 三範式定義(範式和反範式) 1NF:每個數據項都是最小單元,不可分割,確定行列之後只能對應一個數據。 2NF:每一個非主屬性完全依賴於候選碼(屬性組的值能唯一的標識一個元組,但是其子集不可以)。 3NF:每一個非主屬性既不傳遞依賴於碼,也不部分依賴於碼(主碼=候選碼為多個市,從中選出一個作 ...
  • 前言 在最近的工作中,由於自己粗(zuo)心(si)誤update操作導致幾百行的數據出現錯誤,在心急如焚的同時(那時候我竟然不知道除了備份之後還有binlog日誌恢復)立馬查資料學習binlog的恢復,隨後立馬進行了恢復。雖然可以假裝自己沒出錯(emmmmm......最後還是得承認的!),但下班 ...
  • 轉發:https://zm10.sm-tc.cn/?src=l4uLj4zF0NCIiIjRnJGdk5CYjNGckJLQrIqNiZaJnpOWjIvQj9DHzs7Gx8bO0ZeLkpM%3D&uid=38c62520cad411e395617b1a9eafc437&hid=d90c1542 ...
  • CTE 也叫公用表表達式和派生類非常類似 先定義一個USACusts的CTE with () 稱為內部查詢 與派生表相同,一旦外部查詢完成後,CTE就自動釋放了 CTE內部方式 就是上面代碼所表示的方式 其實還有一種外部方式 定義多個CTE 多個CTE用 , 隔開 通過with 記憶體 可以在外查詢中 ...
  • 1、備份伺服器上MySQL資料庫 2、查看備份後的SQL腳本 3、查詢伺服器安裝的MySQL 4、停止MySQL服務 5、卸載已經安裝的MySQL 6、查找遺留的MySQL文件 7、/var/lib/mysql為本次MySQL的data目錄,建議安裝先備份 8、刪除卸載前一個版本MySQL的遺留文件 ...
  • [20180801]insert導致死鎖.txt--//鏈接http://www.itpub.net/thread-2104135-2-1.html的討論,自己有點疏忽了,插入主鍵相同也會導致死鎖.--//自己按照鏈接http://www.xifenfei.com/2011/05/insert%E5 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...