Spark thriftserver和beeline的简单使用

1.设置元数据库

如果不设置,则使用$SPARK_HOME/metastore_db/,是只支持单用户的derby

创建$SPARK_HOME/conf/hive-site.xml



    javax.jdo.option.ConnectionURL
    jdbc:mysql://hostname:3306/hive_meta?createDatabaseIfNotExist=true
    JDBC的连接字符串,如果没有hive_meta这个数据库则自动创建


    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver
    连接JDBC元数据库的Driver类名,mariadb和mysql都用这个


    javax.jdo.option.ConnectionUserName
    hive
    连接数据库的用户名


    javax.jdo.option.ConnectionPassword
    dontguessmotherfker!!!
    与用户名匹配的密码


2.元数据库配置

mysql -u root -p # 然后输入密码,作为root用户登录mysql才能创建用户并授予权限

mysql > GRANT ALL PRIVILEGES ON hivemeta.* TO 'hive'@'[hostname or ip]' IDENTIFIED BY '[password]' WITH GRANT OPTION;

# hivemeta.* 表示hivemeta数据库下的所有表。

# ALL PRIVILEGES 表示一切权限赋予mysql数据库用户hive;

# @ 后面是域名或者IP。如果使用‘%’表示任何IP或主机

mysql > FLUSH PRIVILEGES; # 使配置生效

3.启动thriftserver

$SPARK_HOME下

$ sbin/start-thriftserver.sh

Thrift JDBC/ODBC Server (简称 Spark Thrift Server 或者 STS)是Spark SQL的Apache Hive HiveServer2的端口,

通过这个端口可以允许用户使用JDBC/ODBC端口协议来执行SQL查询。

通过使用STS,商业用户就可以用使用一些炫目的BI工具,比如Tableau来连接Spark进行基于大数据量的报表制作。

4.使用beeline

$SPARK_HOME下

$ bin/beeline 
Beeline version 1.2.1.spark2 by Apache Hive

beeline> !connect jdbc:hive2://hostname:10000

# 10000端口可能被占用,查看端口:

$ netstat -tunlp | grep 10000| awk '{print $NF}'|awk -F "/" '{print $1}'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
8397 # pid 8379的进程正占用10000端口
Connecting to jdbc:hive2://hostname:10000
Enter username for jdbc:hive2://hostname:10000: 【可以什么都不填,作为匿名用户】
Enter password for jdbc:hive2://hostname:10000: 【可以什么都不填,作为匿名用户】
(一些状态打印,省略……)
0: jdbc:hive2://hostname:10000> 

你可能感兴趣的:(spark,hive)