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程序最多可以建立多少個執行緒,請參考
相關推薦
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.4報錯java.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.OutOfMemoryError: unable 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
spark報錯java.lang.OutOfMemoryError: Java heap space
針對spark報錯: java.lang.OutOfMemoryError: Java heap space 解決方式: 在spark/conf/spark-env.sh中加大SPARK_WORKER_MEMORY值,如下,我加大至6GB export SPAR
Eclipse中啟動tomcat報錯java.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