IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++_Impala_UDF:使用C++编写impala自定义函数(UDF)环境搭建 -> 正文阅读

[C++知识库]C++_Impala_UDF:使用C++编写impala自定义函数(UDF)环境搭建

作者:commentBox

1. 安装cmake

1.1 下载

下载链接:

https://cmake.org/download/

选择已编译好的版本进行安装

在这里插入图片描述

1.2 安装

上传安装包到服务器并解压

配置环境变量

export PATH=/home/xxx/cmake-3.21.3-linux-x86_64/bin:$PATH

1.3 验证

验证是否安装成功

[root@xxxx xxxx]# cmake --version
cmake version 3.21.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

2. 安装gcc-g++

2.1 下载

下载地址:

https://pkgs.org/

在这里插入图片描述
在这里插入图片描述

2.2 安装

上传安装包到服务器并解压

执行安装

rpm -ivh gcc-c++-4.8.5-44.el7.x86_64.rpm

安装过程可能会要求其他依赖,可下载后安装再继续

2.3 验证

g++ -v
#gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

3. 安装boost库

3.1 下载

下载链接:

http://www.boost.org/

3.2 安装

上传文件到服务器并解压

执行脚本

./bootstrap.sh 

脚本执行完成后,多出脚本文件b2,执行该脚本文件

./b2 install [--prefix=/home/xxx/boost/]

4. 编译开发包

4.1 下载impala-udf-devel开发包

下载地址:

https://github.com/laserson/impala-udf-devel

4.2 编译

上传服务器并进入文件进行编译

cd impala-udf-devel-master
cmake .

ERROR:

CMake Error at CMakeLists.txt:46 (add_library):
Cannot find source file:

my-udf-file-1.cc

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
.hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc

CMake Error at CMakeLists.txt:46 (add_library):
No SOURCES given to target: myudf

FIX:

这个需要修改为自己实现的源文件,即下图中标出的位置

在这里插入图片描述

5. 编写源文件

5.1 位置

impala-udf-devel-master目录下

5.2 头文件

#ifndef FUNCTION_H
#define  FUNCTION_H
#include "udf/udf.h"
#include <string>
using namespace impala_udf;

StringVal function(FunctionContext* context, const StringVal& value);

#endif

5.3 源文件

#include "function.h"
StringVal function(FunctionContext* context, const StringVal& value)
{
	……
}

5.4 参考链接

参考链接:

https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/impala_udf.html

https://github.com/cloudera/impala-udf-samples

6. 生成链接库

完成步骤5后,即可继续步骤4,继续编译,生成动态链接库

cmake .
make

编译完成后,生成build文件夹,里面包含动态链接库

7. 上传库

7.1 上传HDFS

#上传目录没有特殊目标要求
hdfs dfs -put libfunction.so /user/xxx/udf/

上传的路径要求为绝对路径,不然会报错:

ERROR: AnalysisException: URI path must be absolute: tmp/xxx/libfunction.so

7.2 生成函数

#symbol表示动态链接库中的函数名
create function function(string) returns string location '/user/xxx/udf/libfunction.so' symbol='function';

创建成功:

±---------------------------+
| summary |
±---------------------------+
| Function has been created. |
±---------------------------+

8. 测试

成功

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:38:20  更:2021-10-01 16:40:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 20:01:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码