经历了一次特别坎坷的 hadoop2.2编译经历,放在这里以备忘,同时 BS 下那些将别人的作品抄来抄去甚至不问准确性和完整性的人。整个过程非常感谢强大的 google,和我的英语老师,弱弱的 BS 下度娘。红色字体是编译 hadoop 源文件时需要依赖的 lib 和注意事项。
首先,我是尝试在64位的 linux 环境上安装 hadoop2.2版本,由于有之前一些些小经验,部署和配置部分还算顺利,但是启动的时候问题就来了,namenode 启动的时候应该打印的
Start namenode on [ xxxxxx] (XXXXXX是你 namenode 所在的主机名),但是 xxxxx 编程了一个特长的,几乎是完全没见过的 java 启动 warning,意思大概是 JNI 加载出错,file 命令查看 native 包嗲的 libhadoop.so.1.0.0文件,32位的。。。好吧,本来想偷懒的,这下真的自己跑去编译 hadoop 了。
装了个
Ubuntu 64的虚拟机,装好
java 、 maven和 ant,准备开始干吧。
一开始,直接
mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-common
,报错
原来
需要 ant,2话不说,上 ant,继续。。。又出错。。。
好吧,还
需要 protobuf,原来工作机上有安装,这虚拟机给忘了,下载,一顿 config、make、make install,还出错! libprotoc.so.8 找不到, Ubuntu 下还需要在你的
.profile文件下添加一句
export LD_LIBRARY_PATH=/usr/local/lib/ ,当然,前提是你安装 protoc 的时候没有指定 prefix.别忘记,可能你需要安装或者更新你的
g++(ubuntu)或者 gcc-c++(centos)
baby,let's go on。出错~~啊,我讨厌出错。。。继续看 maven 堆栈,缺少
cmake,没啥说的,自己去 下载然后CMM上吧。
错误还是继续呢,不过万幸已经编译到Hadoop Pipes了。这次是
zlib包,直接上,
zlib1g,zlib1g-dev,好吧,还得加个
ruby。。。
继续错误。。。这颠来倒去的。还卡在 Hadoop Pipes 上,这次少的
openssl 。apt-get install openssl,错误依旧。但是
Ubuntu又没有 openssl-devel,再次感谢万能的 google,
apt-get install libssl-dev ,尼玛,终于成功了。
真是心碎,这一天就这么废掉了
分享到:
相关推荐
在Hadoop CDH的源码编译过程中,FindBugs起到了关键的角色。它能够帮助开发者在编译阶段发现潜在的问题,比如空指针异常、资源泄漏等,从而提高代码质量和可维护性。使用FindBugs进行源码检查,可以确保Hadoop CDH的...
Protobuf 是 Google 开发的一种数据交换的格式,用于 Hadoop 的编译。首先解压 protobuf-2.5.0.tar.gz,然后进行编译和安装。 [root@hadoop101 software]# tar -zxf protobuf-2.5.0.tar.gz [root@hadoop101 protobuf...
在描述中提到了三个关键的压缩包文件,它们分别是protobuf-2.5.0.tar.gz、apache-maven-3.0.5-bin.tar.gz和apache-ant-1.9.9-bin.tar.gz,这些是Hadoop编译过程中的核心组成部分。 1. **protobuf-2.5.0.tar.gz**: ...
在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力。而Snappy则是一款高效的压缩和解压缩库,常用于提升数据在Hadoop环境中的传输速度。在Hadoop 2.5.0版本中,为了优化性能,用户...
在对Hadoop源码进行编译的过程中,确保正确地安装和配置所有必要的软件包是至关重要的。以下将详细阐述这些软件包的作用以及如何在编译Hadoop源码时使用它们。 1. **protobuf (Protocol Buffers)** Protocol ...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.4是Hadoop发展中的一个重要版本,...而了解Hadoop的编译过程、bin目录的结构及其作用,对于深入理解和使用Hadoop至关重要。
2. **执行编译命令**:打开命令提示符窗口,进入Hadoop源码目录,运行`mvn clean package -DskipTests -Dmaven.javadoc.skip=true -Pdist,native -Dtar`命令来开始编译过程。该命令将跳过测试、Javadoc生成,并编译...
hadoop源码编译所需要的maven仓库,省去编译时下载时间。
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop2.7.3是Hadoop的一个重要版本,它包含了...如果你在编译过程中有任何疑问,可以参考Hadoop的官方文档,或在相关社区寻求帮助。
Hadoop2.7.6是Hadoop发展过程中的一个重要版本,它包含了多个改进和修复,使得Hadoop更加稳定和高效。 在描述中提到,该压缩包是在CentOS7.4操作系统上编译完成的,这表明Hadoop源码已经成功地适应了Linux环境,...
在这个场景中,我们讨论的是一个特别为Windows编译的Hadoop版本,包含了`bin`和`lib`两个关键目录。 1. **bin** 目录: `bin`目录包含了Hadoop的可执行脚本,这些脚本用于启动、管理和操作Hadoop集群。例如,`...
总的来说,编译Hadoop 2源文件为64位依赖包是一项涉及多步骤的过程,需要对Java、Maven、C++编译以及Linux系统有深入理解。正确配置和管理依赖关系是成功编译的关键,同时,良好的开发环境和工具准备也是必不可少的...
1. Apache Ant:这是一个Java构建工具,负责管理Hadoop的构建过程。你可以从Apache官方网站下载最新版本(如1.9.4),然后将其解压缩到 `/opt/` 目录下,并添加环境变量配置。 2. Maven:Maven是另一个Java项目管理...
2. **安装Hadoop编译环境** - 确保已安装JDK 1.7或以上版本。 - 安装Maven 3.0或更高版本。 - 安装其他必需组件:Findbugs、ProtocolBuffer、CMake、Zlib devel、openssl devel、Jansson C XML解析库、Linux ...
在本案例中,我们关注的是Hadoop 2.6.0的编译过程,这通常需要一系列的工具来完成。以下是编译Hadoop 2.6.0所需的关键组件及其功能的详细解释: 1. **Apache Ant**: Apache Ant是一个Java库和命令行工具,用于...
Hadoop-3.1.1是Hadoop发展过程中的一个重要版本,它在前一个版本的基础上进行了优化和改进,提升了系统的稳定性和性能。 在Hadoop-3.1.1中,主要包含以下关键知识点: 1. **HDFS增强**: - **Erasure Coding**:...
总之,编译Hadoop源码是一项对提升Java开发者能力非常有价值的实践。它不仅可以帮助你更好地理解和使用Hadoop,还可以提供一个深入学习分布式系统设计和实现的窗口。为了更深入地学习,你可以阅读《Hadoop权威指南》...
在IT行业中,Hadoop是一个...总之,编译和安装Hadoop源码是一个涉及多个步骤的过程,需要耐心和细致。通过理解每个步骤的作用和原理,不仅可以更好地掌握Hadoop,还能提升你在分布式系统和大数据处理领域的专业技能。