编译impala2.0.0
使用redhat5.8没编译成功,改用redhat6.4最终编译成功。
参考官方的文档https://github.com/cloudera/Impala/tree/v1.2.2
不知道官方的readme.md在新的版本为什么删掉了。。。囧
准备条件
安装必须要的包,jdk,llvm,maven
注意它要求用oracle的jdk,redhat默认是openjdk,可以参考这里安装 http://unix.stackexchange.com/questions/63587/how-to-install-g-4-7-2-c11-on-centos-5-x
安装boost
CentOS 6.4上预装的是boost 1.41,但是impala需要更高版本的boost库(Note: Impala requires Boost 1.4.2 or later),所以先卸载掉boost 1.41
rpm -e `rpm -qa|grep boost` |
cd boost_1_46_1 |
编译impala
把代码下载下来,由于不是直接从git下载来的,所以用git init初始化一次。另外注意里面有clean的选项,使用git来clean会导致一些代码被删掉。
sh ./buildall.sh -noclean -skiptests |
bulitall.sh实际会用到bin下面的脚本,可以都看一下
报错处理
Linking CXX executable ../../build/debug/common/atomic-test |
我们用的是mt(多线程)的库,所以要改一下
修改了be/CMakeLists.txt的216行,将原有的:
-lrt -lboost_date_time
改为
-lrt -lboost_date_time-mt
如果要静态编译,要把-lboost_date_time去掉(这里我需要静态编译,所以把它去掉了)
修改./CMakeLists.txt,加入date_time-mt
find_package(Boost REQUIRED COMPONENTS thread regex-mt system-mt filesystem-mt date_time-mt) |
修改./CMakeLists.txt找到 Boost_DEBUG 这一行,加上着一些
set(Boost_DEBUG FALSE) |
编译后的文件在 be/bulid里面,编译出来的东西有200MB+,和官方的比20MB吓尿了好吧。
执行strip –strip-debug impalad 会变成30MB+
报错Could NOT find JNI (missing: JNI_INCLUDE_DIRS)
修改cmake_modules/FindJNI.cmake文件
找到JAVA_AWT_LIBRARY_DIRECTORIES,增加路径(和你jdk位置相关) |
cdh4.5 hive的bug
impala2.0.0通过yum方法安装中,会使用cdh4.5的lib
cdh4.5中,org.apache.hadoop.hive.metastore.HiveMetaStoreClient有个bug,在每次连接metastore的时候都会等3秒钟,可以从catalog的日志看到,如果用background-load的方法会很慢。
照着 cdh4.6的代码改就可以了。一个低级的错误http://www.grepcode.com/file/repository.cloudera.com/content/repositories/releases/org.apache.hive/hive-metastore/0.10.0-cdh4.6.0/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java#314
把编译好的包替换掉,目录在/usr/lib/impala里
参考
https://github.com/cloudera/Impala/tree/v1.2.2
http://blog.csdn.net/vah101/article/details/32343471
http://blog.chinaunix.net/uid-21519621-id-3952587.html
编译release版本 http://johnjianfang.blogspot.com/2013/06/build-impala-release.html
编译impala2.0.0的更多相关文章
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- vs2016x64&&qt5.7.1编译osg3.4.0&&osgEarth2.7
此文仅备忘: 1.安装VS2013_Cn_Ult 2.安装qt-opensource-windows-x86-msvc2013_64-5.7.1 设置环境变量QTDIR,并将其bin加入到path中. ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
- vs2013编译boost1.55.0 32/64位
在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\detail\has_member_function_call ...
- 编译hadoop2.6.0
具体情况比较曲折:hadoop2.6.0编译不过 错误如下: 这个kms模块始终编译不过,最后得出结论国内的aliyun maven仓库有问题, 在编译hadoop2.2.0 可以通过,因为这个版本的 ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...
- Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群
本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html 本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...
- Win10 + VS2015 下编译 Qt5.6.0
近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 .由于项目需要兼容 Windows xp ,所以需要自己编译 Qt .这里大致整理一下编译的过程. 安装 Active ...
随机推荐
- freemarker基本入门教程
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
- MongoDB整理笔记のID自增长
以下是官网原文地址: http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ 概要 MongoDB 的_i ...
- Android-主题
主题分为两种: 第一种:使用Android系统提供的主题 第二种:自己定义主题 样式 与 主题 区分理解 样式是控制(View的子类风格)控件风格 或者 是(ViewGroup的子类风格)布局风 ...
- 数据库架构设计的三种模式:share nothing , share everythong , share disk
数据库构架设计中主要有Shared Everthting.Shared Nothing.和Shared Disk: Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMO ...
- Replication--将LSN转换成16进制
在复制中经常会使用到16进制的LSN,但在日志fn_dblog中的LSN是数字形式,于是从网上找到以下转换函数CREATE FUNCTION dbo.fn_convertnumericlsntobin ...
- Web开发工具箱
1.打印1 Web打印组件jatoolsPrinter 2.打印2Lodop 3.web前端利器 Web Essentials
- python 批量创建文件
# coding:utf8 import os path = "D:/Python_mkfile" os.chdir(path)#切换到该目录 ysyl = u"验收文件 ...
- ES6——数据结构Set
数据结构 Set 集合的基本概念: 集合是由一组无序且唯一(即不能重复)的xiang组成的.这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中. 特点: key和 value 相同, ...
- ItemContainerStyleSelector
ItemContainerStyleSelector是容器Style选择器 用法和ItemTemplateSelector差不多 同样也是也是继承类 StyleSelector,也是重写方法Selec ...
- IO模型《五》异步IO
Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入.先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事.而另一方面,从kernel的角度,当 ...