取消
顯示的結果
而不是尋找
你的意思是:

無法在筆記本使用CX_Oracle庫

User16753724663
價值貢獻

在使用cx_oracle python庫,它返回以下錯誤:

錯誤信息:無法找到一個64位的Oracle客戶端庫:“libclntsh.so:無法打開共享對象文件:沒有這樣的文件或目錄

cx_oracle庫依賴於本地庫libclntsh.so。有一個即時的客戶要求使用cx_oracle庫。

這往往打破由於不可用即時客戶或失蹤這個庫的路徑變量。

4回複4

User16753724663
價值貢獻

為了解決這個問題,我們可以使用下麵的init腳本下載即時客戶機和添加的路徑變量。有時動態鏈接器運行時需要刷新緩存,特別是如果有交叉依賴本地庫,他們放置在機器在LD_LIBRARY_PATH設置。在這種情況下,運行ldconfig - v /道路/ /本地/ libs之前加載本地庫從Java。

這是一個示例init腳本,該腳本將幫助

步驟1:創建你想要的基本目錄來存儲init腳本(假設不存在。)這裏我們使用dbfs: /磚/ <目錄>為例。

dbutils.fs.mkdirs (“dbfs: /磚/ <目錄> /”)

步驟2:創建腳本

dbutils.fs.put (“dbfs: /磚/ oracleTest / oracle_ctl。sh”、“”“# !/bin/bash #下載即時客戶存檔文件和更新url的不同版本的# wget - quiet-O / tmp / instantclient-basiclite-linux.x64-19.3.0.0.0dbru.ziphttps://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-basiclite-linux.x6..。將/ tmp / instantclient-basiclite-linux.x64-19.3.0.0.0dbru解壓縮。zip - d /磚/司機/ oracle_ctl / sudo回聲'出口LD_LIBRARY_PATH =“磚/司機/ oracle_ctl”> > /磚/ / conf / spark-env火花。sh sudo echo '出口ORACLE_HOME =“磚/司機/ oracle_ctl”> > /磚/ / conf / spark-env火花。sh”“”,真的)

第三步:驗證腳本存在。

顯示器(dbutils.fs.ls(“dbfs: /磚/ <目錄> / oracle_ctl. sh"))

步驟4。在集群中配置一個集群級init腳本

  • 在集群配置頁麵,單擊高級選項切換。
  • 在頁麵的底部,單擊Init腳本選項卡。
  • 在目標下拉,選擇DBFS,提供腳本的文件路徑,單擊Add。

步驟5:重新啟動集群

這對我來說不工作。我得到一個錯誤

dpi - 1047:不能找到一個64位的Oracle客戶端庫:“磚/司機/ oracle_ctl / / lib / libclntsh。所以:不能打開共享對象文件:沒有這樣的文件或目錄”。

當我試圖使用dbutils.f.ls檢查目錄(“/ oracle_ctl /磚/驅動程序”)我不能夠找到該目錄。可能是init腳本不是複製客戶端。所以我還手動下載Oracle客戶端和映射,集群通過創建一個位置”/磚/司機/ oracle_ctl /”,仍然沒有成功。

我也注意到錯誤是指向一個位置”..../ oracle_ctl / / lib / libclntsh”。當我檢查下載的客戶端,我無法找到任何文件夾/lib/libclntsh.可能它指向錯誤的目錄,因為最近的變化嗎?

任何幫助都是欣賞連接Oracle數據庫係統的前提。

User16752245772
貢獻者

嗨@Manoj Ashvin你能使用下麵的init腳本並嚐試嗎?

dbutils.fs.put (“dbfs: /磚/ oracleTest / oracle_ctl_new。sh”、“”“# !/bin/bash sudo apt-get安裝libaio1 wget - o / tmp / instantclient-basiclite-linuxx64.zip——安靜https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip將/ tmp / instantclient-basiclite-linuxx64解壓縮。zip - d /磚/司機/ oracle_ctl / mv /磚/驅動程序/ oracle_ctl / instantclient * /磚/驅動程序/ oracle_ctl instantclient sudo echo '出口LD_LIBRARY_PATH = " /磚/司機/ oracle_ctl / instantclient /“”> > /磚/ / conf / spark-env火花。sh sudo回聲的出口ORACLE_HOME = " /磚/司機/ oracle_ctl / instantclient /“”> > /磚/ / conf / spark-env火花。sh”“”,真的)

你好@Manoj對衝基金,

謝謝你的建議。我使用了腳本和錯誤消失了。華友世紀!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map