在SequoiaSQL(Postgresql)中配置 Spark (Hive)元数据库

                 SequoiaSQL 和 Spark 的安装配置放在在这里不赘述。

                 Thrift server 最好是配合 Hive 元数据库使用。所以这里讲一下如何配置,并启动 Thrift server ,最后可以用 beeline 命令行比较方便清爽的使用 Spark SQL 。下面是配置步骤。

 

1. Postgresql JDBC 驱动

下载 Postgresql jdbc驱动: https://jdbc.postgresql.org/download.html

注意驱动版本不仅跟Postgresql版本相关,还跟 jdk 版本相关。

下载之后,上传postgresql jdbc驱动包到spark集群所有服务器的某一个目录下:
例如,上传 postgresql-9.3-1104.jdbc41.jar 到目录 /opt/spark-2.1.1-bin-hadoop2.7/jars/

 

2. 配置spark-defaults.conf 或者 spark-env.sh

conf/spark-defaults.conf :

spark.executor.extraClassPath       /opt/spark-2.1.1-bin-hadoop2.7/jars/sequoiadb.jar:/opt/spark-2.1.1-bin-hadoop2.7/jars/spark-sequoiadb_2.11-2.6.0.jar:/opt/spark-2.1.1-bin-hadoop2.7/jars/postgresql-9.3-1104.jdbc41.jar

或者 conf/spark-env.sh :

SPARK_CLASSPATH=/opt/spark-2.1.1-bin-hadoop2.7/jars/sequoiadb.jar:/opt/spark-2.1.1-bin-hadoop2.7/jars/spark-sequoiadb_2.11-2.6.0.jar:/opt/spark-2.1.1-bin-hadoop2.7/jars/postgresql-9.3-1104.jdbc41.jar

 

3. 下载并上传hive metastore建表脚本:

下载hive的源代码包:

http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-src.tar.gz

关于下载的hive版本,需要注意 spark 里边对应的 hive 版本。 Spark 2.1.1 的 hive 版本是 1.2.1 。不过, Hive 1.2.2 也一样可以用。

解压apache-hive-1.2.2-src.tar.gz之后,找到目录 metastore\scripts\upgrade\postgres\ 下边的两个SQL脚本:

hive-schema-1.2.0.postgres.sql

hive-txn-schema-0.13.0.postgres.sql

上传 这两个sql脚本 到服务器上某个目录下,待用。

 

4. 创建SequoiaSQL数据库和用户

首先创建数据库和用户:

./bin/psql -p 5432 foo

postgres=# CREATE DATABASE metastore TEMPLATE=template0 ENCODING='UTF8';

postgres=# CREATE USER hiveuser WITH PASSWORD 'mypassword';

postgres=# CREATE DATABASE metastore;

postgres=# \c metastore;

You are now connected to database 'metastore'.

然后执行 hive 里的sql 脚本。这个脚本会创建Hive存储元数据需要的库表。

postgres=# \i hive-schema-1.2.0.postgres.sql

然后授权。运行下面这个SQL语句可以生成授权语句:

postgres=#  SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE ON "'  || schemaname || '"."' || tablename || '" TO hiveuser ;' FROM pg_tables WHERE tableowner = CURRENT_USER and schemaname = 'public';

把上一步生成的授权语句都运行一遍。(hive-schema-1.2.0.postgres.sql脚本应该创建了54个表)

然后,为了方便起见,把所有权限授权给hiveuser:

GRANT ALL ON DATABASE hive_metastore to hiveuser;

 5. 配置 Hive 的数据库连接配置文件 hive-site.xml

在Spark目录下新建配置文件 conf/hive-site,编写内容如下 :

 

   

     hive.metastore.schema.verification

     false

   

   

      javax.jdo.option.ConnectionURL

      jdbc:postgresql://IP或者主机名:5432或者端口号/数据库名

      JDBC connect string for a JDBC metastore

   

   

      javax.jdo.option.ConnectionDriverName

      org.postgresql.Driver

      Driver class name for a JDBC metastore

   

   

      javax.jdo.option.ConnectionUserName

      用户名

   

   

      javax.jdo.option.ConnectionPassword

      密码

   

   

      datanucleus.autoCreateSchema

      false

      creates necessary schema on a startup if one doesn't exist. set this to false, after creating it once

   



几个配置项说明:

javax.jdo.option.ConnectionURL 填写postgresql 的服务地址、端口号和database

javax.jdo.option.ConnectionUserName 填写postgresql 用户名

javax.jdo.option.ConnectionPassword 填写用户密码

 

6. 重新启动spark , 并启动 thriftserver

启动 Spark :  sbin/start-all.sh

启动 thrift server :  sbin/start-thriftserver.sh  --master spark://10.131.9.62:7077  --total-executor-cores 12 --executor-memory 1g

用jps命令可以看到 thrift server 启动之后才出现的 spark-submit 和 CoarseGrainedExecutorBackend 。 例如:

[sdbadmin@pop-s-invquery-a ~]$ jps

2252 BeeLine

1336 Worker

717 Master

1630 CoarseGrainedExecutorBackend

3588 Jps

1634 CoarseGrainedExecutorBackend

903 Worker

1194 Worker

1650 CoarseGrainedExecutorBackend

1633 CoarseGrainedExecutorBackend

1484 SparkSubmit

1047 Worker

7. 进入PG 查看thriftserver是否已经连接到spark

select * from pg_stat_activity where datname='hive_metastore';

输出示例:

hive_metastore=# select * from pg_stat_activity where datname='hive_metastore';

 datid |    datname     | pid  | usesysid | usename  | application_name | client_addr | client_hostname | client_port |         backend_start         |          xact_s

tart           |          query_start          |         state_change          | waiting | state  |                             query                              

-------+----------------+------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+----------------

---------------+-------------------------------+-------------------------------+---------+--------+----------------------------------------------------------------

 27070 | hive_metastore | 3171 |    25592 | hiveuser |                  | 10.131.9.63 |                 |       42538 | 2017-06-30 18:31:34.694261+08 |                

               | 2017-06-30 18:31:34.699031+08 | 2017-06-30 18:31:34.699086+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3172 |    25592 | hiveuser |                  | 10.131.9.63 |                 |       42539 | 2017-06-30 18:31:34.700751+08 |                

               | 2017-06-30 18:31:34.704812+08 | 2017-06-30 18:31:34.704852+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3173 |    25592 | hiveuser |                  | 10.131.9.63 |                 |       42540 | 2017-06-30 18:31:35.111469+08 |                

               | 2017-06-30 18:31:35.1159+08   | 2017-06-30 18:31:35.115951+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3174 |    25592 | hiveuser |                  | 10.131.9.63 |                 |       42541 | 2017-06-30 18:31:35.11745+08  |                

               | 2017-06-30 18:31:35.121512+08 | 2017-06-30 18:31:35.121552+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3461 |    25592 | hiveuser |                  | 10.131.9.62 |                 |       37933 | 2017-06-30 18:49:13.029259+08 |                

               | 2017-06-30 18:49:13.033074+08 | 2017-06-30 18:49:13.033113+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3462 |    25592 | hiveuser |                  | 10.131.9.62 |                 |       37934 | 2017-06-30 18:49:13.0348+08   |                

               | 2017-06-30 18:49:13.038215+08 | 2017-06-30 18:49:13.038248+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3489 |    25592 | hiveuser |                  | 10.131.9.62 |                 |       37935 | 2017-06-30 18:50:42.775977+08 |                

               | 2017-06-30 18:50:42.77983+08  | 2017-06-30 18:50:42.779869+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3490 |    25592 | hiveuser |                  | 10.131.9.62 |                 |       37936 | 2017-06-30 18:50:42.781191+08 |                

               | 2017-06-30 18:50:42.784706+08 | 2017-06-30 18:50:42.784739+08 | f       | idle   | SET extra_float_digits = 3

 27070 | hive_metastore | 3636 |       10 | sdbadmin | psql             |             |                 |          -1 | 2017-06-30 18:52:03.679178+08 | 2017-06-30 18:5

2:09.564151+08 | 2017-06-30 18:52:09.564151+08 | 2017-06-30 18:52:09.564158+08 | f       | active | select * from pg_stat_activity where datname='hive_metastore';

(9 rows)

8. 使用 beeline

/opt/spark-2.1.1-bin-hadoop2.7/bin/beeline -u jdbc:hive2://10.131.9.62:10000 -n hiveuser -p hiveuser

beeline 命令小提示:

连接数据库: !connect [driver]

退出:  !quit

 

 

 

 
 
 

你可能感兴趣的:(Sequoiadb,数据库,newSQL,nosql,集群相关,postgresql修炼之道,spark,Sequoiadb,SequoiaSQL,hive,postgresql)