Centos 6.7下集成Hadoop的Eclipse编译环境

Centos  6.7下集成Hadoop的Eclipse编译环境
一.软件准备
        整个环境需要的软件如下:
        1)apache-maven-3.5.2-bin.tar.gz
        2)eclipse-java-juno-SR2-linux-gtk-x86_64.tar.gz
        3)jdk-7u79-linux-x64.tar.gz
        4)openssl-1.0.2a.tar.gz
        5)protobuf-2.5.0.tar.gz
        6)findbugs-3.0.1.tar.gz
        7)hadoop-2.7.0-src.tar.gz

二.软件安装
1.JDK安装
        1)执行命令tar zxvf jdk-7u79-linux-x64.tar.gz
        2)执行命令mv jdk1.7.0_79 /usr/local
        3)执行命令chown -R hudd /usr/local/jdk1.7.0_79
        4)执行命令chgrp -R hudd /usr/local/jdk1.7.0_79
        5)执行命令vim /etc/profile
                export JAVA_HOME=/usr/local/jdk1.7.0_79
                export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
                export PATH=$PATH:$JAVA_HOME/bin
        6)执行命令source /etc/profile
        7)执行命令java -version
        
2.Maven安装
        1)执行命令tar zxvf apache-maven-3.5.2-bin.tar.gz
        2)执行命令mv apache-maven-3.5.2 maven
        3)执行命令mv maven /usr/local
        4)执行命令chown -R hudd /usr/local/maven
        5)执行命令chgrp -R hudd /usr/local/maven
        6)执行命令vim /etc/profile
                export M2_HOME=/usr/local/maven
                export PATH=$PATH:$M2_HOME/bin

        7)执行命令source /etc/profile
        8)执行命令mvn -v
        
3.protobuf安装
        1)执行命令tar zxvf protobuf-2.5.0.tar.gz
        2)执行命令chown -R hudd /home/hudd/protobuf-2.5.0
        3)执行命令chgrp -Rhudd /home/hudd/protobuf-2.5.0
        4)执行命令cd/home/hudd/protobuf-2.5.0
        5)执行命令./configure --prefix=/usr/local
        
        6)执行命令yum -y install glibc-headers gcc-c++
        7)执行命令./configure --prefix=/usr/local
        8)执行命令make
        9)执行命令make install
        10)执行命令protoc --version
        
4.findbugs安装
        1)执行命令tar zxvf findbugs-3.0.1.tar.gz
        2)执行命令mv findbugs-3.0.1 findbugs
        3)执行命令mv findbugs /usr/local
        4)执行命令chown -R hudd /usr/local/findbugs
        5)执行命令chgrp -R hudd /usr/local/findbugs
        6)执行命令vim /etc/profile
                export FINDBUGS_HOME=/usr/local/findbugs
                export PATH=$PATH:$FINDBUGS_HOME/bin
        7)执行命令source /etc/profile
        8)执行命令findbugs -version
        
5.openssl安装
        1)执行命令tar zxvf openssl-1.0.2a.tar.gz
        2)执行命令chown -R hudd /home/hudd/openssl-1.0.2a
        3)执行命令chgrp -R hudd /home/hudd/openssl-1.0.2a
        4)执行命令cd /home/hudd/openssl-1.0.2a
        5)执行命令./config --prefix=/usr/local
        6)执行命令make
        7)执行命令make install
        8)执行命令openssl version
        
6.eclipse安装
        1)执行命令tar zxvf eclipse-java-juno-SR2-linux-gtk-x86_64.tar.gz
        2)执行命令mv eclipse /usr/local
        3)执行命令chown -R hudd /usr/local/eclipse
        4)执行命令chgrp -R hudd /usr/local/eclipse
        5)执行命令cd /usr/share/applications
        6)执行命令vim eclipse.desktop
                [Desktop Entry]
                Encoding=UTF-8
                Name=Eclipse
                Comment=Eclipse IDE
                Exec=/usr/local/eclipse/eclipse
                Icon=/usr/local/eclipse/icon.xpm
                Terminal=false
                Type=Application
                Categories=GNOME;Application;Development;
                StartupNotify=true

        
        7)打开applications目录,将快捷方式拷贝到桌面即可
        8)在该版本的操作系统(Centos)下,eclipse在打开类文件时会自动关闭,如下处理
        在Eclipse安装目录下,编辑eclipse.ini文件,添加一行:
                -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
7.Hadoop源代码处理
        1)修改Maven的配置settings.xml
                执行命令cd /usr/local/maven
                执行命令mkdir repository
                执行命令cd conf
                执行命令cp settings.xml settings.xml.bak
                执行命令vim settings.xml
                <localRepository>/usr/local/maven/repository</localRepository>
                <mirrors>
                        <mirror>
                                <id>alimaven</id> 
                                <name>aliyun maven</name> 
                                <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
                                <mirrorOf>central</mirrorOf> 
                        </mirror>
                        <mirror>
                                <id>central</id> 
                                <name>Maven Repository Switchboard</name> 
                                <url>http://repo1.maven.org/maven2/</url> 
                                <mirrorOf>central</mirrorOf> 
                        </mirror>
                        <mirror>
                                <id>repo2</id> 
                                <mirrorOf>central</mirrorOf> 
                                <name>Human Readable Name for this Mirror.</name> 
                                <url>http://repo2.maven.org/maven2/</url> 
                        </mirror>
                        <mirror>
                                <id>ibiblio</id> 
                                <mirrorOf>central</mirrorOf> 
                                <name>Human Readable Name for this Mirror.</name> 
                                <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> 
                        </mirror>
                        <mirror>
                                <id>jboss-public-repository-group</id> 
                                <mirrorOf>central</mirrorOf> 
                                <name>JBoss Public Repository Group</name> 
                                <url>http://repository.jboss.org/nexus/content/groups/public</url> 
                        </mirror>
                </mirrors>
                <profiles>
                        <profile>
                                <id>jdk-1.7</id> 
                                <activation>
                                        <jdk>1.7</jdk> 
                                </activation>
                                <repositories>
                                        <repository>
                                                <id>nexus</id> 
                                                <name>local private nexus</name> 
                                                <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
                                                <releases>
                                                        <enabled>true</enabled> 
                                                </releases>
                                                <snapshots>
                                                        <enabled>false</enabled> 
                                                </snapshots>
                                        </repository>
                                </repositories>
                                <pluginRepositories>
                                        <pluginRepository>
                                                <id>nexus</id> 
                                                <name>local private nexus</name> 
                                                <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
                                                <releases>
                                                        <enabled>true</enabled> 
                                                </releases>
                                                <snapshots>
                                                        <enabled>false</enabled> 
                                                </snapshots>
                                        </pluginRepository>
                                </pluginRepositories>
                        </profile>
                </profiles>
        这里要注意的是,由于Maven在国内的中央仓库目前已经不可用,所以去掉或者替换maven.net.cn,否则后续编译会因为下载问题导致失败。替换的时候要注意标签之间的匹配。
        执行命令cp settings.xml/home/hudd/.m2
        2)预处理Hadoop源代码
                执行命令tar zxvf hadoop-2.7.0-src.tar.gz
                执行命令chown -R hudd /home/hudd/hadoop-2.7.0-src
                执行命令chgrp -R hudd/home/hudd/hadoop-2.7.0-src
                执行命令cd /home/hudd/hadoop-2.7.0-src/hadoop-maven-plugins/
                执行命令mvn install
                 
                执行命令cd ..
                执行命令mvn eclipse:eclipse -DskipTests
                
        3)在eclipse中导入Hadoop源代码
                File—>Import—>General—>Existing Projects into Workspace
                此时会发现,仍然有很多错误:
                
        1.hadoop-common中AvroRecord类没有找到,这个类应该位于org.apache.hadoop.io.serializer.avro下,去GrepCode官网(http://grepcode.com/)搜AvroRecord的源码,然后放到这个包下即可,注意版本要对应起来
        2.hadoop-common中缺少包org.apache.hadoop.ipc.protobuf,需要新建该包,并且去GrepCode官网搜找到该包下面的TestProtos、TestRpcServiceProtos两个类,然后放到这个包下即可。
        3.hadoop-streaming中出现问题,这个是hadoop-streaming里面的build path有问题,解决办法就是remove掉引用就好,具体右键右边出错项目—>properties—>左边Java Build Path—>Source—>选定错误项—>右边Remove。
        4.部分项目出现Access restriction: The method arrayBaseOffset(Class) from the type Unsafe is not accessible due to restriction on required library /usr/local/jdk1.7.0_79/jre/lib/rt.jar错误,解决办法就是右键项目Properties—>Java Build Path—> Libraries,展开JRE System Library,双击Access rules,点击Add按钮,在Resolution下拉框选择Accessible,Rule Pattern填写**/*。
8.参考资料
        1)http://www.aboutyun.com/thread-12183-1-1.html
        2)https://www.douban.com/note/483167324/
        3)http://soige.blog.51cto.com/512568/1314599
        4)https://www.zhihu.com/question/47261839?sort=created
        5)http://www.cnblogs.com/yangyquin/p/5021109.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值