SparkSQL thrift server 搭建

spark的 thrift serve r和hive的hive server2类似,有了它之后,sparksql就可以直接用jdbc去连接

是需要对外提供服务的,因此可以配置线程池最大连接数

sparksql的源数据还是依赖hive的

一.          前提条件

启动hdfs集群

start-all.sh

192.168.4.31:50070

启动hive的metastore服务

node2上启动:

service mysqld restart

cd /opt/apache-hive-1.2.1-bin/bin

./hive --service metastore

没反应就是启动成功

ctrl +c

再执行 ./hive --service metastore &

等一会后,node1上执行,查看 hive 是否启动成功

$ hive

hive> show tables;

OK

node1 启动 spark 集群

cd /opt/spark-2.1.0-bin-hadoop2.7/sbin

./start-all.sh

http://192.168.4.31:8080/

二.          安装配置

node1 上

cd /opt/spark-2.1.0-bin-hadoop2.7/conf

cp /opt/apache-hive-1.2.1-bin/conf/hive-site.xml ./

cd /opt/spark-2.1.0-bin-hadoop2.7/bin

vim log4j.properties

添加如下配置

log4j.logger.org.apache.spark.sql.SQLContext=WARN

log4j.logger.org.apache.spark.sql.catalyst.analysis.Analyzer=WARN

log4j.logger.org.apache.spark=WARN

log4j.logger.org.apache.spark.storage.BlockManagerMasterActor=WARN

log4j.logger.org.apache.spark.HeartbeatReceiver=WARN

log4j.logger.org.apache.spark.scheduler.local.LocalActor=WARN

启动 sqarksql 的 client(我们用下面启动服务的方式,可以用 jdbc 连接)

node1上 

cd /opt/spark-2.1.0-bin-hadoop2.7/bin

./spark-sql --master spark://192.168.4.31:7077 --executor-memory 512m

用这种方式可以直接 写 sql 语句

select * from person;(虽然数据少,但spark 将它放在两个地方,所以有2个任务)

select count(*) from person group by name; (shuffl 后是200个任务,原因是 sparksql 默认 shuffle后是启200个task)

虽然shuffle后有200个任务,但实际并行跑的只有3个(也即并行度为3个),因为这个和你机器的核数有关,我们这里有3台虚拟机且配置的核心数都是1。


cat spark-env.sh


SparkSQL thrift server 搭建_第1张图片

所以shuffle后的200个任务,要跑 200/3 = 67 次

注意如果 加上limit 关键字就会秒出,不跑spark任务,会直接从本地文件里取

vim hive-site.xml

在spark的conf目录下配置hive-site.xml,添加配置:

hive.server2.thrift.min.worker.threads

5


hive.server2.thrift.max.worker.threads

500


hive.server2.thrift.port

10000


hive.server2.thrift.bind.host

spark1


启动 spark thrift server 即把sparksql 启成一个服务

node1 上

cd /opt/spark-2.1.0-bin-hadoop2.7/sbin

./start-thriftserver.sh --master spark://192.168.4.31:7077 --executor-memory 512M

cd /opt/spark-2.1.0-bin-hadoop2.7/bin

./beeline (稍等一会)

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

用户名和密码都是空

show tables;


SparkSQL thrift server 搭建_第2张图片

你可能感兴趣的:(SparkSQL thrift server 搭建)