在hive配置遠程模式metastore為Oracle,啟動正常,創建表時報錯
hive> create table dht_tab(name1 int,name45 varchar(50))row format delimited fields terminated by '\t';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : ORA-01754: a table may contain only one column of type LONG
java.sql.SQLSyntaxErrorException: ORA-01754: a table may contain only one column of type LONG
根據網上修改"hive/lib/hive-metastore-1.2.1.jar"包中package.jdo文件,將LONGVARCHAR類型修改為CLOB,操作如下:
cd $HIVE\_HOME/lib
mkdir temp
cp hive-metastore-1.2.1.jar temp
cd temp
jar -xvf hive-metastore-1.2.1.jar
sed -i -e 's/LONGVARCHAR/CLOB/g' package.jdo
jar cfm hive-metastore-1.2.1.jar META-INF/MANIFEST.MF *
cp hive-metastore-1.2.1.jar $HIVE_HOME/lib
再通過 hive --service metastore 初始化hive 再進入hive創建表仍然報相同錯誤。
求解????
還有一個問題 就是hive --service hiveserver2 沒有反應
感謝!
這個問題我自己解決了 在/hive/scripts/metastore/upgrade下有各種類型的數據庫的sql 如果創建不成功可直接在用sql在數據庫上直接創建再運行就可以了