1.hive源码远程debug
1.先在服务器上执行hive --debug
2.服务器显示在本机的 8000 端口等待连接, 然后我们在 Idea 中配置一个远程 debug
3.打好断点,点击 Debug 按钮,就可以 Debug了。主要是 Debug 一下 CLIDriver 的 main 方法,里面有一个 run 方法.
追踪到后面的源码,可以发现一直在等待用户的输入,每次输入之后,都会用 processLine 方法处理
processLine 也就是 Hive 执行 SQL 主要逻辑了,熟读这块代码,便可看到 Hive 的核心逻辑。
2.Flink源码远程debug
修改flink/bin/config.sh
或者修改fink/conf/flink-conf.yml
idea上的操作相同
flink客户端入口
3.Kylin源码远程debug
修改kylin/conf/setenv.sh,增加一条配置
export KYLIN_DEBUG_SETTINGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
Idea操作同上,重启kylin。Kylin是个web工程,可以直接看Kylin-server-base模块即可
4 zookeeepr 源码编译完导入idea,运行(也可以适用于其余组件),没尝试过。
源码编译
- 1、下载源码包
git clone clone -b branch-3.5.5https://github.com/apache/zookeeper.git
- 2、下载Ant
https://downloads.apache.org/ant/binaries/apache-ant-1.10.8-bin.zip
- 3、配置环境变量
新增用户变量ANT_HOME ,值为安装目录
将bin目录增加到系统变量Path中
测试
ant -version
- 4、开始编译
进入zookeeper下载目录,启动cmd,输入编译命令
ant eclipse
#等待编译成功
问题:编译时可能会 下载ant-eclipse-1.0.bin.tar.bz2失败
解决方案:
将bulild.xml中的
get src="[http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2](https://link.jianshu.com/?t=http%3A%2F%2Fdownloads.sourceforge.net%2Fproject%2Fant-eclipse%2Fant-eclipse%2F1.0%2Fant-eclipse-1.0.bin.tar.bz2)"
替换成如下地址
get src="[http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2](https://link.jianshu.com/?t=http%3A%2F%2Fufpr.dl.sourceforge.net%2Fproject%2Fant-eclipse%2Fant-eclipse%2F1.0%2Fant-eclipse-1.0.bin.tar.bz2)"
- 5、 编译成功
将编译好的代码导入Idea即可。
-
6、服务启动
6.1、编辑zoo.cfg文件
将conf/zoo_sample.cfg修改为zoo.cfg,并增加dataDir和dataDirLog参数配置
6.2、启动org.apache.zookeeper.server.ZooKeeperServerMain
注意:这里启动的是单机版的服务端,从org.apache.zookeeper.server.quorum.QuorumPeerMain入口启动也是一样的 -
7注意:
1.记得要配置下log4j配置文件,否则会抛出Usage: ZooKeeperServerMainconfigfile | port datadir [ticktime] [maxcnxns]错误
-Dlog4j.configuration=file:D:\GitCode\zookeeper\zookeeper-release-3.5.5\zookeeper-server\src\test\resources\log4j.properties
2.指定zoo.cfg文件路径,否则会抛出java.lang.IllegalArgumentException:Invalid number of arguments:[]