1. 程式人生 > >hbase-建立連線報錯 java.lang.OutOfMemoryError: unable to create new native thread

hbase-建立連線報錯 java.lang.OutOfMemoryError: unable to create new native thread

最近在本地電腦上連線hbase 出現錯誤 找到一篇不錯的部落格,在此記錄一下,希望能給遇到類似問題的同學提供參考

報錯資訊:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.OutOfMemoryError: unable to create new native thread
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent
.FutureTask.get(FutureTask.java:83) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1604) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1456) at org.apache
.hadoop.hbase.client.HTable.flushCommits(HTable.java:1011) at org.apache.hadoop.hbase.client.HTable.put(HTable.java:834) at com.taobao.dump.sapclient.client.HbaseClient.set(HbaseClient.java:224)

解決:
降低極端情況下的併發,有以下幾個方面:
1,container數和單個container中的執行緒數,在併發處理能力保持不變的情況下,選擇合理的container數和執行緒數。
2,使用HTablePool來統一管理HTable例項,最好是單例,並且設定一個合理的maxSize,如併發時htable例項不夠,呼叫方就先等待,直到有可用的例項。
3,建立htable物件時,指定自己的執行緒池,這個執行緒池全域性共用,並且維護一個有界佇列,當佇列滿時,請求就等待。
1
2
public HTable(Configuration conf,final byte[] tableName,
final ExecutorService pool)
這個case最後的解決方式是,調低了HTablePool的maxSize。
另一個解決思路,加大系統可建立的最大執行緒數,關於一個JVM程序最多可以建立多少個執行緒,請參考

http://jzhihui.iteye.com/blog/1271122 ,但在我們的環境實際測試,只有調整引數/proc/sys/vm/max_map_count才能加大可建立的執行緒數。如不做調整,則可建立30000+個執行緒。具體系統層面的因果還待進一步分析。

相關推薦

hbase-建立連線 java.lang.OutOfMemoryError: unable to create new native thread

最近在本地電腦上連線hbase 出現錯誤 找到一篇不錯的部落格,在此記錄一下,希望能給遇到類似問題的同學提供參考 報錯資訊: java.util.concurrent.ExecutionException: java.lang.RuntimeExcept

關於“java.lang.OutOfMemoryError : unable to create new native Thread”的問題

ulimit命令 既然 tps spa 好的 tiger src targe new 轉自:https://www.cnblogs.com/flying-tiger/p/5956926.html java.lang.OutOfMemoryError : unable t

訪問HBase遇到java.lang.OutOfMemoryError: unable to create new native thread的解決方法

在HBase使用的過程中,通過java程式查詢HBase資料時,在某機器上hbase使用者下壓測時遇到這個問題,導致程式異常掛掉。在網上google了一下,發現原因是: 當前使用者下無法建立更多的執行緒(當然root使用者沒這個問題) HBase 的doc

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

1,使用 ulimit -a或者ulimit -u查詢當前機器設定的執行緒數 :4096 2,用jstack pid>xxx.txt 3,然後檢視 -Xss的大小,這個一般是制約因素

經常遇到的java.lang.OutOfMemoryError: unable to create new native thread解決方法

簡單分享一下,類似問題的解決方法 剛才在某機器上上xxx使用者下壓測時遇到這個問題,連xxx都進不去了 說明xxx使用者下無法建立跟多的執行緒了(當然root使用者沒這個問題) 系統能夠建立的最大執

java.lang.OutOfMemoryError: unable to create new native thread解決方法

我們使用Mysql,偶爾會出現OutOfMemoryError,這時候jvm堆中還有很多記憶體,下面是出錯的堆疊資訊: java.lang.OutOfMemoryError: unable to create newnative thread     at java.lan

JVM 系列二:java.lang.OutOfMemoryError: unable to create new native thread

問題描述 Java程式執行過程中丟擲java.lang.OutOfMemoryError: unable to create new native thread,如下所示: java.lang.OutOfMemoryError: unable to create new

Centos中普通使用者啟動多個Dubbo服務出現java.lang.OutOfMemoryError: unable to create new native thread

當在同一臺Centos伺服器上用普通使用者啟動多個dubbo服務時出現呼叫異常,檢視日誌發現是以下錯誤: 2016-07-06 16:23:48.806 [New I/O server boss #1 ([id: 0x55fcd7d6, /0:0:0:0:0:0:0:0:2

由dubbo引起的 java OutOfMemoryError unable to create new native thread

先說明結果: 由於linux預設限制1024個執行緒,執行7個tomcat,一個大概150個執行緒左右,外加其中有兩個dubbo佔用了200*2個執行緒,超過1024限制時會出此錯。 解決方法:

解決OutOfMemoryError: unable to create new native thread問題

java.lang.OutOfMemoryError共有8種類型,其中java.lang.OutOfMemoryError: unable to create new native thread是很常見的一種,這類錯誤通常發生在應用試圖建立新執行緒時。 可能原因 1. 系

android 4.4java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvi

在android studio3.0 android 4.4.4 api 19下執行一直報錯如下: java.lang.RuntimeException: Unable to get provider android.support.v4.content.

問題:java.lang.OutOfMemoryErrorunable to create new native thread

這個問題 搜一下解決方法還是挺多的,但是我看了下 大多都是分開講的,我這裡稍微總結下,參考在最後。 原因 根本原因是不能建立更多的執行緒了 具體原因分兩種 1、 非root使用者下 系統對最大執行緒數的限制,切換root使用者 檢視是否還有問題 2

Android Studio編譯java.lang.OutOfMemoryError: GC overhead limit exceeded

1.在build.gradle新增指令碼指定編譯堆記憶體 如果在整個工程中生效,則在build.gradle中增加如下配置: android { .............. dexOptions { incremental true

sparkjava.lang.OutOfMemoryError: Java heap space

針對spark報錯: java.lang.OutOfMemoryError: Java heap space 解決方式:     在spark/conf/spark-env.sh中加大SPARK_WORKER_MEMORY值,如下,我加大至6GB export SPAR

Eclipse中啟動tomcatjava.lang.OutOfMemoryError: PermGen space的解決方法

最近在熟悉一個開發了有幾年的專案,需要把資料庫從mysql移植到oracle,首先把jdbc的連線指向mysql,打包放到tomcat裡面,可以跑起來,沒有問題,可是當把jdbc連線指向oracle的時候,tomcat就連續拋java.lang.OutOfMemoryError的錯誤,上網google了一下,

android JPushInterface.setAlias java.lang.NullPointerException: Attempt to invoke virtual method

報錯內容: 06-20 16:47:49.519: E/AndroidRuntime(21018): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zipingfang.wan

netty使用epoll:java.lang.UnsatisfiedLinkError: failed to load the required native library

Caused by: java.lang.UnsatisfiedLinkError: could not load a native library: netty_transport_native_epoll_x86_64 最近修改moquette程式碼, NettyAcc

Android HTTP 請求超過超時時間未返回 java.net.UnknownHostException: Unable to resolve host

現象:手機連線WIFI,但未連線外網。設定urlCon.setConnectTimeout(5000);  urlCon.setReadTimeout(8000);  在Android傳送Http請求時,時間超過設定的超時時間仍未返回。HTTP框架使用的是開源的Androi

raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)

django http spa col miss ons tab simple pytho Django 執行遷移生成表: python manage.py migrate 報錯: raise MigrationSchemaMissing("Unable to cre

Tomcat空間不足:java.lang.IllegalStateException: Unable to create the directory [/tmp/tomcat.]

今天在伺服器部署專案的時候遇到了專案無法啟動的錯誤,仔細一看異常: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is java.lang