使用的前提是你已经安装好了spark,在这里我使用的版本是spark-2.0.2-bin-hadoop2.7,建议使用该版本,因为试了几个版本都不理想,最后找到了这个版本感觉挺好的,学习Spark SQL很方便.
1. 首先是启动thriftserver服务端:
服务器端是在spark目录下的sbin目录下,但是启动的时候不能直接使用./start-thriftserver.sh进行启动,会报没有设置master, 另外就是Spark SQL是需要和mysql一样操作表的,所以需要连接mysql的驱动jar,因此命令如下:
./start-thriftserver.sh --master local[2] --jars ~/software/mysql-connector-java-5.1.38.jar
启动完成之后可以在浏览器中进行查看,是否启动成功;在浏览器中输入以下地址即可.(阿里云服务器需要开放安全组端口)
ip:4040
进入到下面页面:
进入到这个页面之后可以点击最右面的 JDBC/ODBC Server,会显示你的启动时间,表示
thriftserver已经启动成功了;
2. 启动beeline客户端进行数据的操作:
启动程序在bin目录下,只需要输入以下命令就会连接到数据库:
./beeline -u jdbc:hive2://localhost:10000 -n hadoop
会出现以下操作界面:
出现这个界面就是表示客户端连接成功!下面就是操作数据库的操作,和mysql中一样的;
另外可以在浏览器中查看刚才的操作行为:
到这里实际就完成了thriftserver/beeline的使用,下面拓展以下thriftserver端口的修改,只需要在启动的时候加上一段配置命令即可:
./start-thriftserver.sh --master local[2] --jars ~/software/mysql-connector-java-5.1.38.jar \
--hiveconf hive.server2.thrift.port=14000
–hiveconf 就是修改端口的代表,因为默认的端口是10000,需要修改的话加上即可,对应的启动客户端端口也要进行修改:
./beeline -u jdbc:hive2://localhost:14000 -n hadoop
thriftserver和普通的spark-shell/spark-sql的区别?
- spark-shell,spark-sql都是一个spark application
- thriftserver,不管你启动多少个客户端(beeline/code),永远都是一个spark application
解决了一个数据共享的问题,多个客户端可以共享数据;