hive源码解析之本地环境搭建

1 整体流程

本文主要介绍hive源码解析调试的本地环境搭建过程。本次采用linux作为调试环境,因为在linux上搭建运行hadoop、hive都比较容易操作。首先,hive构建在hadoop上,要想调试hive源码,需要提前搭建hadoop环境,可以搭建一个伪分布式的hadoop环境。其次,编译hive源码,开启debug模式。最后,将hive源码导入IntelliJ中,连接debug监听的端口,输入hql,就可以调试hive源码了。

Read More

hadoop环境搭建常见问题

问题一:本地类库无法加载问题

问题描述

在搭建hadoop环境启动的时候,报无法加载本地类库的警告,具体信息如下:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[root@d1 hadoop-2.9.2]# hadoop checknative -a
18/11/25 13:28:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Native library checking:
hadoop:  false
zlib:    false
snappy:  false
zstd  :  false
lz4:     false
bzip2:   false
openssl: false
18/11/25 13:28:27 INFO util.ExitUtil: Exiting with status 1: ExitException
[root@d1 hadoop-2.9.2]#

解决办法

参照 Native Libraries Guide ,自带本地hadoop类库支持系统有限(仅支持RHEL4/Fedora、Ubuntu、Gentoo),需要在搭建hadoop环境的机器,下载相应的hadoop源码,然后编译打包,使用编译后的本地hadoop类库。

下载源码

Download页面找到网速比较快的分支,找到对应源码进行下载。本次实例中使用的是Hadoop2.9.2 ``` wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2-src.tar.gz

Read More

oracle的数据导出方式之SQLULDR2

简介

SQLULDR2是一个可以从oracle快速导出数据到文件的工具。它可以像插入语句一样自定义导出数据的语句(通过query关键字指定)、自定义字段的分割符、压缩导出文件(通过指定导出文件的后缀,例如:”.gz”)、还可以生成sqlldr用的control文件、并行导出、使用密钥对输出文件加密。

Read More

dom4j之多线程解析xml文件的锁问题

背景

线上程序是一个文本解析程序,固定30秒间隔扫描指定目录,针对每次扫描到的xml文件,配置了一个15线程的线程池,多线程去解析处理,每一个文件一个线程负责去处理。xml文件的读取使用的是dom4j,运行一段时间后,发现解析的比较慢,慢的表现一个是发现cpu核数没有充分利用起来,即,使用top命令看到只使用了6、7个核。

Read More

shell之使用rsync工具同步文件

背景

需求是将大量文件上传到远端服务器,若采用ftp协议传输,稳定传输速率慢;若本地可以ssh到远端服务器,可以尝试使用rsync命令直接同步,如果不能免密登录到远端的话,需要结合expect来填充用户名密码。本次具体需求是将本地目录/data/local/ip/day下的文件回传到对应的ip目录下的day目录下去。实现方案可以是封装回传脚本结合crontab定期执行,也可以写一个死循环每次回传之后睡一会。

Read More