CentOS 上使用vscode 调试百度大数据分析框架palo BE

A: 前期准备工作

1. 安装vscode,详细请参见vscode官网https://code.visualstudio.com/docs/setup/linux,摘要如下:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo
yum check-update
sudo yum install code

 2. 下载palo源代码,本次是基于0.8.1版本编译的

下载地址为:https://github.com/baidu/palo/archive/v0.8.1-beta.tar.gz

下载第三方依赖包: http://palo-opensource.gz.bcebos.com/palo-thirdparty.tar.gz?authorization=bce-auth-v1%2F069fc2786e464e63a5f1183824ddb522%2F2017-08-11T13%3A18%3A14Z%2F-1%2Fhost%2Fec3d7693a3ab4fe76fb23f8e77dff40624bde867cab75d3842e719816cbd1d2b

3. 安装GCC 4.8.2+,Oracle JDK 1.8+,Python 2.7+,确认 gcc,java,python 命令指向正确版本,设置 JAVA_HOME 环境变量

4. 安装其他依赖包

sudo yum install -y gcc-c++ libstdc++-static ant cmake byacc flex automake libtool binutils-devel bison

5. step 4安装完成后,执行下述命令

sudo updatedb
yum install redhat-lsb
yum install mlocate

 B 编译

以下操作步骤在/home/workspace/palo0.8.1目录下进行

1. 解压A-2下载的0.8.1的源码

tar palo-0.8.1-beta.tar.gz -d /home/workspace/palo0.8.1 

2. 解压第三方包到/home/workspace/palo0.8.1/thirdparty/src/ 目录下

tar -zxvf palo-thirdparty-20180418.tar.gz -d /home/workspace/palo0.8.1/thirdparty/src/

3. 编译第三方依赖包

 sh  /home/workspace/palo0.8.1/thirdparty/build-thirdparty.sh

在本人的编译过程中,遇到boost-1.6.4编译无法通过的情况,解决办法为:

cd /home/workspace/palo0.8.1/thirdparty/src/boost_1_64_0
patch -p0 < ../../patches/boost-1.64.0-gcc4.8.patch

执行完成后,重新执行

sh  /home/workspace/palo0.8.1/thirdparty/build-thirdparty.sh

4. 编译palo产品代码

sh /home/workspace/palo0.8.1/build.sh

注意:这个编译有以下几条指令:

sh build.sh  #同时编译be 和fe
sh build.sh  --be #只编译be
sh build.sh  --fe #只编译fe
sh build.sh  --fe --be#同时编译be fe
sh build.sh  --fe --be --clean#删除并同时编译be fe
sh build.sh  --fe  --clean#删除并编译fe
sh build.sh  --be  --clean#删除并编译be
sh build.sh  --be --fe  --clean#删除并同时编译be fe

如果不出意外,应该会编译成功,最终的部署文件将产出到 /home/workspace/palo0.8.1/output/ 目录下。如果还遇到其他问题,可以参照palo的安装文档https://github.com/baidu/palo/wiki/Palo-Install,常见错误一节。

 

分享图片

 

C 部署调试 

1. 给be编译结果文件授权

chmod 755 /home/workspace/palo0.8.1/output/be/lib/palo_be

注意: /home/workspace/palo0.8.1/output/be/lib/palo_be为be的执行文件,默认编译是带-g的,也就是包含调试符号的。

2. 创建数据存放目录

通过查看/home/workspace/palo0.8.1/output/be/conf/be.conf

# INFO,WARNING,ERROR,FATAL
sys_log_level = INFO

# ports for admin,web,heartbeat service 
be_port = 9060
be_rpc_port = 9070
webserver_port = 8040
heartbeat_service_port = 9050

# Choose one if there are more than one ip except loopback address. 
# Note that there should at most one ip match this list.
# If no ip match this rule,will choose one randomly.
# use CIDR format,e.g. 10.10.10.0/24
# Default value is empty.
priority_networks = 192.168.1.0/24

# data root path,seperate by ; 
storage_root_path = /home/disk1/palo;/home/disk2/palo

# Advanced configurations
# sys_log_dir = ${PALO_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules =
# log_buffer_level = -1
# palo_cgroups 

需要创建这两个文件夹,这是be数据存放的地方

mkdir -p /home/disk1/palo
mkdir -p /home/disk2/palo

3. 打开vscode,并打开be源码所在目录,在本案例中打开目录为/home/workspace/palo0.8.1/

4. 安装vscode ms c++调试插件

分享图片

 

 5. 创建launch.json文件,文件内容如下:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information,visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0","configurations": [
        {
            "name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "/home/workspace/palo0.8.1/output/be/lib/palo_be","args": [],"stopAtEntry": false,"cwd": "/home/workspace/palo0.8.1/","environment": [{"name":"PALO_HOME","value":"/home/workspace/palo0.8.1/output/be/"},{"name":"UDF_RUNTIME_DIR","value":"/home/workspace/palo0.8.1/output/be/lib/udf-runtime"},{"name":"LOG_DIR","value":"/home/workspace/palo0.8.1/output/be/log"},{"name":"PID_DIR","value":"/home/workspace/palo0.8.1/output/be/bin"}    
                           ],"externalConsole": true,"MIMode": "gdb","setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true
                }
            ]
        }
    ]
}

其中,environment定义了几个环境变量PALO_HOME  UDF_RUNTIME_DIR LOG_DIR  PID_DIR,这是palo_be运行时需要的环境变量,如果没有设置,启动会失败。

6. 点击调试即可。

分享图片

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 B...