32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境
准备工作
1、准备安装环境:
4台PC,均安装32位Ubuntu12.04操作系统,统一用户名和密码
交换机1台
网线5根,4根分别用于PC与交换机相连,1根网线连接交换机和实验室网口
2、使用ifconfig查看各PC的IP地址,并确保可以相互ping通
pc1 192.168.108.101
pc2 192.168.108.146
pc3 192.168.108.200
pc4 192.168.108.211
3、安装jdk,下载jdk-7u71-linux-i586.tar.gz,拷贝到你想安装的目录,解压
tar -xzvf jdk-7u71-linux-i586.tar.gz
然后sudo vim /etc/profile,配置JAVA_HOME,CLASSPATH,PATH,在尾部添加
JAVA_HOME=/home/xxx/Software/jdk1..0_71
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib
export JAVA_HOME PATH CLASSPATH
使用java -version进行验证,确保版本号为java version "1.7.0_71"
4、配置SSH免登陆
首先各台PC安装SSH,并启动服务,sudo apt-get install openssh-server,一般会默认启动
使用“ssh 用户名@某PC的IP地址”来进行验证
然后在你要选定Master节点(PC1)上生成密钥(私钥+公钥),然后分发公钥到各个Slave节点(PC2,PC3,PC4)
// 若无.ssh目录,则首先mkdir .ssh
cd ~/.ssh
ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
// 使用xxx代表用户名
scp authorized_keys xxx@192.168.108.146:/home/xxx/.ssh/
scp authorized_keys xxx@192.168.108.200:/home/xxx/.ssh/
scp authorized_keys xxx@192.168.108.211:/home/xxx/.ssh/
验证测试,在pc1上“ssh 用户名@某PC的IP地址”,若不用输入密码就能登录成功,则表示配置成功
安装Hadoop2.5.1
1、下载hadoop-2.5.0.tar.gz,解压,然后放到你的一个制定目录即可
cp hadoop-2.5..tar.gz /home/xxx/Software
cd /home/xxx/Software
tar -xzvf hadoop-2.5..tar.gz
2、配置/etc/profile中的环境变量
HADOOP_HOME=/home/xxx/Software/hadoop-2.5.
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_HOME PATH
3、依次配置hadoop-2.5.1/etc/hadoop下的各个配置文件
配置前说明:4台pc中,pc1为master节点,pc2、pc3、pc4为slaves节点
slaves
192.168.108.146
192.168.108.200
192.168.108.211
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xxx/Software/hadoop_dir/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.108.101:9000</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/xxx/Software/hadoop_dir/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>/home/xxx/Software/hadoop_dir/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml,修改为如下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml,需要注意的是datanode上无需配置yarn.nodemanager.aux-services.mapreduce_shuffle.class
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.108.101:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.108.101:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.108.101:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.108.101:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.108.101:8088</value>
</property>
</configuration>
修改hadoop-env.sh和yarn-env.sh中的JAVA_HOME变量为绝对路径
export JAVA_HOME=/home/xxx/Software/jdk1.7.0_71
4、将hadoop-2.5.1文件夹拷贝到各个slaves节点上的相同目录下
hadoop的运行
hadoop namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
启动之后,分别在namenode和datanode上使用jps查看是否正常启动
32位操作系统带来的native library大坑
这里要仔细说下,因为坑爹的32位导致了很多坑,所以在此建议如果要装hadoop2.5.1环境的,建议先把操作系统换位64位的吧
先贴一下在32位操作系统上,用自带的64位native library会有什么问题,下面的这个警告将会伴随你的每一步hadoop操作
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
首先介绍下Hadoop的native library,摘录官网上的两句话如下:
1、Hadoop has native implementations of certain components for reasons of both performance and non-availability of Java implementations. These components are available in a single, dynamically-linked, native library. On the *nix platform it is libhadoop.so.
2、Hadoop native library is written in ANSI C and built using the GNU autotools-chain (autoconf, autoheader, automake, autoscan, libtool). This means it should be straight-forward to build them on any platform with a standards compliant C compiler and the GNU autotools-chain.
第一句告诉我们考虑到性能和java实现的不可用两个原因,才有了native library,其实动态链接的,也就是操作系统相关的,在*nix平台上为libhadoop.so等文件。
第二句告诉了我们,native library是用C实现的,如果你要源码编译的话,你至少得需要这些包autoconf,autoheader,automake,autoscan,libtool。
操作系统分为32位和64位,而hadoop默认提供的native library要么为32位要么为64位,在2.2.0之前版本均为32位,但之后有都为64位的。所以网上一搜hadoop native library错误的,大多数都是如何在64位操作系统上编译hadoop源码,而到了2.5.1,这个就又变成了在32位上编译hadoop源码了,所以操作系统选择要慎重,会省很多事。
所以,既然当初已经选了32位操作系统,所以只能老老实实的编译hadoop2.5.1源码了。。。。。。
Hadoop2.5.1源码编译
1、下载hadoop-2.5.1-src.tar.gz,并解压
2、准备包
首先去hadoop官网上查下如何成为一名贡献者,因为你要贡献代码的话,肯定会把代码checkout下来编译的,所以文档里肯定会有。
在文档http://wiki.apache.org/hadoop/HowToContribute里发现如下一段:
On Linux, you need the tools to create the native libraries: LZO headers,zlib headers, gcc, OpenSSL headers, cmake, protobuf dev tools, and libtool, and the GNU autotools (automake, autoconf, etc).For Debian and Ubuntu:
apt-get -y install maven build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
先执行吧,这些都是必需的,当然还不够。
hadoop使用java写的,ant这个java build工具不能少吧,使用如下代码安装:
apt-get install ant
然后在编译源码的错误输出中,又发现了两个必需的包(坑了我一天的两个包),FindBugs 3.0.0 和 Protobuf 2.5.0。google一搜,去官网下即可,但是FindBugs是在sourceforge上的,没被墙,而Protobuf在code.google上,有可能被墙,所以直接搜protobuf-2.5.0.tar.gz吧,CSDN上下的也行
FindBugs 3.0.0
cd /home/xxx/Software/
tar zxvf findbugs-3.0..tar.gz
// /etc/profile中配置环境变量
export FINDBUGS_HOME=/home/xxx/Software/findbugs-3.0.
export PATH=$FINDBUGS_HOME/bin:$PATH
Protobuf 2.5.0
tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/home/xxx/Software
make && make install
// /etc/profile中配置环境变量
PROTOBUF_HOME=/home/g308/Software/protobuf
export PATH=$PROTOBUF_HOME/bin:$PATH
注意:/home/xxx/Software该目录可自己指定
3、编译
tar zxvf hadoop-2.5.-src.tar.gz
cd hadoop-2.5.-src
mvn package -Pdist,native,docs -DskipTests -Dtar
然后,就坐等1个小时后的一路SUCCESS就可以了
填上native library的坑
用hadoop-2.5.1-src/hadoop-dist/target/hadoop-2.5.1/lib/native下的native library替换掉hadoop安装目录下的/lib/native中的native library。重新启动hadoop,那个烦人的native library warn将永远的消失了。
至此,32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境搭建成功。运行examples中的wordcount测试一下吧
32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境的更多相关文章
- ubuntu14.04搭建Hadoop2.9.0伪分布式环境
本文主要参考 给力星的博文——Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 一些准备工作的基本步骤和步骤具体说明本文不再列出,文章中提到的“见参考”均指以上 ...
- Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境
Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境 下载PCL For windows 软件包 到这个网站下载PCL-All-In-One Installer: ...
- 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境
近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop ...
- CentOS5.4 搭建Hadoop2.5.2伪分布式环境
简介: Hadoop是处理大数据的主要工具,其核心部分是HDFS.MapReduce.为了学习的方便,我在虚拟机上搭建了一个伪分布式环境,来进行开发学习. 一.安装前准备: 1)linux服务器:Vm ...
- ubuntu14.04搭建Hadoop2.9.0集群(分布式)环境
本文进行操作的虚拟机是在伪分布式配置的基础上进行的,具体配置本文不再赘述,请参考本人博文:ubuntu14.04搭建Hadoop2.9.0伪分布式环境 本文主要参考 给力星的博文——Hadoop集群安 ...
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- Hadoop2.5.0伪分布式环境搭建
本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...
- 搭建大数据hadoop完全分布式环境遇到的坑
搭建大数据hadoop完全分布式环境,遇到很多问题,这里记录一部分,以备以后查看. 1.在安装配置完hadoop以后,需要格式化namenode,输入指令:hadoop namenode -forma ...
- 64位Ubuntu14.04搭建ADT开发环境
本来放假是要出去玩的,结果出游计划拖到了周一,今天先来无事看看ubuntu最近发展得怎么样了,顺便把ADT也搭建好,方便以后研究android框架.想想在windows下,ADT直接down下来解压就 ...
随机推荐
- cocos2d-x3.9 默认是 gnustl_static 配置,但是 这个库缺少c++的基础功能... c++_static 功能全面些
最近的升级Cocos2d-x 3.2正式版.iOS不管是什么程序编译问题,使用结果cocos compile -p android编译APK计划.结果悲剧,出现以下错误. Android NDK: I ...
- nginx几个知识点汇总
WHY? 为什么用Nginx而不用LVS? 7点理由足以说明一切:1 .高并发连接: 官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2 - 3 万并发连接数.?2 .内存消耗少: 在 3 万 ...
- 再探Tomcat
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmQAAADyCAIAAABs006cAAAgAElEQVR4nO2d228b1RaH+2/l9RQhQE
- 200. Number of Islands
题目: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is s ...
- Android EditText属性
1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password="true" // 以”.”形式显示文本 ( ...
- 推荐五款优秀的PHP代码重构工具
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮 ...
- Android开发UI之在子线程中更新UI
转自第一行代码-Android Android是不允许在子线程中进行UI操作的.在子线程中去执行耗时操作,然后根据任务的执行结果来更新相应的UI控件,需要用到Android提供的异步消息处理机制. 代 ...
- poj3034Whac-a-Mole(dp)
链接 状态转移好想 不过有坑 大家都犯的错误 我也会犯 很正常 就是锤子可以移到n*n以外 要命的是我只加了5 以为最多不会超过5 WA了N久 才想到 上下两方向都可以到5 所以最多加10 以时 ...
- storm - 基础概念整理
理论 Hadoop的出现虽然为大数据计算提供了一条捷径,但其仍然存在自身难以克服的缺点:实时性不足.Hadoop的一轮计算的启动需要较长时间,因此其满足不了对实时性有较高要求的场景. Storm由此应 ...
- BZOJ2870: 最长道路tree
题解: 子树分治的做法可以戳这里:http://blog.csdn.net/iamzky/article/details/41120733 可是码量... 这里介绍另一种好写又快的方法. 我们还是一颗 ...