VM下配置Hadoop详细教程

前言:

Hadoop是一个分布式系统基础架构,主要是由HDFS、MapReduce和Hbase组成,分别为Google集群系统GFS、MapReduce、BigTable的开源实现。具有扩容能力强,效率高,成本低,可靠性好等特点。配置前最好熟悉一下Linux常用命令的使用,遇到问题时善于利用收索引擎,本教程的Linux版本选择比较常用的Ubuntu。

一、Hadoop安装

1.首先将hadoop-0.20.2.tar.gz安装包拷贝到虚拟机中,放于/home/xiami/目录下,用tar命令进行解压:

[xiami@dw_mstr ~]$ tar -zvxf hadoop-0.20.2.tar.gz

2.默认的解压路径是在/usr/hadoop-0.20.2下,接着再使用

sudo gedit /etc/profile命令将以下Hadoop的环境变量添加到profile文件中:

export HADOOP_HOME=/usr/hadoop-0.20.2

export PATH=$HADOOP_HOME/bin:$PATH

3.然后用source命令使profile文件立即生效:

 

PS:JDK与Hadoop的PATH变量可整合为如下:

export  PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH

二、Hadoop配置

  Hadoop的主要配置都在/usr/hadoop-0.20.2/conf目录下进行:

1.配置HDFS

(1)修改hadoop-env.sh文件

1)在本文件里设置环境变量JAVA_HOME:

export JAVA_HOME=/home/xiami/jdk1.6.0_21

这里写你自己jdk的路径



2)并将变量JAVA_HOME与HADOOP_OPTS前面的注释符“#”去掉,使变量生效:

(2)修改masters文件(只需在NameNode进行)

这个文件存储备master节点的IP或机器名,建议使用机器名,每行一个机器名:

(3)修改slaves文件(只需在NameNode进行)

这个文件存储slave节点的IP或机器名,建议使用机器名,每行一个机器名:

(4)修改core-site.xml文件

/usr/hadoop-0.20.2/conf目录下的core-site.xml文件默认是空的,但/usr/hadoop-0.20.2/src/core目录下有一个缺省的配置文件core-default.xml,可将它复制到conf目录下,重命名成core-site.xml并做适当修改即可。

或者直接在/usr/hadoop-0.20.2/conf目录下空的core-site.xml文件添加以下内容做简单配置也行:

<configuration>

<!--- global properties -->

<property>

  <name>hadoop.tmp.dir</name>

 <value>/usr/tmp</value>

 <description>A base for other temporarydirectories.</description>

</property>

<!-- file system properties -->

<property>

 <name>fs.default.name</name>

 <value>hdfs://192.168.137.2:9000</value>

</property>

</configuration>

PS:1.hadoop.tmp.dir指定了所有上传到Hadoop的文件的存放目录,所以要确保这个目录是足够大的;

2.fs.default.name指定NameNode的IP地址和端口号,缺省值是file:///,表示使用本地文件系统,,用于单机非分布式模式。

(5)修改hdfs-site.xml文件

<configuration>

<property>

 <name>dfs.replication</name>

 <value>1</value>

</property>

</configuration>

PS:dfs.replication指定HDFS中每Block被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数默认为3,如果不修改,DataNode少于三台就会报错。

2.配置MapReduce

       修改mapred-site.xml文件

<configuration>

<property>

 <name>mapred.job.tracker</name>

 <value>192.168.137.2:9001</value>

</property>

</configuration>

PS:mapred.job.tracker指定 JobTracker的IP地址和端口号。

PS:方便起见,可用scp命令把NameNode机器的/usr/hadoop-0.20.2/conf目录拷贝到其他DataNode上,保持同步。

十、Hadoop体验

1. 格式化

配置完Hadoop之后,在启动前要用hadoop namenode -format先对NameNode主机的文件系统进行格式化:

2.启动与停止

   格式化后用start-all.sh启动Hadoop,会出现如下界面:

停止Hadoop用命令stop-all.sh

3.查看Hadoop进程

运行Hadoop时,可用jps命令查看进程

(1)NameNode结果为:

(2)DataNode结果为:

4.查看集群状态

运行Hadoop时可用命令hadoop dfs admin –report查看集群的状态:

或者也可以通过web方式查看集群的状态(http://192.168.137.2:50070):

5.体验HDFS

HDFS的使用和普通的Linux命令差不多,只不过各类操作都必须作为hadoop命令的参数,如在hadoop上执行ls操作:

hadoop fs -ls

这条命令相当于Linux下的ls :

6.体验MapReduce

体验MapReduce,可以使用Hadoop自带的WordCount

(1)首先在本地磁盘建立wordcount文件夹并在里面新建两个输入文件file1和file2:

(2)用hadoop fs –mkdir   input命令在hdfs中建立一个input 目录:

 

(3)接着把file1和file2拷贝到hdfs中:

(4)进入/usr/hadoop-0.20.2目录并用如下命令

[root@localhost hadoop-0.20.2]#     hadoop jar hadoop-0.20.2-examples.jar wordcount input output  /usr/tmp


hadoop jar hadoop-0.20.2-examples.jar wordcount input output运行wordcount:

(5)再用hadoop fs -ls output查看output的内容,运算结果包含在part-r-00000里面,用如下命令来查看统计结果:

hadoop fs -cat  output   /part-r-00000

 

 

 

由图中得出统计结果如下:

Bye      1

Goodbye  1

Hadoop   2

Hello     2

World    2

明显可知统计结果是正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值