spark1.6配置sparksql 的元数据存储到postgresql中
1:首先配置hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:postgresql://192.168.56.103:5432/sparksql</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.postgresql.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>postgres</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>gaoxing</value> </property> </configuration>
2: 配置postgresql的jdbc jar路径
在spark-default.properties中配置
spark.driver.extraClassPath=/opt/spark/lib/postgresql-9.4.jar
问题1
启动thriftserver, 10000监听端口死活打不开。把hive-site.xml重命名,使用默认的derby数据库,可以启动
在网上找打答案:
原来hive自动创建postgresql的表示,postgresql会自动锁死,你妹,这么傻逼啊
需要到hive的源码中抽取postgresql的sql语句,自动创建
https://github.com/apache/hive/blob/master/metastore/scripts/upgrade/postgres/hive-schema-1.2.0.postgres.sql
问题2
创建的表名是大写,尼玛死活不能查询,问了下pg的dba说是模式的问题。
CREATE TABLE "CDS" (
"CD_ID" bigint NOT NULL
);
pg加了引号以后就是大小写敏感的,哥,不按套路出牌啊