最近在研究hadoop,下载了源码,自己想编译下折腾折腾,发现在windows环境编译hadoop还不是那么简单的,需要一些开发环境及软件的支持,毕竟hadoop的初衷不是在windows环境下使用的(尽管现在版本开始支持windows环境)。本以为网上会有一些相关的资料与解决方案,可能是hadoop版本太多,解决方法都不尽人意,为了方便以后还需要再使用,特把自己的解决方案记录下来,供自己以后参考与大家的交流。
废话不多说,咱们直接进入正题。下载了源码,根目录下有个BUILDING.txt,不过人家是在unix system上编译环境。
本人windows环境:
windows7;
jdk1.7.0_25;
maven3.2.1;
protocolBuffer 2.5.0;
cmake3.3.0;
zlib128-dll;
cygwin;
安装流程:
1、安装jdk,maven这个就不多说了,大家肯定都会的。为了避免编译时虚拟机的内存不够,需要设置环境变量MAVEN_OPTS=-Xms256m -Xmx512m。
2、其次就是安装protocolBuffer,高版本在编译的时候会报错提示使用该版本(低版本就没尝试了),下载地址:https://github.com/google/protobuf/releases/download/v2.5.0/protoc-2.5.0-win32.zip。尽量使用2.5.0这个版本,如果想尝试其他版本也可以尝试下。下载好直接解压出protoc.exe文件,将存储protoc.exe的目录配置到环境变量中,配置完成后,在cmd命令行输入 protoc --version,查看是否配置成功。哇塞,配置成功,小激动!
3、接下来需要安装的就是cmake,官方要求2.6以上版本即可,我就装下X,安装了是最新版本。下载地址:http://www.cmake.org/files/v3.3/cmake-3.3.0-rc1-win32-x86.exe。安装完成,将cmake.exe所在路径加入PATH变量,在cmd命令行输入 cmake --version,查看是否配置成功。
4、然后是zlib,直接下载dll版本的,下载地址http://zlib.net/zlib128-dll.zip。直接解压到指定目录,并配环境变量ZLIB_HOME=解压目录。
5、最后是安装cygwin,下载地址:https://cygwin.com/setup-x86_64.exe。下载完毕直接安装,安装完将bin目录的路径加入PATH变量。
必备环境都已经完成,就可以开始我们的编译之旅。
1、使用cygwin进入源码根目录下的hadoop-maven-plugins目录,执行mvn install,此时开始漫长的等待,下载依赖JAR包。有时会因为网络问题经常中断,只需重新执行mvn命令,直到下载成功;
2、返回源码根目录,然后执行mvn eclipse:eclipse –DskipTests,将工程编译成eclipse工程。
3、此时可以新建一个workspace,将源码导入,此时源码会有三个问题。
第一个问题解决方案:
在eclipse中,右键单击hadoop-streaming项目,选择build path=》configure build path,然后选择Source标签页,看到出错的路径。
点击LinkSource,选择被链接的目录 (源码目录)/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf,链接名也可以随便取;inclusion patterns中添加capacity-scheduler.xml,exclusion patters中添加**/*.java,与原配置项一致;完毕后将出错的项删除。刷新hadoop-streaming项目即可。
第二个问题解决方案:
使用cygwin进入源码根目录下的hadoop-common-project\hadoop-common\src\test\proto,执行protoc --java_out=../java *.proto命令(protoc就是在安装软件第二步下载的protoc程序)。右键单击eclipse中的hadoop-common,刷新即可。
第三个问题解决方案:
下载avro-tools-1.7.7.jar(最新版)文件,地址http://mvnrepository.com/artifact/org.apache.avro/avro/1.7.7
使用cygwin进入源码根目录下的hadoop-common-project\hadoop-common\src\test\avro,执行java -jar (存储目录)/avro-tools-1.7.7.jar compile schema avroRecord.avsc ../java。上面命令是要通过avro模式文件生成相应的.java文件。右键单击eclipse中的hadoop-common项目,刷新即可。
问题解决完毕,此时使用cygwin进入源码根目录,根据系统是32位还是64位,设置参数。64位:set Platform=x64,32位:set Platform=Win32。然后执行mvn package -Pdist,native-win -DskipTests -Dtar。经过漫长的等待,终于打包完成。
期间可能会遇到一些其他问题,只要自己看报错信息,百度下基本都是可以解决的。希望这篇文章可以帮助大家开启大数据之旅的大门。如有不对或疑问,欢迎大家指出。
相关推荐
Hadoop-2.6.0.tar.gz是Apache官方发布的Hadoop 2.6.0源码包,包含了Hadoop的核心组件,如HDFS(Hadoop Distributed File System)、YARN以及MapReduce。用户可以通过解压此文件,编译安装来搭建自己的Hadoop环境,...
Sqoop 是一个开源工具,主要用于在关系数据库管理...这个压缩包 "sqoop-1.4.7.bin__hadoop-2.6.0.tar" 提供了一个方便的途径,让开发者和数据工程师可以直接使用 Sqoop,而无需从官方源码编译或单独下载每个依赖项。
下载hadoop2.6.0的源码辛苦编译成的,网上没找到编译好现成的,费了几个小时用maven编译好的带源码的jar包,中间还得安装编译protoc,可以直接供eclipse使用。
总的来说,Hadoop 2.6.0-cdh5.16.2 for Windows为Windows用户提供了一条在本地进行Hadoop测试和开发的途径,虽然相比Linux环境可能会有一些额外的挑战,但通过细致的配置和调试,可以充分利用Hadoop的强大功能。...
标题中的“hadoop-common-2.6.0-bin-master”指的是Hadoop Common的2.6.0版本的源码编译后的二进制主目录,这个目录包含了运行Hadoop所需的各种基础工具和库。 在Windows 10环境下,由于操作系统本身的特性和Linux...
编译环境如下: jdk1.7 apache-maven-3 protobuf-2.5.0 findbugs-1.3.9 gcc gcc-c++ make cmake openssl zlib ncurses snappy bzip2 lzo lzop autoconf automake
一开始使用的是原生的hadoop2.6.0编译的hadoop.dll,但是一直遇到这个问题Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String...
【标题】"hadoop-2.6.0-cdh5.14.0-with-windows.rar" 指的是一个针对Windows平台的Hadoop发行版,具体版本为2.6.0,集成在Cloudera Distribution Including Apache Hadoop(CDH)5.14.0中。这个压缩包包含了在...
carbondata-1.4,spark-2.1,hadoop-2.6.0-cdh5.11.1源码编译
总结,编译并部署Hadoop 2.6.0在CentOS 6.5上是一项涉及多步骤的技术任务,包括环境准备、源码编译、集群配置以及服务启动等。理解并熟练掌握这些步骤,对于理解和运用Hadoop进行大数据处理至关重要。同时,通过参考...
《Hadoop 2.6.0-cdh5.10.2在Windows 7环境下的编译与应用详解》 Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心设计思想是分布式存储和分布式计算,能够处理和存储海量数据。在本篇中,我们将...
自己在网上下载了一个hadoop-2.6.0-cdh5.15.1版本的hadoop,启动...是因为$HADOOP_HOME/lib/native下缺少so文件,所以自己下载hadoop源码包,自己编译了一下得到了native so,编译环境:centos7 hadoop-2.6.0 jdk1.8
hadoop-2.6.0-windows TLDR:发布我的二进制文件; 如果有兴趣阅读如何真正构建和解决构建错误 要使用 hadoop(至少是来自 MS Windows 机器的客户端),请访问 (一种官方文档)。 问题是 Apache 网站上缺少适用于 ...
"源码编译"则意味着这些库是从源代码构建的,确保了它们与当前Hadoop版本和系统配置的兼容性。 压缩包中的"native"文件可能包含了以下内容: 1. **libhadoop.so**: 这是Hadoop的主要原生库,实现了如NDFS(Hadoop...
Hadoop 2.6.0-cdh5.4.3 版本是 Cloudera Distribution 包含 Hadoop(CDH)的一个发行版,CDH 提供了对 Hadoop 生态系统的预编译、测试和优化,使得企业能够更方便地部署和管理 Hadoop 集群。此版本包含了多项改进和...
在Cent OS 6.5上编译Hadoop 2.6.0源码的步骤如下: 1. **准备环境**:确保你的系统已经安装了Java开发工具集(JDK)和GCC编译器。Cent OS 6.5自带的默认版本可能较旧,建议升级到最新的稳定版本。 2. **获取源码**...
你提到的"成功编译后的文件"意味着你已经完成了这一过程,克服了可能遇到的依赖冲突、版本不兼容等问题,这通常需要对Spark源码和构建工具(如Maven或Gradle)有深入理解。编译后的Spark二进制包包含了运行Spark所需...
带编译所需的maven库,spark2.3.3源码基于hadoop2.6.0-cdh-5.15.2进行重新编译
支持 hadoop-2.6.0-cdh5.x 版本的 snappy 等压缩的库文件,自己编译的,由于编译太麻烦,于是编译完就用 hadoop-2.6.0-cdh5.7.0 和 hadoop-2.6.0-cdh5.9.3 两个版本试了一下,都可以用。如何使用,请见文档:...
正确安装和配置Hadoop Common对于在macOS,Linux和Windows上搭建本地Spark开发环境至关重要。通过模拟Hadoop环境,开发者可以在本地快速验证和调试Spark程序,极大地提高了开发效率。理解并熟练掌握Hadoop Common的...