在不到1G内存机器上快速搭建一个hadoop环境
来源:互联网 发布:网络运营总监简历 编辑:程序博客网 时间:2024/05/18 01:43
摘要:我们在很多情况下只需要一个配置极简但具备所有功能的hadoop来做一些探索或者调查性等工作,虽然这时候的hadoop不具有生产环境下的强大配置和工业级的可靠性和稳定性但是它的可工作和可运行性已经足够。本文目的是在一个只有1核,cpu频率不到 1.8G,内存1G的机器上快速搭建一个hadoop伪分布式集群。
关键词:极简,hadoop
导言:我想用最新版的hadoop(写本文时是2.5.1),在一个极其简陋的Linux机器(CPU 1+G, core 1, memory 1G)上跑hdfs, MapReduce和YARN,可以吗?答案是肯定的。只要我们把Hadoop配成伪分布式,各个daemon进程(对YARN而言是namenode[nn],secondary namenode[snn], datanode[dn],resource manager[rm], node manager[nm])需要的内存配置成满足我们需要的极低值,就可以达成目的。虽然不是真正的分布式,但是它与真实的hadoop本质相象性可达到99.99%。比如,我想知道在一个命令行Java应用程序运行Jar或者Java class (不用hadoop本身的hadoop jar XXX.jar ....)来把自己写的wordcount MapReduce程序提交到集群并跑起来需要哪些jar和配置文件或属性。 再比如,我们有时在开发时只需要一个可运行hadoop环境验证代码正确性,然后再提交给QA去做正式的测试,那么这种快速极简的hadoop就非常有用。
环境:
机器与操作系统:1台 Linux机器,内存1G,
Java :Oracle JDK1.6.0_45 ,安装位置: /usr/java/jdk1.6.0_45
Hadoop: 版本 2.5.1,示例安装位置: ~/hadoop/hadoop-2.5.1
本示例使用root安装,请根据你的环境做相应修改
攻略与步骤:
1.安装Java,比如jdk1.6.0_45
2.下载Apache Hadoop2.5.1并解压 (比如解压到 ~/hadoop/hadoop-2.5.1)
3.建passwordless的ssh
3.1 # ssh-keygen (一路回车即可)
3.2 # cat id_rsa.pub >> authorized_keys
3.3 # chmod 700 ~/.ssh
3.4 # chmod 600 ~/.ssh/authorized_keys
4.修改Hadoop配置文件(在目录~/hadoop/hadoop-2.5.1/etc/hadoop)
4.1 core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos6.localdomain:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hadoop-2.5.1/temp</value>
</property>
4.2 hdfs-site.xml:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
4.3 mapred-site.xml:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4.4 yarn-site.xml:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>centos6.localdomain</value>
</property>
4.5 hadoop-env.sh
把 export JAVA_HOME那一行改成你的java安装目录,比如:
export JAVA_HOME=/usr/java/jdk1.6.0_45
到export HADOOP_HEAPSIZE= 和 export HADOOP_NAMENODE_INIT_HEAPSIZE= 改成128,比如
export HADOOP_HEAPSIZE=128
export HADOOP_NAMENODE_INIT_HEAPSIZE="128"
4.6 yarn-env.sh
把 export JAVA_HOME改成和4.5一样。
把 JAVA_HEAP_MAX改成-Xmx128m,比如:JAVA_HEAP_MAX=-Xmx128m
5.执行namnode format
在~/hadoop/2.5.1/bin 下执行 #./hadoop namenode -format
6.启动hadoop
在~/hadoop/2.5.1/sbin 下执行 #./start-all.sh
可以看到 如图所示,所有hadoop后台进程已经起来
7. 查看下内存,是否达到我们的期望:
内存只占用了569 M,不错~~
8.运行下hadoop自带的wordcount程序看看:
先弄个小文件,上传到hdfs比如/user/root/wordcount/input/,#hadoop fs -put ~/hadoop/2.5.1/sbin/start-all.sh /user/root/wordcount/input
运行wordcount:
运行成功,更不错~~
9. 在web界面查看hdfs和RM
http://host:50070/:
http://host:8088/:
在RM上看到wordcount运行成功。。。目的达成! :)
说明:
1. Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 一般不影响运行除非你用到nativeIO,比如解压缩。
2. 如果没有linux机器只有windows ,可以考虑安装一个Oracle VirtualBox在windows上,在virtualBox上建个虚拟机,也可以跑得很欢。其网络配置可参考本人另一博客:
用VirtualBox 对Linux虚机进行网络配置 用VirtualBox 对Linux虚机进行网络配置
- 在不到1G内存机器上快速搭建一个hadoop环境
- 快速搭建hadoop环境
- hadoop环境快速搭建
- 快速在centos上搭建LAMP环境
- 【hadoop】hadoop环境快速搭建
- 快速搭建 Hadoop 分布式环境
- 在linux上搭建hadoop环境所遇到的问题
- linux上搭建hadoop环境(hadoop 2.7.1)总结
- Ubuntu上搭建Hadoop环境
- Ubuntu上搭建Hadoop环境
- 在阿里云服务器上快速搭建JavaWeb环境JDKtomcatmysql
- 在windows上快速搭建php开发环境
- 在一个服务器上搭建好php环境,在服务器上可以访问,其他机器可以访问服务器但网页无法访问
- 利用 Chocolatey 快速在 Windows 下搭建一个开发环境
- 利用 Chocolatey 快速在 Windows 下搭建一个开发环境
- 在debian4上搭建一个lighttpd+fastcgi+php5+mysql环境
- 快速搭建hadoop弱计算环境
- 快速搭建docker spark+hadoop计算环境
- 快速排序之递归与非递归写法
- 软件工程文档
- apache AH01630: client denied by server configuration错误解决方法
- 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(三)
- 云计算核心价值三大看点全解析
- 在不到1G内存机器上快速搭建一个hadoop环境
- 用云计算,为地震逃生争取三十秒
- Spring MVC那些事之JdbcTemplate的使用总结
- 设计一个数据结构,其中包含两个函数,1.插入一个数字,2.获得中数。并估计时间复杂度。
- java.net.BindException: Cannot assign requested address:port
- 第十二周项目三--递归方法求解
- 云计算如何改变数据保护
- Android ListView 去除边缘阴影、选中色、拖动背景色等
- AWK使用方法总结