Hive是支持JDBC方式连接的,因为它自带了一个Thrift Server。 这个Thrift Server是FaceBook开发的一个接口,可以让程序通过ODBC、JDBC的方式连接。 同样的,SparkSQL也自带了这个Thrift Server,所以SparkSQL也可以通过JDBC的方式连接,用来访问Hive里面建好的表的数据。 操作步骤如下: 第一步:启动SparkSQL中自带的Thrifter Server 1、从hive的安装目录下,找到conf/hive-site.xml文件,拷贝到Spark所有节点的安装目录下conf文件夹; 2、如果hive的元数据存储是用mysql的话,那么还需要把mysql的jdbc包放到Spark所有节点的安装目录下的jars目录(低版本的是lib目录); 3、启动Thrift server,在spark安装目录下执行: 内网连接:
sbin/start-thriftserver.sh --master spark://10.9.2.100:7077 --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar
外网连接:
sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10000 --hiveconf hive.server2.thrift.bind.host=hadoop-master --master spark://10.9.2.100:7077 --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar
采用spark on yarn的方式 sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10000 --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar --master yarn --driver-cores 2 --driver-memory 2G --executor-cores 2 --executor-memory 2G --num-executors 8
其中: /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar:是mysql的jdbc的jar包的路径,根据需要修改 --hiveconf hive.server2.thrift.port=10000:端口是10000,如果跟hive的端口冲突了,可以根据需要修改 4、启动完成后,用jps命令,可以看到一个SparkSubmit的进程 5、用beeline连接测试一下是否OK,用法如下(IP地址和端口根据需要修改): cd spark的安装目录/bin [hadoop@node1 bin]$ ./beeline -u [url=]jdbc:hive2://192.168.1.26:10000/default -n hadoop[/url]
0: [url=]jdbc:hive2://192.168.1.26:10000/default[/url]> show databases; 0: [url=]jdbc:hive2://192.168.1.26:10000/default[/url]> show tables; 0: [url=]jdbc:hive2://192.168.1.26:10000/default[/url]> !quit
第二步:用Smartbi连接SparkSQL 1、把Thrift Server相关的jar包放到smartbi的lib目录下,从spark安装目录下的jars目录找到需要以下jar包: hive-beeline-1.2.1.spark2.jar
hive-cli-1.2.1.spark2.jar
hive-exec-1.2.1.spark2.jar
hive-jdbc-1.2.1.spark2.jar
hive-metastore-1.2.1.spark2.jar
spark-hive_2.11-2.1.0.jar
spark-hive-thriftserver_2.11-2.1.0.jar spark-network-common_2.11-2.1.0.jar
libfb303-0.9.2.jar
libthrift-0.9.2.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
hadoop-common-2.7.3.jar
同时删除smartbi自带的httpclient-4.2.5.jar、httpcore-4.2.5.jar
2、重启Smartbi 3、新建数据源时,填写以下信息: 数据源类型:hadoop_hive Driver:org.apache.hive.jdbc.HiveDriver URL:[url=]jdbc:hive2://122.23.368.32:10000/default[/url] 用户:hadoop 密码:一般默认是空
|