- 浏览: 1791600 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
奔跑的小牛:
例子都打不开
如何使用JVisualVM进行性能分析 -
蜗牛coder:
好东西[color=blue][/color]
Lucene学习:全文检索的基本原理 -
lovesunweina:
不在haoop中是在linux系统中,映射IP的时候,不能使用 ...
java.io.IOException: Incomplete HDFS URI, no host -
evening_xxxy:
挺好的, 谢谢分享
如何利用 JConsole观察分析Java程序的运行,进行排错调优 -
di1984HIT:
学习了~~~
ant使用ssh和linux交互 如:上传文件
阅读此篇文章之前,请阅读上一篇:http://jiajun.iteye.com/blog/622475
Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写
分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式
运行环境。
一、前言
前面己经详细介绍了如何安装 Hadoop,如何在单机及伪分布式环境 (在一台单机中用多进程模拟) 运行基于Hadoop 的并行程序。本文将介绍真实的 Hadoop 分布式运行环境, 如何在多台普通的计算机上部署分布式运行环境。
二、准备硬件设备、操作系统、网络环境
准备三台机器,机器名分别为 home0.hadoop、home1.hadoop、home2.hadoop,均安装 CentOS5 (其它 Linux 发行版亦可), 确保各台机器之间网络畅通,机器名与 IP 地址之间解析正确,从任一台机器都可以 ping 通其它机器的机器名。如有机器名的解析问题,可通过设置 /etc/hosts 文件解决,当然更好的解决方法是在你的网络中配置 DNS 服务器。此外,需要在三台机器上创建相同的用户帐号,如:yourusername。
我们将使用 home0.hadoop 作为分布式文件系统 HDFS 的 Name Node 及 MapReduce 运行过程中的 Job Tracker 结点,我们将 home0.hadoop 称之为主结点。其它两台机器 (home1.hadoop, home2.hadoop) 作为 HDFS 的 Data Node 以及 MapReduce 运行过程中的 Task Tracker 结点,这些结点可统称为从结点。如你需要部署更多的机器,也是很容易的,将新加入的机器作为 Data Node 以及 Task Tracker 结点即可,其配置过程在您看完本文后就会了。
三、SSH配置RSA认证
在 Hadoop 分布式环境中,Name Node (主节点) 需要通过 SSH 来启动和停止 Data Node (从结点)上的各类进程
。我们需要保证环境中的各台机器均可以通过 SSH 登录访问,并且 Name Node 用 SSH 登录 Data Node 时,不需要
输入密码,这样 Name Node 才能在后台自如地控制其它结点。可以将各台机器上的 SSH 配置为使用无密码公钥认证方式来实现,在此我就不再赘述了,上篇已经写过。
四、安装部署 Hadoop
1、我们首先在主控结点 home0.hadoop 上安装和配置好 Hadoop,安装过程上一篇已经说过,请查看。
2、配置 conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml
2.1、conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://home0.hadoop:9000</value>
</property>
</configuration>
2.2、conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table. If this is a comma-delimited list of directories
then the name table is replicated in all of the directories,
for redundancy.
</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1</value>
<description>
Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited list of directories,
then data will be stored in all named directories, typically on different
devices. Directories that do not exist are ignored.
</description>
</property>
</configuration>
2.3、conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>home0.hadoop:9001</value>
</property>
</configuration>
3、解释:
参数 fs.default.name 指定 Name Node 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9000 端口,参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号,此处我们将其设定为 home0.hadoop 及 9001
端口。 参数 dfs.name.dir 指定 Name Node 相关数据在本地文件系统上的存放位置, 此处我们将其设定为/home/yourusername/hadoopfs/name_0,/home/yourusername/hadoopfs/name_1 ,参数 dfs.data.dir 指定 Data Node 相关数据在本地文件系统上的存放位置,此处我们将其设定为 /home/yourusername/hadoopfs/data_0,/home/yourusername/hadoopfs/data_1 。注意, Hadoop 会自动创建这些目录,无需事先创建。如果你有多个磁盘设备,以逗号分开配置进去,会大大提高IO效率。
4、设定主从节点
修改 conf/masters 文件,将其中的 localhost 改为 home0.hadoop ,修改 conf/slaves 文件。 删掉其中的localhost, 将我们的另两台机器 home1.hadoop、home2.hadoop 加入, 注意每个机器一行。masters里面的是主机节点,slaves里面是从机节点。
5、同样的配置拷贝到其他两台机器上去
$ scp -r /home/yourusername/hadoop-0.20.2 home1.hadoop:/home/yourusername/hadoop-0.20.2
$ scp -r /home/yourusername/hadoop-0.20.2 home2.hadoop:/home/yourusername/hadoop-0.20.2
注意:可能您每台机器的JAVA安装位置不一样,记得修改conf/hadoop-env.sh,设置export JAVA_HOME=正确路径。
6、在 home0.hadoop 上格式化一个新的分布式文件系统
$ cd hadoop-0.20.2
$ bin/hadoop namenode -format
7、启动hadoop进程
$ bin/start-all.sh
$ bin/start-all.sh
starting namenode, logging to ...
home1.hadoop: starting datanode, logging to ...
home2.hadoop: starting datanode, logging to ...
home0.hadoop: starting secondarynamenode, logging to ...
starting jobtracker, logging to ...
home1.hadoop: starting tasktracker, logging to ...
home2.hadoop: starting tasktracker, logging to ...
启动完成之后,从日志中可以看到,也可以运行 ps -ef 命令可以看到 home0.hadoop 上启动了 3 个新的 java进程 (namenode, secondary namenode, jobtracker), 同时,我们可以到 home1.hadoop、home2.hadoop 两台机器上用 ps –ef 查看,这两台机器上应该已经自动启动了 2 个新的 java 进程 (datanode, tasktracker)
五、操作HDFS试试
$ bin/hadoop fs -lsr //查看分布式系统中是有哪些文件存在
$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/hadoop-0.20.2-tools.jar a.jar //从本地拷贝文件
$ bin/hadoop fs -put /home/yourusername/hadoop-0.20.2/ . //从本地文件系统拷贝文件夹到分布式文件系统
$ bin/hadoop fs -rmr /home/yourusername/hadoop-0.20.2/ . //删除分布式文件系统的所有文件
六、可能你不会很顺利
我的问题呢,就是碰到 could only be replicated to 0 nodes, instead of 1,因为防火墙问题,在这里解决的:http://jiajun.iteye.com/blog/624449。
七、多熟悉熟悉
1、http://home0.hadoop:50070
看看分布式文件系统概况日志
Cluster Summary
15 files and directories, 3 blocks = 18 total. Heap Size is 10.73 MB / 966.69 MB (1%)
Configured Capacity : 56.26 GB
DFS Used : 524 KB
Non DFS Used : 10.86 GB
DFS Remaining : 45.4 GB
DFS Used% : 0 %
DFS Remaining% : 80.7 %
Live Nodes : 2
Dead Nodes : 0
2、http://192.168.0.129:50030
看看工作情况
Cluster Summary (Heap Size is 7.5 MB/966.69 MB)
Maps Reduces Total Submissions Nodes Map Task Capacity Reduce Task Capacity Avg.
Tasks/Node Blacklisted Nodes
0 0 0 2 4 4 4.00 0
3、熟悉hadoop的命令
八、环境搭建完成,到这里你可以玩玩分布式文件系统,下一步我会介绍如何分布式编程
评论
不用scp,用什么
发表评论
-
HBase配置LZO压缩
2011-07-10 22:40 6198系统: gentoo HDFS: hadoop:hado ... -
HBase RegionServer 退出 ( ZooKeeper session expired)
2011-04-23 08:32 9103RegionServer 由于 ZooKeeper sessi ... -
HBase迁移数据方案1(两个集群不能通信)
2011-03-30 18:23 3884前一篇文章里面介绍了 两个可以直接通信的集群之间很容易拷贝数据 ... -
HBase如何迁移数据
2011-03-10 13:42 6525HBase如何迁移数据?这里有个方案:http://blog. ... -
HBase如何存取多个版本的值
2011-03-07 16:11 27253HBase如何存取多个版本 ... -
HBase简介(很好的梳理资料)
2011-01-30 10:18 130761一、 简介 history s ... -
Google_三大论文中文版(Bigtable、 GFS、 Google MapReduce)
2010-11-28 16:30 22201做个中文版下载源: http://dl.iteye.c ... -
hadoop主节点(NameNode)备份策略以及恢复方法
2010-11-11 19:35 27832一、dits和fsimage 首先要提到 ... -
HRegionServer: ZooKeeper session expired
2010-11-01 14:21 11502Hbase不稳定,分析日志 ... -
Bad connect ack with firstBadLink
2010-10-25 13:20 8334hbase报的错误,经过分析是Hadoop不能写入数据了。可恶 ... -
hbase0.20.支持多个主节点容灾切换功能(只激活当前某个节点,其他节点备份)
2010-09-09 14:53 2880http://wiki.apache.org/hadoop/H ... -
java.io.IOException: Incomplete HDFS URI, no host
2010-09-07 08:31 16235ERROR org.apache.hadoop.hdfs.se ... -
升级hadoop0.20.2到hadoop-0.21.0
2010-09-05 11:52 7761按照新的文档来 更新配置: http://hadoop.apa ... -
hadoop-hdfs启动又自动退出的问题
2010-05-20 10:45 6166hadoop-hdfs启动又自动退出的问题,折腾了我1天时间啊 ... -
在windows平台下Eclipse调试Hadoop/Nutch
2010-04-29 14:34 3306即让碰到这个问题说明 准备工作都做好了,软件包,环境什么的这里 ... -
Hadoop运行mapreduce实例时,抛出错误 All datanodes xxx.xxx.xxx.xxx:xxx are bad. Aborting…
2010-04-29 14:26 6444Hadoop运行mapreduce实例时,抛出错误 All d ... -
cygwin 添加用户
2010-04-13 17:48 7426http://hi.baidu.com/skychen1900 ... -
nutch总体输入输出流程图解析
2010-04-12 16:58 2477附件里面有word文档,请下 ... -
解析hadoop框架下的Map-Reduce job的输出格式的实现
2010-04-10 18:34 10147Hadoop 其实并非一个单纯用于存储的分布式文 ... -
nutch分布式搭建
2010-04-06 17:54 6833如何在eclipse中跑nutch :http://jiaj ...
相关推荐
2. 安装与配置:在本地或云环境搭建Hadoop集群,实践配置和管理。 3. HDFS操作:学习上传、下载、查看和操作HDFS文件。 4. MapReduce编程:编写MapReduce程序,理解和优化执行性能。 5. 进阶主题:探索YARN、HBase、...
根据提供的文件信息,以下是有关Hadoop入门进阶课程中Hive介绍和安装部署的知识点: 1. Hive介绍: - Hive是Facebook开发的数据仓库工具,运行于Hadoop集群之上。 - 提供类SQL的HQL(Hive Query Language)查询...
它设计用来跨多台机器存储大量数据并提供高吞吐量的数据访问。 HDFS具有高容错性,高吞吐量,能够进行线性扩展,这使得它非常适合存储和处理大规模数据集。在HDFS中,文件被分割成一系列的block,然后这些block被...
在开始Hadoop分布式计算之前,我们需要先搭建Hadoop环境。这通常包括以下步骤: 1. 安装Java:Hadoop依赖Java运行环境,确保系统已安装JDK 8或更高版本。 2. 下载Hadoop:从Apache官方网站获取最新稳定版的Hadoop...
Hadoop是一个分布式系统基础架构,由Apache基金会开发,它实现了MapReduce编程模型,用于大规模数据集的存储与计算。MapReduce是一种编程模型,用于处理和生成大数据集,它将任务分成两个阶段:Map阶段和Reduce阶段...
HBase是一个基于Hadoop的分布式、面向列的存储系统。它能够提供高可靠性和高性能的数据存储服务,并且具备良好的可扩展性。HBase的设计灵感来源于Google的Bigtable项目,并且采用了类似的架构和技术。下面是HBase的...
【描述】:该压缩包文件包含了一份详细的关于Hadoop集群搭建的教程,总计10页,可能是PDF格式的文档,提供了从基础到进阶的Hadoop集群配置和管理指导。 【标签】:“Hadoop集群搭建共10页.p” - 这个标签可能是个误...
基于Hadoop的常规案例,在Windows和Linux上搭建伪分布式hadoop集群 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到...
总的来说,这篇论文旨在为读者提供一个全面的Hadoop集群搭建指南,使读者能够从理论到实践,从基础到进阶,逐步掌握在Linux环境下构建和优化Hadoop集群的技能,以应对大数据时代的挑战。通过阅读和实践,读者将能够...
这个资源包包含了丰富的Hadoop学习资料,可以帮助初学者和进阶者深入了解和掌握Hadoop的相关知识。 首先,我们来看《EasyHadoop实战手册》。这本书籍通常会提供Hadoop的实践操作指导,涵盖安装、配置、运行Hadoop...
基于Hadoop、Spark、FLUME、HIVE等大数据组件搭建的一个分布式集群环境下的电影推荐及日志分析平台文档+源码+优秀项目+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95...
Hadoop是一个开源的分布式计算框架,由Apache软件基金会开发,主要用于处理和存储大量数据。这个压缩包可能是针对初学者和有经验的开发者,提供全面的Hadoop知识资源。 描述中的“hadoop技术资源合集”进一步确认了...
这个版本比较干净,整个demo在Hadoop,和Hbase环境搭建好了,可以启动起来。 --- #### 技术选型 > 1.Hadoop > 2.Hbase > 3.SpringBoot > ...... --- #### 系统实现的功能 > 1.用户登录与注册 > 2.用户网盘...
基于hadoop的C端云盘项目,前端使用Javaswing搭建+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到...
通过学习,学生将能够搭建Hadoop完全分布式集群,熟悉HDFS文件系统,以及MapReduce编程模型。这为他们未来从事大数据分析和挖掘工作,以及进一步学习相关课程奠定了坚实的基础。 二、教学内容与学时安排 1. Hadoop...
《Hadoop实战开发》是针对大数据处理领域的重要书籍,尤其对于初学者和进阶者来说,它是理解并掌握Hadoop生态系统的关键资源。本篇将基于书名和描述,结合相关标签,深入探讨Hadoop的核心概念、实战应用以及高级编程...