2016-07-06 88 views
2

昨天,我試圖安裝opscenter,並開始導入現有的DSE 5.0集羣。它指出安裝的版本不是opscenter 6.0的某些錯誤失敗。根本原因 - opscenter安裝是從datastax社區回購進行的,而不是企業級的。我糾正了回購信息,指向enterprose回購,刪除了現有的opscenter 5.2.4,安裝了新的opscenter 6.0 - 一切看起來不錯。最後,當我開始服務 - 啓動失敗,opscenter無法啓動,並沒有記錄文件。Opscenter 6.0啓動問題

我沒下刪除的OpsCenter 5.x和安裝的OpsCenter 6.0

  1. 刪除ospcenter的舊版本 - 須藤蔭手動刪除OpsCenter
  2. 修改不到原始指向企業回購如sudo的VI的/ etc/yum.repos.d/datastax.repo
  3. 安裝了opscenter的6.0-1版本。須藤蔭安裝OpsCenter
  4. 開始的OpsCenter - 須藤服務opscenterd啓動

的OpsCenter進程沒有運行。它會在幾秒鐘後啓動並被殺死 - 我可以使用top命令驗證它。我去檢查日誌文件,並且只能找到兩個日誌文件startup.log & gc.log.0.current。沒有在日誌文件中opscenterd.log

startup.log 
----------- 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 
2016-07-06 15:00:22,763 [opscenterd] INFO: Loading OpsCenter... 
2016-07-06 15:00:22,779 [opscenterd] INFO: Updating system path 
2016-07-06 15:00:22,780 [opscenterd] INFO: Importing twisted logging 
2016-07-06 15:00:25,710 [opscenterd] INFO: Finished importing twisted logging 
2016-07-06 15:00:25,710 [opscenterd] INFO: Opscenterd starting up... 
上安裝

Python版本是2.7.5

當我開始在前臺模式OpsCenter中 - 我可以看到一些痕跡不知道,如果相關

sudo ./opscenter -f 
-------------------- 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 
2016-07-06 15:00:22,763 [opscenterd] INFO: Loading OpsCenter... 
2016-07-06 15:00:22,779 [opscenterd] INFO: Updating system path 
2016-07-06 15:00:22,780 [opscenterd] INFO: Importing twisted logging 
2016-07-06 15:00:25,710 [opscenterd] INFO: Finished importing twisted logging 
2016-07-06 15:00:25,710 [opscenterd] INFO: Opscenterd starting up... 
Traceback (most recent call last): 
File "./bin/twistd", line 63, in <module> 
    from twisted.scripts.twistd import run 
    File "/usr/share/opscenter/lib/py/twisted/scripts/twistd.py", line 13, in <module> 
    from twisted.application import app 
    File "/usr/share/opscenter/lib/py/twisted/application/app.py", line 17, in <module> 
    from twisted.application import service, reactors 
    File "/usr/share/opscenter/lib/py/twisted/application/service.py", line 24, in <module> 
    from twisted.internet import defer 
    File "/usr/share/opscenter/lib/py/twisted/internet/defer.py", line 29, in <module> 
    from twisted.python import lockfile, failure 
    File "/usr/share/opscenter/lib/py/twisted/python/lockfile.py", line 23, in <module> 
    from os import kill 
ImportError: cannot import name kill 

我試圖驗證如果殺死是可用的安裝版本的Python - 看起來好吧

$ python -c "import os; from os import kill;print kill" 
<built-in function kill> 

opscenter沒有運行,我真的找不到opscenter.log中的任何東西。

這個問題可以在那裏,因爲我已經刪除舊版本,應該採取升級路徑?

編輯 - 如果我恢復opscenter 6.0到5.2.4,然後開始工作。看起來像我搞砸了一些東西,需要清潔的方式來刪除5.2.4首先爲了讓opscenter 6.0工作。任何幫助或方向是高度讚賞。

回答

3

我發現了opscenter 6.0啓動問題的根本原因和解決方案。

Root Cause - /tmp folder of My RHEL machine is mounted witn noexec permissions. 
---------- 

日誌並未提供任何線索。我在虛擬機上安裝了opscenter 6.0,並且它的所有工作都如此,所以它鼓勵我找出兩個env之間的區別。我在/ tmp文件夾上清零是noexec和權限問題導致opscenter在啓動時終止。

解決方案 - 顯式設置opscenter的tmp目錄。


在JVM參數中顯式設置opscenter的java temp目錄例如設置-Djava.io.tmpdir =/usr/share/opscenter/tmp。

對於基於RPM安裝
1. sudo的VI的/ usr /共享/的OpsCenter /斌/ OpsCenter中
2.添加Java臨時目錄參數到JVM選項
OPSC_JVM_OPTS =「 - 服務器-Xmx1024m -Xms1024m -XX: MaxPermSize參數=128米-Dpython.cachedir.skip =假 -XX:+ CMSClassUnloadingEnabled -XX:+ UseConcMarkSweepGC
-XX:+ CMSParallelRemarkEnabled -XX:+ ScavengeBeforeFullGC -XX:+ CMSScavengeBeforeRemark -verbose:GC
-XX:+ PrintGCDateStamps -XX:+ PrintGCDetails -XX:+ PrintGCCause
-XX:+ PrintTenuringDistribution -XX:+ PrintGCApplicationStoppedTime -XX:+ UseGCLogFileRotation -XX:NumberOfGCLogFiles = 5
-XX:GCLogFileSize = 1M -Xloggc:$ OPSC_GC_LOG_PATH/gc.log
-Djava.io.tmpdir =的/ usr /共享/ OpsCenter中的/ tmp
$ OPSC_JVM_OPTS「

+0

很高興你能夠得到這個工作! Java默認使用/ tmp目錄來存儲臨時垃圾回收文件等內容。該目錄也被JNA用來加載Jython內部使用的文件。 DataStax確實有這方面的文檔,但它是爲DSE編寫的。 http://docs.datastax.com/en/datastax_enterprise/4.8//datastax_enterprise/sec/secMakingTmpNonexecutable.html。 –

0

我也遇到了同樣的問題。但opscenter 6.0無法開始使用上述解決方案。

檢出support platfrom list,我認爲這是因爲我的操作系統是CentOS 6.2,它不在支持列表中。

所以我只是使用版本5.2,它工作正常。