Spark SQL查询字段多字节分隔符Hive表: e.g. A@#$B@#$C D@#$E@#$F spark-sql --conf spark.sql.hive.metastore.barrierPrefixes=org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe --jars /XXXX/hive-contrib-xxxx.jar
展开
评论
Hive中文支持: 1、表数据支持中文 hive-site.xml: 指定数据库加参数:characterEncoding=UTF-8 2、注释支持中文 在MySQL中: use Hive数据库; # 修改表注释字符集 alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; # 修改分区注释字符集 alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8; alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; # 修改字段注释字符集 alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8; # 修改索引注释字符集 alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
展开
评论
CPU SSE4.2指令集支持: Linux: grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" Mac: sysctl machdep.cpu.features
展开
评论
Flink以集合返回报错: 解决: 导入依赖: <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-compiler</artifactId> <version>2.12.10</version> </dependency> (注意与Scala版本一致)
展开
YBCarry_段松啓于2021-08-27 22:23发布的图片
评论
HTTPClient报错: 原因: HTTPClient依赖版本太低 解决: 4.3.5 —> 4.5.6 <!-- HTTPClient依赖 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency>
展开
YBCarry_段松啓于2021-08-22 19:58发布的图片
评论
Spark3兼容CDH1.1.0: ln -s hive-site.xml $SPARK_HOME/conf spark-defaults.conf: # hive metastore版本设置 spark.sql.hive.metastore.Version=1.1.0 # 引用 HIVE在 cloudera/parcels相关的jar包 spark.sql.hive.metastore.jars=/home/ha/app/hive/lib/* # 设置 spark提交任务默认的 yarn 队列 spark.yarn.queue=root.analysis 若报错org/apache/hadoop/mapred/MRVersion找不到: cp hadoop-core-2.6.0-mr1-cdh5.16.2.jar $HIVE_HOME/lib
展开
评论
Maven把非官方jar包打入仓库: mvn install:install-file -Dfile=本地jar包路径 -DgroupId=XXX -DartifactId=YYY -Dversion=ZZZ -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true
展开
2
cp 、rm、mv与inode之间的关系: cp:当文件不存在时,分配一个新的inode号,创建新文件;当文件存在时,则inode号采用被覆盖之前的目标文件的inode号。 rm: 链接数递减,减少链接数量,如果链接数为0释放inode(inode号码可以被重新使用);如果inode被释放,则数据块放到可用空间列表中,删除目录中的目录项。 mv: 如果目标和源在相同的文件中,则会用新的文件名创建对应新的目录项,删除旧目录条对应的旧文件名,但不影响inode 号(除时间戳)或磁盘上数据的位置,数据不被移动;如果目标和源不在同一个文件中,mv相当于cp和rm,inode号会变化。
展开
评论
datetime与timestamp: 相同点: datetime和timestamp都可以表示年月日时分秒(YYYY-MM-DD HH:MM:SS)格式的数据。在5.6.4版本之后都可以包含秒后的小数部分,6位精度。 不同点: 1、存储范围: datetime的存储范围是 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999; timestamp的范围是 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999,不在该时间范围内会抛异常。 2、时区: datetime存储不考虑时区; timestamp存储的是与时区有关。存储会先将时间从当前服务器的时区转换为UTC进行存储,查询时从UTC转换为当前时区以进行返回。 3、存储: 5.6.4之前,datetime存储8个字节,timestamp存储4字节。 5.6.4之后,由于有小数部分,datetime的非小数部分需要5个字节,而不是8个字节,而timestamp的非小数部分是需要4个字节,并且这两个部分的小数部分都需要0到3个字节,具体取决于存储值秒的精度。
展开
评论
GitLab代码提交 1、将远程仓库克隆到本地 - 首先进入存放远程仓库的本地目录 - git bash:`git clone git@git.XXXXXXXX.com:YYY.git` - 进入仓库:`cd YYY` ## 2、从远程仓库取代码 - `git fetch` ## 3、查看并切换分支 - 查看所有分支:`git branch -a` - 切换成自己的分支:`git checkout ZZZZZZ` ## 4、提交代码文件 - 将代码文件直接复制到对应文件夹下,文件夹可以在GitLab网页端创建 - 添加所有修改的文件:`git add -A` - 提交本地仓库:`git commit -m'备注信息'` - 提交远程仓库:`git push` - GitLab网页端查看是否成功
展开
评论
Java中,所有的对象都分配在堆上,有一个指针引用它。指向这些对象的指针大小通常是CPU的字长的大小,不是32bit就是64bit,这取决于处理器,指针指向了值的精确位置。 对于32位系统,内存最大可使用4G。对于64位系统可以使用更大的内存。但是64位的指针意味着更大的内存浪费,因为指针占用变大了。但是,更大的指针在主内存和缓存器(例如LLC,L1等)之间移动数据的时候,就会占用更多的带宽。 Java使用内存指针压缩技术来解决这个问题。它的指针不再表示对象在内存中的精确位置,而是表示为偏移量。意味着32位的指针可以引用40亿个对象,而不是40亿个字节。最终,也就是说堆内存长到32G的物理内存,也可以用32bit的指针表示。JVM在内存小于32G的时候才会采用该技术。 如果越过32G的边界,指针就会切回普通对象的指针,每个对象的指针都变长了,就会使用更多的CPU内存带宽,也就是说实际上失去了更多的内存。事实上当内存到达40-50GB的时候,有效内存才相当于使用内存对象指针压缩技术时候的32G内存。 总之,在设置JVM内存时候,不要在32G-50G之间,因为在这个范围内白白浪费了内存,降低了CPU的性能,还要让GC应对大内存。若够用,那么内存最好控制在30G以内,如果内存必须要扩容,那就把内存直接拉到50G+,这样才会带来性能上的提升。
展开
3
下一页
个人成就
年度人气作者No.22
文章被点赞387
文章被阅读43,217
掘力值819
收藏集
0
关注标签
36
加入于