Spark-SQL连接Hive全攻略
在大数据处理领域,Spark-SQL与Hive的结合能发挥强大的功能。今天就来给大家分享一下Spark-SQL连接Hive的多种方式。
Spark SQL编译时可选择包含Hive支持,这样就能使用Hive表访问、UDF、HQL等特性,而且无需提前安装Hive。其连接方式丰富多样。内嵌Hive使用简单,但实际生产中很少用。外部Hive的连接稍复杂些,需要将hive-site.xml、core-site.xml和hdfs-site.xml拷贝到conf/目录下,修改hive-site.xml中的连接地址,把MySQL驱动copy到jars/目录下,最后重启spark-shell 就能成功连接。
Spark beeline利用Spark Thrift Server实现与HiveServer2的无缝兼容。连接时步骤和外部Hive类似,启动Thrift Server后,用beeline -u jdbc:hive2://node01:10000 -n root连接。Spark SQL CLI能在本地运行Hive元数据服务和执行查询,将mysql驱动和hive-site.xml文件分别放入jars/和conf/目录,运行bin/目录下的spark-sql.cmd即可。
通过代码操作Hive,要先导入相关依赖,把hive-site.xml文件拷贝到项目的resources目录中。不过在实际操作中可能会遇到一些问题,比如权限错误,这时可以通过设置System.setProperty("HADOOP_USER_NAME", "node01")解决。如果创建的数据库在本地仓库,想让其在指定的HDFS路径,可通过修改“spark.sql.warehouse.dir”配置实现。