一、SQL on Hadoop
使用SQL基于Hadoop进行业务处理和分析,常用的框架:
Hive(最原始 将SQL转换成MapReduce作业提交到Yarn,易学,稳定性好,慢)
Impala(速度可以,非常吃内存,安装繁琐,与Hive共享matastore)
Presto(jd)
Shark(Spark SQL的前身,Hive跑在Spark之上,优点:速度快,缺点:与Hive兼容性不佳)
Drill(用于Hadoop、NoSQL和云存储的无模式SQL查询引擎)
HWAQ(Hadoop With Query(带查询Hadoop))
Phoenix(基于Hbase之上的SQL引擎)
Spark SQL &&Hive on Spark
Spark SQL :
Hive on Spark:spark作为执行引擎的Hive(另外两个MR、Tez),支持的东西更多
二、什么是Spark SQL
SmarkSQL是一个用于结构化数据处理的SPark模块。与基本的SparkRDDAPI不同,SparkSQL提供的接口提供了更多关于数据结构和正在执行的计算的信息。
特点:
1、Integrated 易整合
能够无缝的把查询和spark应用程序对接起来
2、Uniform Data Access 统一的数据访问方式
3、Hive Integration 兼容Hive
4、Standard Connectivity 标准的数据连接
Spark SQL is not about SQL ,Spark SQL is about more than SQL
三、启动方式
1、spark-shell
spark-shell --master local[2] --jars ~/software/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar
scala> spark.sql("show tables").show(false)
2、spark-sql(--driver-class-path)
spark-sql --master local[2] --jars ~/software/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar --driver-class-path ~/software/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar
spark-sql> select * from hive.emp;
3、通过JDBC/ODBC连接HiveServer2来访问
./start-thriftserver.sh --master local[2] --jars ~/lib/mysql-connector-java-5.1.37-bin.jar
beeline -u jdbc:hive2://192.168.137.130:10000 -n hadoop
网友评论