我已經在桌面上安裝了Robomongo,但是我能夠將數據從Robomongo接收到配置單元表中。我已經申請了以下步驟: -MongoDB Hadoop集成
下載所需jars-蒙戈-java的驅動程序2.13.3.jar,蒙戈 - Hadoop的核心1.4.0.jar,蒙戈 - Hadoop的hive- 1.4.0.jar,MongoDB的驅動-3.2.1-javadoc.jar。
我已經將jar文件放在一個臨時文件夾中。
在配置單元腳本中,我添加了這些jar文件。我用腳本如下: -
ADD JAR /tmp/mongodb/jarfiles/mongo-java-driver-2.13.3.jar;
ADD JAR /tmp/mongodb/jarfiles/mongo-hadoop-core-1.4.0.jar;
ADD JAR /tmp/mongodb/jarfiles/mongo-hadoop-hive-1.4.0.jar;
ADD JAR /tmp/mongodb/jarfiles/mongodb-driver-3.2.1-javadoc.jar
CREATE TABLE個人
( ID字符串,
名STRING,
age STRING,
國籍STRING
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES( 'mongo.columns.mapping'='{ 「ID」: 「_ ID」, 「名稱」:」名稱「,」年齡「:」年齡「,」國籍「:」國籍「}')
TBLPROPERTIES('mongo.uri'='mongodb:// localhost:port/admin.test_1');
在本地主機中,我給出了IP地址,並在端口號給出了端口號。 admin是數據庫名稱,test_1是我嘗試攝取的集合。 我每次運行此代碼時,出現以下錯誤: -
錯誤:處理語句時出錯:java.net.URISyntaxException:絕對URI中的相對路徑:SERDEPROPERTIES('mongo.columns.mapping'='{「 id「:%22_id%22,%22name%22:%22Name%22,%22age%22:%22Age%22,%22國籍%22:%22國籍%22%7D')(state =,code = 1)
當我使用SERDEPROPERTIES(「mongo.columns.mapping」 =「{}」)在上面的代碼保持一切完好無損,我收到以下錯誤: -
錯誤:錯誤在處理語句:java.net .URISyntaxException:索引13處的方案名稱中存在非法字符:TBLPROPERTIES('mongo.uri'='mongodb:// lo calhost:port/admin.test_1')(state =,code = 1)
我正在使用CDH 5.4。誰能告訴我我該如何解決這個問題?
我也下載並添加了mongo-java-driver-3.2.2和mongodb-driver-3.2.2.jar,但我仍然得到相同的錯誤。需要幫助 ! – riz
我不知道'state =,code = 1'這行代碼來自哪裏。你有與'國家'或'代碼'相關的字段嗎?如果是這樣,可能會發佈一個示例文檔。 –
我有名字 - 姓名,年齡和國籍。我沒有名爲狀態或代碼的字段。我使用的確切腳本在這裏。我認爲state =,code = 1是不考慮字段,因爲當我保持mongo.columns.mapping爲空即當我使用SERDEPROPERTIES('mongo.columns.mapping'='{}'),即使那麼我得到的狀態=,代碼= 1錯誤,這是相同的情況下,當我提到在mongo.column.mapping字段 – riz