2013-05-10 122 views
0

我想在RHEL5上使用RPM設置oozie(cdh4)。當我使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run運行命令來設置mysql數據庫模式時,它給了我一個錯誤,指出「沒有這樣的文件或目錄」。您可以查看相同的here的日誌。錯誤創建oozie數據庫模式

雖然如果我嘗試運行命令以使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -sqlfile oozie-create.sql創建腳本,但它給了我一個錯誤,指出「無法連接到數據庫」。您可以查看相同的here的日誌。

我在關注cdh4 installation site for oozie

請幫我弄清楚可能的錯誤。提前致謝。

+0

創建是否所有的臨時目錄的存在('在/ var/lib中/ oozie'),並執行Oozie的用戶有寫入/執行該文件夾的權限? – 2013-05-10 22:00:55

+0

嗨@Chris!謝謝你試圖幫助我。 [Here](http://pastebin.com/0PKtHJ7n)是我提到的目錄中的文件列表。您提到的目錄及其內容屬於oozie用戶和組,我試圖使用同一用戶運行它,如上面的指南中所述。 – Harman 2013-05-13 04:59:27

回答

1

看起來你嘗試創建init sql文件時遇到了某種權限問題。其中,該錯誤發出了Oozie的CDH4的代碼是this

String sqlFile = (commandLine.hasOption(SQL_FILE_OPT)) 
     ? commandLine.getOptionValue(SQL_FILE_OPT) 
     : File.createTempFile("ooziedb-", ".sql").getAbsolutePath(); 

所以,你可以嘗試通過在SQL_FILE_OPT並命名,你知道存在一個路徑,並且用戶可以Oozie的寫太多。你已經完成了你的第二個命令行,但是我完全限定了sql文件的路徑,並把它放在你知道可以寫入的oozie的地方(/ tmp,實際上它應該是File.createTempFile( ..)創建文件)。

sudo -u oozie touch /tmp/oozie-create.sql 
sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create \ 
    -sqlfile /tmp/oozie-create.sql 
+0

Hi @Chris!我也嘗試過這種方式,但仍然沒有運氣。我以某種方式相信我的java家有一些問題,但是當我做出迴應時,它指向了正確的道路。有什麼辦法可以通過將它作爲一個論據來明確地覆蓋路徑嗎? – Harman 2013-05-13 13:16:32

0

在我的情況下,我的db oozie是空的,所以我刪除了數據庫,並重新創建它! $ mysql -u root -p 輸入密碼:******

mysql> create database oozie; Query OK,1 row affected(0.03 sec)

mysql>將oozie。*的所有權限授予'oozie'@'localhost'由'oozie'標識; Query OK,0 rows affected(0.03 sec)

mysql>將oozie。*的所有權限授予'oozie'所標識的'oozie'@'%'; 查詢OK,0行的影響(0.03秒)

的MySQL>出口 再見

然後

驗證DB連接 DONE 檢查DB模式不存在 DONE 檢查OOZIE_SYS表不存在 完成 創建SQL模式 完成 創建OOZIE_SYS表 完成 設置MySQL MEDIUMTEXT標誌 DONE

Oozie的DB已經爲Oozie的版本 '3.3.2-cdh4.7.0'