#修改之前编写的同步脚本文件压缩编码
vim /home/hzy/bin/mysql_to_hdfs_init.sh
#修改如下内容
import_data(){
$sqoop import \
--connect jdbc:mysql://hadoop102:3306/$APP \
--username root \
--password 123456 \
--target-dir /origin_data/$APP/db/$1/$do_date \
--delete-target-dir \
--query "$2 where \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec org.apache.hadoop.io.compress.GzipCodec \
--null-string '\\N' \
--null-non-string '\\N'
# 删除下面一行内容
hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /origin_data/$APP/db/$1/$do_date
}
##修改之前编写的同步脚本文件压缩编码
vim /home/hzy/bin/mysql_to_hdfs.sh
#修改如下内容
import_data(){
$sqoop import \
--connect jdbc:mysql://hadoop102:3306/$APP \
--username root \
--password 123456 \
--target-dir /origin_data/$APP/db/$1/$do_date \
--delete-target-dir \
--query "$2 and \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec org.apache.hadoop.io.compress.GzipCodec \
--null-string '\\N' \
--null-non-string '\\N'
# 删除下面一行内容
hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /origin_data/$APP/db/$1/$do_date
}
进入hadoop101的/opt/module/flume-1.9.0/jobs/gmall目录
vim kafka-flume-hdfs.conf
#修改如下内容
## 控制输出文件是原生文件。
a1.sinks.k1.hdfs.fileType = CompressedStream
a1.sinks.k1.hdfs.codeC = gzip
此处已经默认采集项目环境搭建完成(hadoop、Zookeeper、kafka、flume、mysql、hive、hbase),如没有搭建完成,参考1,参考2。
Hive引擎包括:默认MR、tez、spark
tez:MR的改进版,将MR静态的计算方法改成DAG有向图的计算,MR每进行一次MR都会落一次盘,然后再执行一次MR,DAG有向图则可以进行map、map、map、reduce、reduce…方式的计算,tez可以看做是弱化版的spark。
Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。
Spark on Hive : Hive只作为存储元数据,Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。
注意:官网下载的Hive3.1.2和Spark3.0.0默认是不兼容的。因为Hive3.1.2支持的Spark版本是2.4.5,所以需要我们重新编译Hive3.1.2版本。
编译步骤:官网下载Hive3.1.2源码,解压到本地,修改pom文件中引用的Spark版本为3.0.0,这时如果hive其他的代码报错,哪里报错改哪里。
最后如果编译通过,直接打包获取jar包。如果报错,根据提示,修改相关方法,直到不报错,打包获取jar包。
查看spark的配置文件,如上图显示为做过兼容的版本,从官网上下载的为2.4.5 非3.0.0,在执行的时候就会报错。
# 让hive元数据库支持中文注释
alter table metastore.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8mb4 COLLATE utf8mb4_unicode_ci;
alter table metastore.TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8mb4 COLLATE utf8mb4_unicode_ci;
alter table metastore.PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8mb4 COLLATE utf8mb4_unicode_ci;
alter table metastore.PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8mb4 COLLATE utf8mb4_unicode_ci;
alter table metastore.PARTITION_KEY_VALS modify column PART_KEY_VAL varchar(256)