详解Hadoop2.7.2 编译64位源码_相关技巧

来源:脚本之家  责任编辑:小易  

CDH为了保证兼容性,它的每个版本都是固定的,没办法选择

一、环境准备

1.CentOS配置

1、首先你要确定不用ha的时候你的hadoop集群是正常的,不然找错误的方向就偏离了 2、如果都正常

最好是用新克隆的虚拟机 ,虚拟机内存设置大一点(我设置的4G),配置网络,主机名,关闭防火墙,关闭selinux

[hadoop@hadoop01 hadoop-2.7.2]$ ./bin/hadoop jar

注意:采用root角色编译,减少文件夹权限出现问题

项目一直使用win下面的eclipse进行开发,每次开发的mapreduce都需要打成jar包,然后

2.jar包准备(hadoop源码、JDK8、maven、ant 、protobuf)

Hadoop 2.0指的是版本为Apache Hadoop 0.23.x、2.x或者CDH4系列的H

(1)hadoop-2.7.2-src.tar.gz

在我的认知里面,这是粥:粥比较细软黏稠,粒粒不分明。这是稀饭:稀饭的颗粒感更重一点,有明显的水、米分离感。上图是煮烂的稀饭,有更明显一点的:这是一个处女座的问题,一定要区分还是有不同的。稀饭虽然也是粘稠的,但是水和米基本还是分得清的;而“粥”则强调:粘稠度更高、米粒酥烂、水米交融。口感上二者还真是不一样,显然粥更美味、更香浓。传统做法要熬上一锅靓粥首先要大火熬开转中低火起码要10-20分钟以上才能煮出粘稠香浓的口感。

(2)jdk-8u144-linux-x64.tar.gz

相比如城里,乡下人更会教育孩子。1:某人50多岁,自己都有了孙子,脾气暴躁,但在父亲面前,象一只乖猫,有一次因为和父亲犟嘴,被父亲打了出去,天黑回家,照样孝顺。2:一位母亲5.6个男孩,每到吃饭时要求,先把上顿剩下掰成小块的干粮吃完,再吃成个的。孩子犯了错,有时把绳子用水浸湿,用湿绳抽孩子。孩子长大成人,都特别孝顺。以上两例,就是父母从小在孩子面前,树立了威严、规矩和家法。所谓谁是这个家的老大,所谓棍棒下出孝子。孩子就是孩子,从小要当孩子养。如果一位父亲或母亲,从小就把自己的孩子当亲爹养,那么,等孩子长大成人,你在孩子面前,就是孙子、佣人,随时呼来唤去,随便喝斥,何谈尊严可有?

(3)apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)

又一年开学季,家长们都有一种松口气的感觉,熊孩子们终于回学校了。还有一批特殊的家长很焦虑,就是幼儿园小班刚刚入学的小朋友家长,他们都会问:孩子每天早上哭闹不肯上幼儿园怎么办?其实,分离和环境变化对每个人来讲都是让人很不舒服的。比如我们换新工作、搬新家、和老朋友分离等等,内心深处都会有一些忐忑,这是我们对安全感需求的表现。只不过,我们成年人已经建立了安全感体系,所以很快就能调整自己适应变化的环境。孩子还没有建立自己的安全感体系,他们对于分离和环境变化的焦虑比大人强烈很多,他们并不理解为什么爸爸妈妈要把他丢在一个陌生环境中,所以他们拒绝接纳不认识的老师和小朋友,内心深处是害怕被爸爸妈妈抛弃的恐慌。

(4)apache-maven-3.0.5-bin.tar.gz

不吹不黑,公平公正和您聊聊相声。熟悉德云社的朋友都清楚,德云社为了舞台效果,经常出现“打架”的事件,比如岳云鹏在《欢乐喜剧人》的舞台上就曾经挨打,但那都是提前设计好的桥段。但是曹云金与岳云鹏的那次冲突,明显是岳云鹏玩过头了。我先还原一下当时的情形。德云社有一次郑州演出,在谢幕前,按惯例郭德纲要向观众介绍演出人员。郭德纲在介绍史爱东的时候,岳云鹏就开始用河南话插话“我叫岳云鹏”,在正式介绍曹云金之前,郭德纲特意强调了一下,“咱们一对对的来啊”,但是在郭德纲介绍曹云金的过程中,岳云鹏一把抢过话筒,“我叫岳云鹏,很高兴来到……”,开始曹云金没生气,只是对岳云鹏说别闹,接着曹云金继续介绍自己,但是岳云

(5)protobuf-2.5.0.tar.gz(序列化的框架)

3.jar包安装(注意:所有操作必须在root用户下完成)

JDK

1.解压

tar -zxf jdk-8u141-linux-x64.tar.gz -C /export/compile

2.配置环境变量

vim /etc/profile export JAVA_HOME=/export/compile/jdk1.8.0_141 export PATH=$PATH:$JAVA_HOME/bin

3.更新profile文件

source /etc/profile

4.验证安装是否成功

验证命令:jps  出现jps进程表示安装配置成功

2.Maven

1.解压&重命名

tar -zxf apache-maven-3.0.5-bin.tar.gz -C /export/compile mv /export/compile/apache-maven-3.0.5-bin.tar.gz /export/compile/maven

2.修改配置文件

vim /export/compile/maven/conf/settings.xml

添加阿里云镜像地址:

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

3.配置环境变量

vim /etc/profile export MAVEN_HOME=/export/compile/maven export PATH=$PATH:$MAVEN_HOME/bin

4.更新profile文件

source /etc/profile

5.验证安装是否成功

验证命令:mvn -version   出现版本信息表示安装成功

3.ant

1.解压&重命名

tar -zxf apache-ant-1.9.9-bin.tar.gz -C /export/compile mv apache-ant-1.9.9 ant

2.配置环境变量

vim /etc/profile export ANT_HOME=/export/compile/ant export PATH=$PATH:$ANT_HOME/bin

3.更新profile文件

source /etc/profile

4.验证安装是否成功

验证命令:ant -version   出现版本信息表示安装成功

4.glibc-headers

yum -y install glibc-headers yum -y install gcc-c++

5.make和cmake

yum -y install make yum -y install cmake

6.protobuf

1.解压&重命名&进入protobuf根目录

tar -zxf protobuf-2.5.0.tar.gz -C /export/compile mv protobuf-2.5.0/ protobuf cd /export/compile/protobuf

2.依次执行如下命令

1 ./configure

2 make

3 make check

4 make install

5 ldconfig

3.配置环境变量

vim /etc/profile export LD_LIBRARY_PATH=/export/compile/protobuf export PATH=$PATH:$LD_LIBRARY_PATH

4.更新profile文件

source /etc/profile

5.验证安装是否成功

验证命令:protoc --version  出现版本信息表示安装成功

7.安装openssl库

yum -y install openssl-devel

8.安装 ncurses-devel库

yum -y install ncurses-devel

二、编译源码

1.解压

tar -zxf hadoop-2.7.2-src.tar.gz -C /export/compile

2.进入hadoop源码主目录

/export/compile/hadoop-2.7.2-src

3.通过maven执行编译命令

mvn package -Pdist,native -DskipTests -Dtar

4.然后就是漫长的等待...(大约等待时间30分钟左右,最终成功是全部SUCCESS,如下图所示)

5.成功的64位hadoop包在/export/compile/hadoop-2.7.2-src/hadoop-dist/target目录下

三、编译源码过程中常见的问题及解决方案

(1)MAVEN install时候JVM内存溢出

原因以及处理方式:在环境配置文件和maven的执行文件均可调整MAVEN_OPT的heap大小。

(详情查阅MAVEN 编译 JVM调优问题,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method

(2)编译期间maven报错

原因以及处理方式:可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令(一次通过比较难):

mvn package -Pdist,nativeN -DskipTests -Dtar

(3)报ant、protobuf等错误

原因以及处理方式:插件下载未完整或者插件版本问题,最开始链接有较多特殊情况。

总结

到此这篇关于Hadoop2.7.2 编译64位源码的文章就介绍到这了,更多相关Hadoop 编译源码内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

怎么将hadoop从2.6换为2.7

nn1为active,nn2为standby,upgrade.sh为批量执行脚本

首先下载2.7.2的hadoop源码进行编译,形成hadoop-2.7.2.tar.gz

安装新版本的hadoop,从log-server上分发新版的hadoop并解压 

cd /letv/setupHadoop 

./upgrade.sh distribute cluster_nodes hadoop-2.7.2.tar.gz /letv/usr/local 

./upgrade.sh common cluster_nodes “cd /letv/usr/local;tar -xzvf hadoop-2.7.2.tar.gz”

将新版hadoop 的 /etc/hadoop下的所有文件替换为原版hadoop的相同文件夹下的配置文件。 

./upgrade .sh common cluster_nodes “cd /letv/usr/local/hadoop-2.7.2/etc;rm -rf hadoop;cp -r /usr/local/hadoop/etc/hadoop /letv/usr/local/hadoop-2.7.2/etc “

一、 Prepare Rolling Upgrade 

1、以hadoop用户登录nn2执行 

“hdfs dfsadmin -rollingUpgrade prepare” 

 

2、nn2上执行 

“hdfs dfsadmin -rollingUpgrade query” 

等待,直到出现 “Proceed with rolling upgrade”如果不出现,重复执行前一个命令

3、完成操作后,在namenode的50070端口页面最上端上会出现相应提示信息,表示rollback文件生成。

二、 Upgrade Active and Standby NameNodes and ZKFC 

1、关闭standby的namenode即nn2和ZKFC。 

hadoop-daemon.sh stop namenode 

hadoop-daemon.sh stop zkfc

2、以rollingUpgrade的方式启动nn2 

切换到root用户 

然后建立新hadoop的软链 

cd /usr/local 

rm -rf hadoop 

ln -s /letv/usr/local/hadoop-2.6.3 hadoop 

chown - R hadoop:hadoop hadoop 

重新启动namenode和zkfc 

hadoop-daemon.sh start namenode -rollingUpgrade started 

hadoop-daemon.sh start zkfc 

启动完成后nn2为standby状态

3、切换nn1和nn2使得nn1为standby(nn2上操作),nn2为active。 

hdfs haadmin -failover testnn1 testnn2

4、 在nn1上重复步骤1和2

5、切换nn1和nn2恢复原来的状态 

hdfs haadmin -failover testnn2 testnn1

三、Upgrade Journalnode 

journalnode更新需要一台一台操作,不可以批量执行操作,否则导致集群挂掉。

1、登录一台journalnode(新集群resourcemanager和journalnode启动在了一台机子上,所以先从standby的resourcemanager入手,然后是active的resourcemanager,其次顺序任意) 

ssh sdf-resourcemanager2

2、停止journalnode服务 

hadoop-daemon.sh stop journalnode 

停止resourcemanager服务(这里是rm2所以会执行这一步,如果接下来的journalnode上不存在rm进程则不需要执行)

3、 安装新版本hadoop 

切换到root用户 

然后建立新hadoop的软链 

cd /usr/local 

rm -rf hadoop 

ln -s /letv/usr/local/hadoop-2.7.2 hadoop 

chown - R hadoop:hadoop hadoop

4、启动新版的journalnode 

hadoop-daemon.sh start journalnode。 

yarn-daemon.sh start resourcemanager。

5、每台journalnode执行1-4操作,没有resourcemanager进程的机子不做rm的重启操作。

注意,一定要等journalnode 完全启动后,才可以执行下一个journalnode的升级操作。可以查看日志,也可以查看/data/hadoop/data2/journal_node/test-cluster/current下的edit文件,看重启journalnode服务的这台服务器是否和其它journalnode节点上相同文件夹的的edit文件同步。同步后,方可继续。

四、Upgrade DataNodes and Nodemanager 

1、选择任意一个datanode(集群可以按机架来批量执行),执行 

hdfs dfsadmin -shutdownDatanode DATANODE_HOTS:50020 upgrade 

yarn-daemon.sh stop nodemanager 

完后datanode和nodemanager进程关闭。

2、安装新版本hadoop 

切换到root用户 

然后建立新hadoop的软链 

cd /usr/local 

rm -rf hadoop 

ln -s /letv/usr/local/hadoop-2.7.2 hadoop 

chown - R hadoop:hadoop hadoop

3、启动datanode和nodemanager 

hadoop-daemon.sh start datanode 

yarn-daemon.sh start nodemanager

4、所有datanode和nodemanager节点执行步骤1、2和3

五、 

确定升级完成后,nn1和nn2上执行 hdfs dfsadmin -rollingUpgrade finalize来结束升级操作。Namenode的50070端口页面的提示信息消失。此步骤不可逆,一旦执行,rollbackfsimage文件变为普通的fsimage文件,集群不可再回到升级前的状态

hadoop2.7.2配置环境变量

路径不对。

使用绝对路径/~/hadoop2.7/bin/hadoop

或者相对路径 在bin目录下 ./hadoop

或者将bin目录加到/etc/profile中作为环境变量追问官网文档上那个指的是hadoop2.7下的Bin文件夹是吗。。。我刚开始接触这些。。不太明白,谢谢追答就是你解压目录下的bin目录,这是linux系统shell工具的原因。例如cd ~ 然后ls列出了所有文件夹 有个文件夹叫a a中有个a.sh 那么cd a 进入a文件夹 ./a.sh 就是运行a.sh 不进入a文件夹就 ./a/a.sh 这是相对路径 绝对路径就是 /~/a/a.sh 如果你cd / 然后ls 这就是根目录

编译hadoop-2.7.2-src失败怎么办 common

试试下面这个方法:

<dependency>

<groupId>org.mortbay.jetty</groupId>

<artifactId>jetty-util</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.mortbay.jetty</groupId>

<artifactId>jetty</artifactId>

<scope>test</scope>

</dependency>

missing artifact org.apache.hadoop:hadoop-common:jar:2.7.2怎么解决

执行以下命令解压缩jdk

tar -zxvf hadoop-2.2.0-src.tar.gz

会生成一个文件夹 hadoop-2.2.0-src。源代码中有个bug,这里需要修改一下,编辑目录/usr/local/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth中的文件pom.xml,执行以下命令

gedit pom.xml

  • 本文相关:
  • 基于 zookeeper 搭建 hadoop 高可用集群 的教程图解
  • hadoop的安装与环境搭建教程图解
  • ubantu 16.4下hadoop完全分布式搭建实战教程
  • 在centos中搭建hadoop的详细步骤
  • git如何删除历史记录中的大文件详解
  • 程序员学英语的一个方法
  • 重装win10系统超详细的图文教程(适用所有windows系统)
  • git标签管理
  • vs快捷键 用好ctrl+enter与ctrl+shift+enter组合键让你的编辑代码
  • select下拉菜单实现二级联动效果
  • 快速解决eclipse中注释的代码依然会执行的问题
  • 简单谈谈git中的回滚操作
  • git 教程之查看提交历史详解
  • textarea 在ie和ff下换行无法正常显示的解决方法
  • 怎么将hadoop从2.6换为2.7
  • hadoop2.7.2配置环境变量
  • 编译hadoop-2.7.2-src失败怎么办 common
  • missing artifact org.apache.hadoop:hadoop-common:j...
  • hadoop2.7.2的执行结果part-r-00000不能再拿去跑
  • CDH如何支持Hadoop2.6以上的版本,2.7.2.8.2.9....
  • 单机版hadoop2.7.2为什么live nodes 0
  • hadoop 2.7.2 怎么使用命令行运行wordcount
  • hadoop-eclipse-plugin-2.7.2放哪里
  • hadoop1.x 和 hadoop 2.x 区别,2.5 2.6 2.7之间的区别
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页相关技巧基于 zookeeper 搭建 hadoop 高可用集群 的教程图解hadoop的安装与环境搭建教程图解ubantu 16.4下hadoop完全分布式搭建实战教程在centos中搭建hadoop的详细步骤git如何删除历史记录中的大文件详解程序员学英语的一个方法重装win10系统超详细的图文教程(适用所有windows系统)git标签管理vs快捷键 用好ctrl+enter与ctrl+shift+enter组合键让你的编辑代码select下拉菜单实现二级联动效果快速解决eclipse中注释的代码依然会执行的问题简单谈谈git中的回滚操作git 教程之查看提交历史详解textarea 在ie和ff下换行无法正常显示的解决方法2019最新的pycharm激活码(推荐)进制转换算法原理(二进制 八进制eclipse 格式化代码时不换行与自微信小程序设置http请求的步骤详几款开源的中文分词系统十进制负数转换为二进制、八进制从console.log说起(console.log详url 长度有限制吗?git 撤销操作、删除文件和恢复文git 教程之工作流程详解2018年github账户注册图文教程(github从注matlab 生成.bmp格式的文件对web开发人员有用的8个网站小结算法系列15天速成 第八天 线性表【下】zend studio 快捷键收集变量、函数、类的命名规则在vscode中如何配置python开发环境高性能web开发 web性能测试工具推荐php和asp利用shell.application来执行程序
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved