1.缓冲区Buffer
1.DataFrame API读取avro文件
1 | https://sparkbyexamples.com/spark/read-write-avro-file-spark-dataframe/ |
pom引入,spark2.4.0之后可以使用apache的spark-avro包,之前需要使用databricks的spark-avro包
1 | <!--avro--> |
读取avro文件,得到DataFrame
1 | import java.io.File |
IDEA中运行spark报如下错误
1 | Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V |
是由于本应该使用scala 2.12,但是在IDEA中配置的却是Scala 2.11导致的
1.引入依赖
1 | <!--parquet--> |
2.从parquet文件的footer读取parquet schema
1 | import org.apache.hadoop.conf.Configuration; |
输出
1 | message TestSerializer { |
3.将parquet schema转换成avro schema
1 | import org.apache.parquet.avro.AvroSchemaConverter; |
输出
1 | { |
参考:https://stackoverflow.com/questions/54159454/how-to-convert-parquet-schema-to-avro-in-java-scala
1.在CDH管理页面进入parcels,下载GPLEXTRAS
1 | lintong@master:/opt/cloudera/parcel-repo$ ls | grep GPLEXTRAS |
将sha1改成sha
1 | sudo mv GPLEXTRAS-5.16.2-1.cdh5.16.2.p0.8-xenial.parcel.sha1 GPLEXTRAS-5.16.2-1.cdh5.16.2.p0.8-xenial.parcel.sha |
如果parcels的哈希文件不存在,可以这样生成
1 | sha1sum ./SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-xenial.parcel | cut -d ' ' -f 1 > SPARK2-2.4..cloudera2-1.cdh5.13.3.p0.1041012-xenial.parcel.sha1 |
2.在界面上分配并激活
Flink有两种基本类型的状态:托管状态(Managed State)和原生状态(Raw State)。两者的区别:Managed State是由Flink管理的,Flink帮忙存储、恢复和优化,Raw State是开发者自己管理的,需要自己序列化。
|
Mybatis默认情况下,只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。
如果想要开启二级缓存,则需要在xml配置文件中添加
1 | <cache/> |
此外,还要求返回的POJO对象要实现Serializable接口
Springboot可以使用Ehcache或者redis作为缓存
1.Ehcache缓存
参考:SpringBoot学习-(十八)SpringBoot整合EhCache
添加依赖,starter+ehcache
1 | <dependency> |
添加配置文件 ecache.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
添加 @EnableCaching注解 开启缓存