一、准备工作
在动手准备实践hadoop之前,最好把Google File System和Map/Reduce的原理搞清楚,否则可能要走很多弯路。
准备机器:一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访,例如:
10.0.0.10 master
10.0.0.11 slave1
10.0.0.12 slave2
保存后,重启网络服务,命令:service network restart
Linux所需软件包括:
- JavaTM1.5.x以上,必须安装,建议选择Sun公司发行的Java版本。
-
ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
ssh的安装以Ubuntu Linux为例:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
免密码ssh设置,保证至少从master可以不用口令登陆所有的slaves:
登陆master,执行命令
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将生成的id_dsa.pub拷贝到所有slaves机器上相同路径下,例如:
$ scp ~/.ssh/id_dsa.pub root@slave1:/root/.ssh/master_dsa.pub
注意,此处重命名了一下。
登陆到slaves的机器上执行命令:
$ cat /root/.ssh/master_rsa.pub >>/root/.ssh/authorized_keys
现在再尝试通过ssh从master登录到slaves,应该不需要密码了
$ ssh slave1
如果还有问题,可以参考“理解 RSA/DSA 认证”:
http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html
二、hadoop配置
1.安装
下载hadoop发行版,地址:http://apache.freelamp.com/hadoop/core/stable/
安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。并且安装路径要一致,如果我们用HADOOP_HOME指代安装的根路径,通常,集群里的所有机器的HADOOP_HOME路径相同。
通常,集群里的一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。
下载安装包后,直接解压安装即可:
$ tar -zxvf hadoop-0.20.2.tar.gz
$ cd hadoop-0.20.2
注:如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把配置好的软件即hadoop-0.20.2整个文件夹拷贝到其他机器的相同位置即可。
2.配置
编辑conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。
配置conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9100</value>
</property>
</configuration>
fs.default.name是NameNode的URI。hdfs://主机名:端口/
配置conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hadoopfs/name1,/opt/hadoop/hadoopfs/name2</value>
<description> </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hadoopfs/data1,/opt/hadoop/hadoopfs/data2</value>
<description> </description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。
配置conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9200</value>
</property>
</configuration>
mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。
masters:
master
slaves:
slave1
slave2
配置结束,把配置好的hadoop-0.20.2文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh
$ scp -r /opt/hadoop/hadoop-0.20.2 root@slave1:/opt/hadoop
三、hadoop启动
先格式化一个新的分布式文件系统
$ cd hadoop-0.20.2
$ bin/hadoop namenode -format
查看输出保证分布式文件系统格式化成功
在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。
$ bin/start-all.sh
从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。
$ bin/stop-all.sh
Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).
浏览NameNode和JobTracker的网络接口,它们的地址默认为:
NameNode - http://master:50070/
JobTracker - http://master:50030/
将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -put conf input
运行发行版提供的示例程序:
$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'
查看输出文件:
将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*
或者
在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/*
启动运行成功后,可以多熟悉熟悉hadoop dfs命令,例如:
hadoop dfs –ls 查看/usr/root目录下的内容,默认如果不填路径这就是当前用户路径;
hadoop dfs –rmr xxx xxx就是删除目录;
hadoop dfsadmin -report 这个命令可以全局的查看DataNode的情况;
hadoop job -list 后面增加参数是对于当前运行的Job的操作,例如list,kill等;
hadoop balancer 均衡磁盘负载的命令。
ps:用JavaEye编辑器调整格式差点把我搞死。。。
分享到:
相关推荐
hadoop0.20.2版本在虚拟机中的安装指南,经过测试可以实现
这个版本的HBase是针对Hadoop 0.20.2版本优化的,这意味着它可以在运行Hadoop 0.20.2集群的环境中稳定运行。用户在自己的本地虚拟机上成功安装并使用了这个版本,证明了它们之间的兼容性和稳定性。 HBase的主要特性...
Hadoop 0.20.2还引入了安全性的改进,如Secure Hadoop功能,支持Kerberos认证,为Hadoop集群提供身份验证和授权,保护数据安全。这使得0.20.2版本适用于需要严格数据安全的企业环境。 在Hadoop 0.20.2中,文件系统...
本文档详细介绍了如何在 Ubuntu Server 12.04 x64 上安装配置 Hadoop 0.20.2,并构建一个基本的 Hadoop 集群。通过本文的学习,初学者不仅可以掌握 Hadoop 的安装配置流程,还能够了解如何执行简单的 HDFS 操作以及...
Hadoop 0.20.2 API文档是开发者在使用开源分布式架构Hadoop时的重要参考资料。这个版本的API文档详细地介绍了如何利用Java语言来与Hadoop生态系统进行交互,为开发人员提供了丰富的功能和工具,以实现大规模数据处理...
redHat linux下安装hadoop 0.20.2
【Ubuntu10.04下Hadoop-0.20.2集群配置手册】 这篇文档主要介绍了如何在Ubuntu 10.04操作系统环境下配置Hadoop-0.20.2集群,包括集群的硬件环境准备、软件环境的搭建、SSH无密码验证以及Hadoop的配置步骤。 首先,...
在配置Hadoop-0.20.2集群于CentOS系统时,首先需要了解集群的基本网络环境。在这个案例中,集群由三个节点组成:一个NameNode和两个DataNode。它们通过局域网相互连接,可以相互ping通。每个节点都运行着CentOS操作...
了解和熟练掌握Hadoop 0.20.2 API,对于开发分布式应用程序、处理大规模数据、优化Hadoop集群的性能都是至关重要的。通过API文档,开发者可以深入理解每个类和方法的作用,从而编写出高效且适应性强的Hadoop程序。...
这种分而治之的策略使得 Hadoop 能够在大量廉价硬件组成的集群上高效执行大数据处理任务。 Hadoop 0.20.2 版本的发布,带来了若干优化和改进。例如,它可能包含性能提升,如更高效的文件读写操作、优化的 MapReduce...
hadoop使用sqoop-1.2.0-CDH3B4.tar.gz需要将此包的hadoop-core-0.20.2-CDH3B4拷贝到sqoop/lib目录下
在学习Hadoop 0.20.2 时,可以通过搭建本地或伪分布式环境来实践配置和使用HDFS及MapReduce。同时,理解Hadoop生态中的其他工具,如Pig、Hive和HBase,可以帮助更全面地掌握大数据处理的流程。 压缩包中的`hadoop-...
伪分布式安装包,Hadoop 1.0指的是版本为Apache Hadoop 0.20.x、1.x或者CDH3系列的Hadoop,内核主要由HDFS和MapReduce两个系统组成,其中,MapReduce是一个离线处理框架,由编程模型(新旧API)、运行时环境和数据...
### Hadoop 0.20.2在Linux下的配置与安装详解 #### 一、环境准备与基础设置 在开始Hadoop 0.20.2的安装与配置之前,确保Linux系统上已完成以下准备工作: 1. **用户权限**:为用户`sharera`设置好账户,并确认其...
### 在Ubuntu 11.04上部署Hadoop-0.20.2集群云平台的知识点 #### 一、前言与环境准备 - **背景介绍**:本实验指导旨在帮助用户在Ubuntu 11.04操作系统上成功部署Hadoop-0.20.2集群云平台。该文档由厦门大学软件...
完成上述所有步骤后,Hadoop 0.20.2 在 Fedora 上的伪分布式环境就已经配置完毕。用户可以通过启动 HDFS 和 MapReduce 服务来进行分布式数据处理任务。 #### 六、注意事项与后续操作 - 在安装过程中,请确保所有的...