1、先把文件上传至虚拟机
2、hive数仓建表,从本地导入数据
创建数据库
create table if not exists data_name(name string,age int)
row format delimited fields terminated by ','
lines terminated by '\n';
从本地导入数据
load data local inpath '/usr/local/software/data_name.txt' into table data_name
3、IDEA链接hive数仓
将hive/conf/hive-site.xml 拷贝到spark的conf目录下。
将Hive元数据库MySQL的驱动jar包拷贝到spark的jars目录下。
如果访问不到HDFS,将hdfs-site.xml,以及core-site.xml拷贝到spark的conf目录下。
启动spark-sql,然后执行select * from tablename。
1)导入依赖。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.3</version>
</dependency>
2)将hive-site.xml 文件拷贝到项目的 resources 目录中。
3)使用spark操作hive数据库的代码实现。
val sparkConf = new SparkConf()
.setMaster("local[*]") // 模式为本地模式,自动分配线程数量
.setAppName("hive") // 该spark应用命名为hive
val spark:SparkSession = SparkSession.builder()
.enableHiveSupport()
.config(sparkConf)
.getOrCreate()
spark.sql("show databases").show()
spark.sql("create database spark_sql")
spark.sql("show databases").show()
4、spark处理数据
清洗数据+筛选数据+数据计算
5、用DataX将hive传输数据到mysql
参考:利用DataX实现hive到MySQL