
Spark 2.2.1 集成Hive数据仓库的案例与解读
一般情况下,各个公司都会建立自己的数据仓库,尤其是当前大数据生态圈中使用最普遍的Hive数据仓库,需要集成这部分数据,向外提供这部分数据的查询接口。Spark SQL提供了分布式SQL引擎,支持直接运行SQL查询的接口,不用写任何代码。
运行的集群环境说明:在新建的集群上运行,部署Spark 2.2.1版本和Hadoop 2.6.0版本,Hive 版本为apache-hive-1.2.1,对应Mysql的驱动Jar包为:mysql-connector-java-5.1.35.tar.gz。
??
(一) ThriftJDBC/ODBC的案例。
Spark SQL提供Thrift JDBC/ODBC支持, 实现的Thrift JDBC/ODBC服务器与Hive HiveServer2相一致。可以用在Spark 或者Hive附带的Beeline脚本测试JDBC服务器。
下面给出两种方式启动JDBC/ODBC服务的案例。参考Hive的默认配置文件中的属性:
<property>
<name>hive.server2.transport.mode</name>
<value>binary</value>
<description>
Expects oneof [binary, http].
Transportmode of HiveServer2.
</description>
</property>
传输模式支持两种(Binary和Http),默认的方式为Binary。
??
一:默认传输模式(Binary)启动JDBC/ODBC服务的案例。
这种情况下,在hive-site.xml 中没有对hive.server2.transport.mode等进行修改。
1)???????????? 在Spark目录中,运行start-thriftserver.sh命令启动JDBC/ODBC服务器。
root@master:~# cd/usr/local/spark-2.2.1-bin-hadoop2.6 root@master:/usr/local/spark-2.2.1-bin-hadoop2.6#cd sbin root@master:/usr/local/spark-2.2.1-bin-hadoop2.6/sbin#start-thriftserver.sh startingorg.apache.spark.sql.hive.thriftserver.HiveThriftServer2, logging to/usr/local/spark-2.2.1-bin-hadoop2.6/logs/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-master.out 这个脚本接受任何的bin/spark-submit命令行参数,加上一个--hiveconf参数用来指明Hive属性。可以运行./sbin/start-thriftserver.sh--help来获得所有可用选项的完整列表。默认情况下,服务器localhost:10000。 可以用环境变量覆盖这些变量。 root@master:/usr/local/spark-2.2.1-bin-hadoop2.6/sbin# export HIVE_SERVER2_THRIFT_PORT=10001 root@master:/usr/local/spark-2.2.1-bin-hadoop2.6/sbin# exportHIVE_SERVER2_THRIFT_BIND_HOST=master root@master:/usr/local/spark-2.2.1-bin-hadoop2.6/sbin#start-thriftserver.sh --masterspark://master:7077 --driver-class-path/usr/local/apache-hive-1.2.1/lib/mysql-connector-java-5.1.13-bin.jar startingorg.apache.spark.sql.hive.thriftserver.HiveThriftServer2, logging to/usr/local/spark-2.2.1-bin-hadoop2.6/logs/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-master.out 使用Spark的应用程序start-thriftserver.sh启动Thriftserver的时候,同样需加上--driver-class-path/usr/local/apache-hive-1.2.1/lib/mysql-connector-java-5.1.13-bin.jar的配置参数,不然会报找不到“com.mysql.jdbc.Driver”的错误。查看Thriftserver启动的日志/usr/local/spark-2.2.1-bin-hadoop2.6/logs/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-master.out。SparkSubmit提交应用程序的入口类是HiveThriftServer2。 root@master:/usr/local/spark-2.2.1-bin-hadoop2.6/sbin# cat /usr/local/spark-2.2.1-bin- hadoop2.6/logs/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-master.out Spark Command: /usr/local/jdk1.8.0_60/bin/java -cp/usr/local/apache-hive-1.2.1/lib/mysql-connector-java-5.1.13-bin.jar:/usr/local/spark-2.2.1-bin-hadoop2.6/conf/:/usr/ local/spark-2.2.1-bin-hadoop2.6/jars/*:/usr/local/hadoop-2.6.0/etc/hadoop/-Dalluxio.zookeeper.address=192.168.189.1:2181,192.168.189.2:2181,192.168.189.3:2181-Dalluxio.usezookeeper=true -Xmx1g org.apache.spark.deploy.SparkSubmit --masterspark://master:7077 --conf spark.driver.extraClassPath=/usr/local/apache-hive-1.2.1/lib/mysql-connector-java-5.1.13-bin.jar--class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 --name ThriftJDBC/ODBC Server spark-internal …….
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-86251-1.html
中国军队尤其海军必须始终头顶国耻心记仇恨