- 浏览: 297992 次
文章分类
最新评论
-
feargod:
...
ActivityGroup的子activity响应back事件的顺序问题 -
hoarhoar:
谢谢你,终于解决了,我真是受够了,总是45秒钟,真是疯了。
youku 的广告必须要屏蔽 -
lilai:
...
youku 的广告必须要屏蔽 -
aijuans2:
...
youku 的广告必须要屏蔽 -
weiwo1978:
说的非常好,mark
SELECT语句执行的顺序
初始设置
对于本文中的示例,我们使用 Cloudera Hadoop 发行版。Cloudera 提供对各种 Linux 发行版的支持,所以很适合初学者。(本文假设您的系统上已经安装了 Java(至少是 1.6 版)和 cURL。)
因为我运行 Ubuntu(Intrepid 版),所以使用 apt 实用程序获取 Hadoop 发行版。这个过程非常简单,我可以获取二进制包,而不需要下载并构建源代码。首先,告诉 apt Cloudera 站点的信息。然后,在 /etc/apt/sources.list.d/cloudera.list 中创建一个新文件并添加以下文本:
deb http://archive.cloudera.com/debian intrepid-cdh3 contrib
deb-src http://archive.cloudera.com/debian intrepid-cdh3 contrib |
如果您运行 Jaunty 或其他版本,只需把 intrepid 替换为您的版本名(当前支持 Hardy、Intrepid、Jaunty、Karmic 和 Lenny)。
接下来,从 Cloudera 获取 apt-key 以检查下载的包:
$ curl -s http://archive.cloudera.com/debian/archive.key | \
sudo apt-key add - sudo apt-get update |
然后,安装采用伪分布式配置的 Hadoop (所有 Hadoop 守护进程在同一个主机上运行):
$ sudo apt-get install Hadoop -0.20-conf-pseudo $ |
注意,这个配置大约 23MB(不包括 apt 可能下载的其他包)。这个配置非常适合体验 Hadoop 以及了解它的元素和界面。
最后,我设置了不需要密码的 SSH。如果打算使用 ssh localhost 并请求密码,就需要执行以下步骤。我假设这是专用的 Hadoop 机器,因为这个步骤对安全性有影响(见清单 1)。
清单 1. 设置不需要密码的 SSH
$ sudo su - # ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa # cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys |
最后,需要确保主机上有供 datanode使用的足够存储空间(缓存)。存储空间不足会导致系统表现异常(比如出现无法把数据复制到节点的错误)。
启动 Hadoop
现在可以启动 Hadoop 了,这实际上要启动每个 Hadoop 守护进程。但是,首先使用 Hadoop 命令对Hadoop File System (HDFS) 进行格式化。Hadoop 命令有许多用途,稍后讨论其中一部分。
首先,请求 namenode 对 DFS 文件系统进行格式化。在安装过程中完成了这个步骤,但是了解是否需要生成干净的文件系统是有用的。
# Hadoop -0.20 namenode -format |
在确认请求之后,文件系统进行格式化并返回一些信息。接下来,启动 Hadoop 守护进程。Hadoop 在这个伪分布式配置中启动 5 个守护进程:namenode、secondarynamenode、datanode、jobtracker 和 tasktracker。在启动每个守护进程时,会看到一些相关信息(指出存储日志的位置)。每个守护进程都在后台运行。图 1 说明完成启动之后伪分布式配置的架构。
"Cache 2
"Control 1
"Examples 1
"Has 7
"Inter-CPU 1
"LOAD 1
"LOCK" 1
"Locking 1
"Locks 1
"MMIO 1
"Pending 5
#
还可以使用 Hadoop -0.20 实用程序从 HDFS 中提取文件(见清单 8)。只需使用 get 实用程序(它与前面在 HDFS 中写文件所用的 put 相似)。对于 get 操作,指定 HDFS 中要提取的文件(来自 output 子目录)和在本地文件系统中要写的文件 (output.txt)。
清单 8. 从 HDFS 提取输出
# Hadoop -0.20 fs -get output/part-r-00000 output.txt # cat output.txt | head -5 != 1 "Atomic 2 "Cache 2 "Control 1 "Examples 1 # |
我们再来看一个示例,它使用相同的 JAR,但是目的不同(在这里要试验并行的 grep)。对于这个测试,仍然使用现有的输入文件,但是要删除 output 子目录以便在测试时重新创建它:
# Hadoop -0.20 fs -rmr output Deleted hdfs://localhost/user/root/output |
接下来,请求用于执行 grep 的 MapReduce 作业。在这种情况下,并行执行 grep(映射),然后组合 grep 的结果(缩减)。清单 9 给出这个使用模型的输出(为了简短,这里删除了一些输出)。注意,这里的命令请求是一个 grep,它从 input 子目录获取输入,把结果放在 output 子目录中。最后一个参数是要搜索的字符串(在这里是 'kernel')。
清单 9. 执行单词搜索计数的 MapReduce 作业 (grep)
# Hadoop -0.20 jar /usr/lib/Hadoop / Hadoop -0.20.2+228-examples.jar \ grep input output 'kernel' 10/04/30 09:22:29 INFO mapred.FileInputFormat: Total input paths to process : 2 10/04/30 09:22:30 INFO mapred.JobClient: Running job: job_201004291628_0010 10/04/30 09:22:31 INFO mapred.JobClient: map 0% reduce 0% 10/04/30 09:22:42 INFO mapred.JobClient: map 66% reduce 0% 10/04/30 09:22:45 INFO mapred.JobClient: map 100% reduce 0% 10/04/30 09:22:54 INFO mapred.JobClient: map 100% reduce 100% 10/04/30 09:22:56 INFO mapred.JobClient: Job complete: job_201004291628_0010 10/04/30 09:22:56 INFO mapred.JobClient: Counters: 18 10/04/30 09:22:56 INFO mapred.JobClient: Job Counters 10/04/30 09:22:56 INFO mapred.JobClient: Launched reduce tasks=1 10/04/30 09:22:56 INFO mapred.JobClient: Launched map tasks=3 10/04/30 09:22:56 INFO mapred.JobClient: Data-local map tasks=3 10/04/30 09:22:56 INFO mapred.JobClient: FileSystemCounters 10/04/30 09:22:56 INFO mapred.JobClient: FILE_BYTES_READ=57 10/04/30 09:22:56 INFO mapred.JobClient: HDFS_BYTES_READ=113144 10/04/30 09:22:56 INFO mapred.JobClient: FILE_BYTES_WRITTEN=222 10/04/30 09:22:56 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=109 ... 10/04/30 09:23:14 INFO mapred.JobClient: Map output bytes=15 10/04/30 09:23:14 INFO mapred.JobClient: Map input bytes=23 10/04/30 09:23:14 INFO mapred.JobClient: Combine input records=0 10/04/30 09:23:14 INFO mapred.JobClient: Map output records=1 10/04/30 09:23:14 INFO mapred.JobClient: Reduce input records=1 # |
作业完成之后,检查 output 目录,找到结果文件,然后通过执行文件系统 cat 操作查看其内容(见清单 10)。
清单 10. 检查 MapReduce 作业的输出
# Hadoop -0.20 fs -ls output Found 2 items drwxr-xr-x - root supergroup 0 2010-04-30 09:22 /user/root/output/_logs -rw-r--r-- 1 root supergroup 10 2010-04-30 09:23 /user/root/output/part-00000 # Hadoop -0.20 fs -cat output/part-00000 17 kernel # |
基于 Web 的界面
您已经知道如何检查 HDFS 了,但是如果要寻找 Hadoop 的操作的相关信息,会发现 Web 界面很有用。位于 Hadoop 集群最上层的是 namenode,它管理 HDFS。可以通过 http://localhost:50070 查看文件系统的高层信息(比如可用空间、已用空间和可用的 datanode)以及正在运行的作业。可以通过 http://localhost:50030 深入检查 jobtracker(作业状态)。注意,在这两种情况下都引用 localhost,因为所有守护进程都在同一个主机上运行。
更进一步
本文讨论了一个简单的(伪分布式)Hadoop 集群的安装和初始配置。在这里,我选用 Cloudera 的Hadoop 发行版是因为它简化了 Hadoop 的安装和初始配置。可以在 apache.org 找到许多 Hadoop 发行版(包括源代码)。更多信息见 参考资料。
但是,如果缺少硬件资源,无法扩展 Hadoop 集群以满足自己的需要,那么应该怎么办?由于 Hadoop 非常流行,可以很方便地在云计算基础设施中使用预构建的 Hadoop VM 和租用的服务器运行它。Amazon 在 Amazon Elastic Compute Cloud (Amazon EC2) 中提供 Amazon Machine Image (AMI) 和计算资源。另外,Microsoft 最近宣布将在它的 Windows® Azure Services Platform 中支持 Hadoop 。
更多信息请查看 java进阶网 http://www.javady.com
发表评论
-
hadoop FSNamesystem中的recentInvalidateSets
2012-04-20 20:28 1019今天早就回来了,然后偷懒了2个小时,现在才开始分析代码, ... -
hadoop namenode后台jetty web
2012-04-20 20:28 1700现在开始分析namenode启动时开启的第2类线程, ... -
hadoop namenode format做了什么?
2012-04-18 20:58 1165一看到format就和磁盘格式化联想到一起,然后这个fo ... -
hadoop分布式配置(服务器系统为centos5,配置时使用的用户是root)
2012-04-14 21:19 1069目前我们使 ... -
hadoop系列A:多文件输出
2012-04-14 21:18 1498package org.myorg; import ... -
Hadoop 安装问题和解决方案
2012-04-10 13:21 1267前几天在Window和Linux主机安装了Hadoop, ... -
运行Hadoop遇到的问题
2012-04-10 13:19 1619运行Hadoop遇到的问题 1, 伪分布式模式 ... -
运行Hadoop遇到的问题
2012-04-10 13:19 0运行Hadoop遇到的问题 1, 伪分布式模式 ... -
hadoop使用过程中的一些小技巧
2012-04-09 10:16 1175hadoop使用过程中的一些小技巧 ------------- ... -
运行hadoop时的一些技巧
2012-04-09 10:14 771//用来给key分区的,需要实现Partitioner接口 ... -
hive相关操作文档收集
2012-04-08 10:51 0How to load data into Hive ... -
hive sql doc
2012-04-08 10:51 0记录2个常用的hive sql语法查询地 官方 ht ... -
hive Required table missing : "`DBS`" in Catalog "" Schema "
2012-04-08 10:51 0最近需要提取一些数据,故开始使用hive,本机搭建了一个hiv ... -
HDFS数据兼容拷贝
2012-04-08 10:50 0系统中使用了hadoop 19.2 20.2 2个版本,为啥有 ... -
hdfs 简单的api 读写文件
2012-04-08 10:50 0Java代码 import ... -
hbase之htable线程安全性
2012-04-22 15:22 1198在单线程环境下使用hbase的htable是没有问题,但是突然 ... -
hbase之scan的rowkey问题
2012-04-22 15:22 1780最近使用到hbase做存储,发现使用scan的时候,返回的ro ... -
datanode启动开启了那些任务线程
2012-04-22 15:22 1095今天开始分析datanode,首先看看datanode开启了哪 ... -
namenode这个类的主要功能
2012-04-22 15:22 1552今天来总看下namenode这个类的主要功能 首先看下这个类 ... -
hadoop监控
2012-04-22 15:21 1601通过从hadoop的 hadoop-metrics文件中就可以 ...
相关推荐
三、分布式数据处理入门 1. 数据上传:使用hadoop fs -put命令将本地文件系统中的数据上传至HDFS。 2. 文件操作:学习使用Hadoop提供的命令行工具进行文件的读取、删除和移动操作。 3. WordCount示例:Hadoop的典型...
Hadoop 分布式数据处理入门 Hadoop 是一个开源的分布式数据处理框架,由 Apache 开发和维护。它允许用户在大规模数据集上进行并行处理,从而提高数据处理的效率和速度。Hadoop 的核心组件包括 Hadoop Distributed ...
首先,Hadoop分布式环境的构建通常涉及多台机器,这在描述中提到了node01至node04。为了实现这些节点间的无密码登录,我们需要在每个节点上生成SSH密钥对,然后将公钥分发到其他节点的`~/.ssh/authorized_keys`文件...
### 使用Hadoop进行分布式数据处理第1部分:入门 #### Hadoop框架概述 Hadoop是一个开源框架,专门设计用于在大规模集群中处理和存储大量数据。该框架的主要组成部分包括Hadoop分布式文件系统(HDFS)和MapReduce...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它的核心设计思想是分布式存储和计算,能够高效地处理海量数据。本篇将详细介绍如何在本地计算机上搭建Hadoop的伪分布式集群环境,这非常...
在IT领域,大数据处理是一个重要的方向,而Hadoop作为开源的大数据处理框架,因其高效、可靠的分布式计算能力而被广泛采用。本篇文章将详细介绍如何在Windows操作系统环境下,对Hadoop进行编译并设置一个单机上的伪...
Greenplum和Hadoop是两个重要的大数据处理工具,它们分别在不同的场景下发挥着关键作用。本篇文章将重点介绍Greenplum的架构及其在与Hadoop结合时如何构建高效的数据解决方案。 **一、Greenplum概述** Greenplum是...
《Hadoop大数据处理实战》是康开锋撰写的一本深入探讨Hadoop技术的书籍,旨在帮助读者理解并掌握Hadoop在大数据处理中的实际应用。这本书的内容涵盖了Hadoop生态系统的核心组件,以及如何利用这些组件解决实际问题。...
### 分布式计算开源框架Hadoop入门实践 #### 一、Hadoop简介 Hadoop是一个由Apache基金会维护的开源分布式计算框架,它基于Java语言编写,主要由两大核心组件构成:**HDFS(Hadoop Distributed File System)** 和...
在最近的IT领域,云计算和大数据处理成为了发展的重点,而Hadoop作为分布式大数据处理框架,在这个过程中扮演着举足轻重的角色。Hadoop由Apache软件基金会所开发,是一个能够对大量数据进行分布式处理的软件框架。 ...
**Hadoop** 是一个由 **Apache** 开源基金会维护的分布式计算框架,它为大规模数据处理提供了一种高效且可靠的方法。Hadoop 最初的设计灵感来源于 Google 发表的两篇论文:**GFS(Google File System)** 和 **...
Hadoop分布式安装配置 Hadoop是当前大数据处理的主流技术之一,由于其开源、可扩展、灵活的特点,广泛应用于大数据处理、数据分析、机器学习等领域。为帮助读者更好地理解Hadoop的安装配置,本文将从大数据概念、...
而在Hadoop中,计算任务靠近数据存储进行,减少了网络传输开销,特别适合数据密集型和大规模数据处理。然而,这并不意味着Hadoop适用于所有场景,对于需要频繁更新和小规模的数据处理,Hadoop可能不是最佳选择。 ...
3. Hadoop操作的初体验:初学者可以通过一系列操作来获得对Hadoop基本使用方法的体验,比如使用DFS命令行工具进行文件上传、查看文件列表、下载文件等操作,从而对Hadoop的数据处理流程有直观的认识。 4. Hadoop...
分布式计算开源框架 Hadoop 入门实践 ...2. 海量数据处理:Hadoop 可以处理海量数据,提供高效的数据处理能力。 Hadoop 是一个功能强大且灵活的分布式计算框架,广泛应用于大规模数据集的处理和分析。