Hadoop源码阅读环境搭建(Windows和Linux)

版权声明:原创文章,转载请注明出处! https://blog.csdn.net/L_15156024189/article/details/86568188

        就为了瞅瞅hadoop源码长啥样,坑是踩了一个又一个,最后将成功的搭建方法记录下来仅供参考。每个人的系统环境不同,出现的问题也会不一样,如果有新坑,欢迎粘贴到底部评论区,回头踩踩。

Windows源码环境搭建

软件下载

Windows:版本8.1;

eclipse:版本eclipse-inst-win64.exe,官方下载地址:eclipse-inst-win64.exe

JDK:版本1.8.0_201,官方下载地址:jdk-8u201-windows-x64.exe

Maven:版本Apache Maven 3.5.4,官方下载地址:Maven 3

Protocal Buffers:版本2.5.0,官方下载地址:protoc-2.5.0-win32.zip

hadoop版本:hadoop-2.7.3-src.tar.gz,官方下载地址:hadoop-2.7.3-src.tar.gz

安装eclipse

略。

安装JDK

略,安装好后,执行java -version验证是否安装成功,如图:

 

安装Maven

略,安装好后,执行mvn -version验证是否安装成功,如图:

安装Protocal Buffers

解压protoc-2.5.0-win32.zip到指定目录,例如:E:\protoc-2.5.0-win32,将该路径配置到PATH系统变量中,如图:

执行protoc --version验证变量是否配置成功,如图:

创建hadoop源码工程

解压源码

将hadoop-2.7.3-src.tar.gz源代码解压到指定路径,例如:G:\eclipse_workspace\hadoop-2.7.3-src;

安装插件

(1)在安装插件之前可以修改下载源,提高下载速度,具体做法如下:

        找到apache-maven-3.5.4/conf/settings.xml配置文件,将如下镜像

   <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
   </mirror>  

加入到<mirrors></mirrors>中。当然,这一步是选择性的,可以不修改。

(2)进入G:\eclipse_workspace\hadoop-2.7.3-src\hadoop-maven-plugins目录,执行

mvn install

安装hadoop-maven-plugins插件,成功后,如图:

 

生成eclipse工程文件

再回到G:\eclipse_workspace\hadoop-2.7.3-src目录,执行

mvn eclipse:eclipse -DskipTests

生成eclipse工程文件,成功后,部分输出如图:

源码导入eclipse

打开eclipse,File-->Import-->Existing Projects into Workspace,如图:

点击Finish,等待导入。

问题

总共有100个问题,仔细看只有如下几类问题:

Access restriction: The type '********' is not API (restriction on required library 'E:\Java\jdk1.8.0_201\jre\lib\rt.jar')  

******** cannot be resolved to a type

******** cannot be resolved

解决

(1)hadoop-common

包:org.apache.hadoop.ipc

问题:The import org.apache.hadoop.ipc.protobuf.TestProtos cannot be resolved

解决方法:进入源码根目录下的“hadoop-common-project\hadoop-common\src\test\proto”,执行

protoc --java_out=..\java *.proto

如图:

刷新eclipse中的hadoop-common模块。

包:org.apache.hadoop.io.serializer.avro

问题:AvroRecord cannot be resolved to a type

解决方法:下载avro-tools-x.x.x.jar,下载地址:avro-tools-1.7.7.jar,拷贝到源码根目录下的“hadoop-common-project\hadoop-common\src\test\avro”,在该目录下执行

java -jar avro-tools-1.7.7.jar compile schema avroRecord.avsc ..\java

如图:

刷新eclipse中的hadoop-common模块。

包:org.apache.hadoop.crypto

问题:Access restriction: The type 'DirectBuffer' is not API (restriction on required library 'E:\Java\jdk1.8.0_201\jre\lib\rt.jar')

解决方法:这类错误都是JDK版本问题,默认安装时使用jdk版本是1.7,配置为已经安装的JDK1.8版本即可以解决该类问题。

(2)hadoop-streaming上出现红色感叹号

红色感叹号基本都是Build Path设置问题,打开Build Path就能看到红色叉,如图:

直接remove。

以上所有问题解决后,hadoop源码工程如图:


Linux

软件下载

(1)Linux系统版本:如图,

(2)eclipse:版本eclipse-jee-2018-12-R-linux-gtk-x86_64.tar.gz,官方下载地址:eclipse-jee-2018-12-R-linux-gtk-x86_64.tar.gz

(3)JDK:版本jdk-8u144-linux-x64.tar.gz,官方下载地址:同Windows;

(4)Maven:版本Apache Maven 3.6.0,官方下载地址:同Windows,没有Windows和Linux版本区分;

(5)Protocal Buffers:版本2.5.0,官方下载地址:protoc-2.5.0.tar.gz

(6)hadoop版本:同Windows。

安装JDK

略。执行

java -version

,验证是否安装成功,如图:

安装Maven

略。执行

mvn -version

,验证是否安装成功,如图:

安装ProtocolBuffer 

        hadoop-2.7.3源码对应ProtocolBuffer是2.5.0,下载protobuf-2.5.0.tar.gz,解压文件,进入解压后的protobuf-2.5.0/目录,依次执行如下命令:

./configure
make
make install

安装完毕后执行protoc --version,验证是否安装成功,成功返回libprotoc 2.5.0,如图:

安装eclipse

        将下载的eclipse直接解压就可以,成功后,如图:

创建hadoop源码工程

解压源码

将hadoop-2.7.3-src.tar.gz源码压缩包,解压到指定目录,例如:/root/workspace/hadoop-2.7.3-src。

安装插件

进入hadoop-2.7.3-src/hadoop-maven-plugins目录,执行

mvn install

进行Eclipse插件hadoop-maven-plugins安装,出现BUILD SUCCESS,表示安装成功,如图:

生成Eclipse项目文件

        再回到hadoop-2.7.3-src/目录下执行

mvn eclipse:eclipse -DskipTests

生成Eclipse工程文件,成功后如图:

问题解决

        同Windows。

猜你喜欢

转载自blog.csdn.net/L_15156024189/article/details/86568188
今日推荐