创建Maven项目添加如下依赖:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifactId> <version>2.4.0</version> </dependency>
使用SparkSQL访问远程CDH集群Hive数据表主要用以下几种方式:
- 第一种:通过Hive表直接访问
第一步需要配置本地Hadoop环境变量。
然后就可以通过如下代码直接访问Hive数据表了(此时需要将集群的配置文件拷贝到resources文件下面:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml):
SparkConf conf = new SparkConf(); conf.set("hive.metastore.uris","thrift://xxxxxxxx:9083"); SparkSession session = SparkSession.builder() .appName("") .master("local[3]") .config(conf) .enableHiveSupport() .getOrCreate(); session.sql("").show();
- 第二种:通过读取文件的方式访问(此时需要将集群的配置文件拷贝到resources文件下面:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)
SparkConf conf = new SparkConf(); conf.set("hive.metastore.uris","thrift://xxxxxxxx:9083"); SparkSession session = SparkSession.builder() .appName("") .master("local[3]") .config(conf) .enableHiveSupport() .getOrCreate(); session.read().text("hdfs://nameservice1/......") session.sql("").show();