编译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 ...
随机推荐
- js学习日记-对象字面量
一.对象字面量语法 var person={ name:'小王', age:18, _pri:233 } 成员名称的单引号不是必须的 最后一个成员结尾不要用逗号,不然在某些浏览器中会抛出错误 成员名相 ...
- Transaction And Lock--锁相关基础
--=======================================================--锁提示--holdlock :将共享锁保留到事务完成,而不是在相应的表.行或数据页 ...
- 提高SQL Server数据库效率常用方法
1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ...
- C#多线程学习(二) 如何操纵一个线程
在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就 ...
- SnowFlake 生成全局唯一id
public class SnowFlakeUtil { private long workerId; private long datacenterId; private long sequence ...
- 7,CountDownLatch 与 CyclicBarrier 的 区别
CountDownLatch : 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 countDo ...
- Java - 多线程与锁
进程-线程 进程,Process,处于运行中的程序,系统进行资源分配和调度的独立单位,拥有独立的内存空间(堆). 动态性:生命周期和状态: 独立性:独立实体: 并发性:Concurrency,抢占式多 ...
- mysql基础操作学习笔记(一)
1前期准备: SQL语言包涵以下4个部分: (1)数据定义语言(DDL):包括DROP, CREATE, ALTER等语句 (2)数据操纵语言(DML):包括INSERT, UPDATE, DELET ...
- ajax 常用格式
$.ajax({ url: "/", //请求路径 type: "post",//请求方式 data: "json", //发送请求的数据格 ...
- python学习笔记1.4
注释不被程序执行的辅助性说明信息- 单行注释:以#开头,其后内容为注释# 这里是单行注释- 多行注释:以'''开头和结尾''' 这是多行注释第一行这是多行注释第二行 ''' 保留字and elif i ...