hadoop源码编译
之前在学校学习Hadoop的时候,这一步直接跳过的,都没人讲这个东西,直接发的压缩包给我们,后面做hadoop连接java的时候去网上找都是要钱,像我这种穷人就喜欢白嫖,所以就去找到这个学习了这个源码编译记不到步骤只能写下来,万一以后忘了还可以看看,哈哈哈
需要先下载这些包
hadoop-2.7.2-src.tar.gz (要下src这个版本,包含源码)
jdk-8u144-linux-x64.tar.gz
apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)
apache-maven-3.0.5-bin.tar.gz
protobuf-2.5.0.tar.gz(序列化的框架)
在官网中找不到自己想要的对应版本
官网全英文我人都麻了其他文章里面只给了官网地址要不然就是要钱,点进去官网找不到啊!这是我觉得比较难找的几个包的地址点进去找版本下载就可以了
hadoop2.7.2-src.tar.gz
网址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz
jdk1.8
网址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
apache-ant-1.9.9-bin.tar.gz
网址:https://archive.apache.org/dist/ant/binaries/
xftp上传压缩包,我这里还是放在/opt/software下面的
除了hadoop2.7.2-src.tar.gz包将全部解压到/opt/module下
hadoop2.7.2-src.tar.gz解压到/opt/下面
cd /opt/software
tar -zxvf hadoop2.7.2-src.tar.gz -C /opt/
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ../module
tar -zxvf apache-ant-1.9.9-bin.tar.gz -C ../module
tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../module
tar -zxvf protobuf-2.5.0.tar.gz -C ../module
配置环境变量
配置/etc/下profile文件
vi /etc/profile
#java
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin
#LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0
export PATH=$PATH:$LD_LIBRARY_PATH
#hadoop
export HADOOP_HOME=/opt/hadoop-2.7.2-src
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
使文件生效
source /etc/profile
修改maven的settings.xml的配置
/opt/module/apache-maven-3.0.5/conf/settings.xml
在mirror容器里添加阿里云镜像地址
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
进入apache-ant-1.9.9目录下安装
yum install glibc-headers
yum install gcc-c++
yum install make
yum install cmake
进入protobuf-2.5.0运行
./configure
make
makecheck
makeinstall
ldconfig
在software目录下安装
yum install openssl-devel
yum install ncurses-devel
完成后就可以进行打包了
在hadoop-2.7.2-src下进行打包
mvn package -Pdist,native -DskipTests -Dtar
打包过程比较久,在打包过程中容易maven发生报错可能是因为网络原因造成下载的包不完整多尝试几次
打包成功后的64位hadoop包在/opt/hadoop-2.7.2-src/hadoop-dist/target下
java连接hdfs的配置
通过xftp将包发送到windows中
将其解压后放到Windows的任意英文目录下我是放到java目录下的
之后配置windows的环境变量
属性-高级系统设置-环境变量-系统变量-新建
HADOOP_HOME 解压后所放置的位置
在path中添加%HADOOP_HOME\bin%;
在java中创建maven项目
file-new-project-maven project-勾选Create…-添加group id 和artifact id-finish
修改pom.xml添加相应依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
</dependencies>
需要在src/main/resources新建一个log4j.porperties添加
log4j.rootLogger=INFO,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d%p[%c]-%m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]
-%m%n
至此完成
可以在java中进行与hdfs的连接和操作了
我按照这个步骤安装比较顺利,报错没有遇到报错所以也没有报错解决方案了,每个人的机子不一样,情况也会有所不同,参考参考吧!