windows下用Vmware创建虚拟机搭建hadoop平台

搭建环境:

Redhat-Server-6.3,hadoop-0.20.203.0,jdk系统自身安装的

 

需要注意的是在所有的节点中namenodedatanode用户名和密码应该是相同的

一、安装jdkhadoop

本人由于用的是系统自带的jdk,所以本人没有设置相关的JAVA_HOME的相关路径,利用which javals java命令来查找系统指定的java路径。

给出相关配置jdk的步骤,参考网上的相关资料

无论在单机模式还是在集群模式下,建议将hadoopjdk等其他软件装在固定目录下。如果是集群模式,在各个机器上一定要选择同一个目录,建议选择文件系统的 /opt/ 目录。可能由于权限问题无法更改 /opt/ 目录,可使用命令 $ sudo chmod 777 -R  /opt  更改权限.

         将下载好的jdkhadoop放在 /opt 目录下,直接右键解压到此处解压hadoop,打开终端,转到 /opt 目录下,执行

         $ sudo ./jdk-6u25-linux-i586.bin

 就可以解压。

如果提示该操作权限不够,先执行

         $ sudo chmod 777 jdk-6u25-linux-i586.bin

后再做该操作。

hadoop压缩包解压到相关路径下,本人的用户名为redhat 将压缩包解压到以下路径下/home/redhat路径下。

使用的解压命令式:

Tar zxvf hadoop-0.20.203.0rc1.tar.gz

二、环境变量配置及host配置

由于本人的相关设置是自动生成的,所以可能是不用对/etc/profile文件进行相关的设置。这里我就给出网上前人给出的配置

Profile文件添加配置

export JAVA_HOME=/opt/jdk1.6.0_25

export JRE_HOME=/opt/jdk1.6.0_25/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:/opt/android-sdk-linux_x86/platform-tools

 

export HADOOP_HOME=/opt/hadoop-0.20.203.0

export PATH=$HADOOP_HOME/bin:$PATH

我是使用三台机器来做,ip分配如下:

 

机器名                               IP                                                   作用

redhat1               192.168.1.20                 NameNodemasterjobTracker

redhat2                      192.168.1.21            DataNode    slave    taskTracker

redhat3                      192.168.1.22     DataNode    slave    taskTracker

redhat4                      192.168.1.23            DataNode    slave    taskTracker

 

配置hosts文件内容

192.168.1.20 redhat1

192.168.1.21 redhat2

192.168.1.22 redhat3

192.168.1.23 redhat4

 

三、ssh无密码登录

(1) NameNode 上实现无密码登录本机:

         $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

 

直接回车,完成后会在~/.ssh/生成两个文件:id_dsa id_dsa.pub。这两个是成对

出现,类似钥匙和锁。再把 id_dsa.pub 追加到授权 key 里面(当前并没authorized_keys

文件):

         $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

完成后可以实现无密码登录本机:

 

         $ ssh localhost

(2)实现 NameNode 无密码登录其他 DataNode:

NameNode 上的 id_dsa.pub 文件追加到 dataNode authorized_keys ( 192.168.1.21 节点为例):

a. 拷贝 NameNode id_dsa.pub 文件:

 

         $ scp authorized_keys hadoop@125.216.244.201:/home/hadoop/.ssh/

其他的 dataNode 执行同样的操作。如果提示没有.ssh文件夹,自己创建一个。

 

注意:如果配置完毕,如果 namenode 依然不能访问 datanode,可以修改 datanode

authorized_keys:

 

四、关闭防火墙

/etc/init.d/iptables stop

五、hadoop文件配置

进入hadoop路径下,进入conf文件加下打开hadoop-env.sh文件

hadoop-env.sh文件配置

添加如下一行

export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk

masters文件配置

redhat1

slaves文件配置

redhat2

redhat3

redhat4

core-site.xml文件配置

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

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

<value>/home/redhat/tmp1</value>

</property>

 

<property>

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

<value>hdfs://192.168.1.20:9000</value>

</property>

</configuration>

hdfs-site.xml文件配置

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

注意:replication 默认为 3,如果不修改,datanode 少于三台就会报错如果配置datanode比较少改为1比较合适

mapred-site.xml文件配置

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

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

<value>192.168.1.20:9001</value>

</property>

 

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

六、运行hadoop

进入 hadoop-0.20.203.0/bin,首先格式化文件系统:

 

         $ hadoop namenode –format

 

启动 Hadoop:

 

         $ start-all.sh

 

jps 命令查看进程

        

         $ jps

29087 Jps

3704 JobTracker

3013 NameNode

 

查看集群状态:

        

         $ hadoop dfsadmin -report

Configured Capacity: 55609774080 (51.79 GB)

Present Capacity: 36792840192 (34.27 GB)

DFS Remaining: 36791676928 (34.26 GB)

DFS Used: 1163264 (1.11 MB)

DFS Used%: 0%

Under replicated blocks: 5

Blocks with corrupt replicas: 2

Missing blocks: 0

 

-------------------------------------------------

Datanodes available: 3 (3 total, 0 dead)

 

Name: 192.168.1.21:50010

Decommission Status : Normal

Configured Capacity: 18536591360 (17.26 GB)

DFS Used: 376832 (368 KB)

Non DFS Used: 6284947456 (5.85 GB)

DFS Remaining: 12251267072(11.41 GB)

DFS Used%: 0%

DFS Remaining%: 66.09%

Last contact: Sun Sep 16 21:25:22 CST 2012

 

 

Name: 192.168.1.23:50010

Decommission Status : Normal

Configured Capacity: 18536591360 (17.26 GB)

DFS Used: 376832 (368 KB)

Non DFS Used: 6267588608 (5.84 GB)

DFS Remaining: 12268625920(11.43 GB)

DFS Used%: 0%

DFS Remaining%: 66.19%

Last contact: Sun Sep 16 21:25:21 CST 2012

 

 

Name: 192.168.1.22:50010

Decommission Status : Normal

Configured Capacity: 18536591360 (17.26 GB)

DFS Used: 409600 (400 KB)

Non DFS Used: 6264397824 (5.83 GB)

DFS Remaining: 12271783936(11.43 GB)

DFS Used%: 0%

DFS Remaining%: 66.2%

Last contact: Sun Sep 16 21:25:22 CST 2012

Hadoop web 方式查看:http://192.168.1.20:50070

七、运行WordCount程序

(1)先在本地文件系统建立一个文件夹test-in,然后转到该目录下创建 file01 file02:

 

         $ echo “Hello World Bye World” > file01

         $ echo “Hello Hadoop Goodbye Hadoop” > file02

 

test-in文件夹可以建在那里都可以。

 

(2)转到hadoop-0.20.203.0 目录下,在 hdfs 中建立一个 input 目录:

 

         $ hadoop fs –mkdir input

 

注意如果提示存在该目录已存在,不能创建。则执行命令

 

         $hadoop fs -ls

 

显示 /user/当前用户/ 下的文件夹,看到input后又执行

 

         $hadoop fs -rmr input

 

删除该文件夹。之后再创建。

 

 

(3) file01 file02 拷贝到 hdfs :

 

         $ hadoop fs –copyFromLocal /opt/test-in/file0* input

 

(4)执行 wordcount:

 

         $ hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output

 

(5)完成之后,查看结果:

 

$ hadoop fs -cat output/part-r-00000

Bye            1

Goodbye  1

Hadoop    2

Hello                  2

World                 2

 

 

 

异常处理

 

1.could only be replicated to 0 nodes, instead of 1

 

上一次的缓存数据还没有删除,删除 namenode datanode /home/hadoop/tmp/dfs /home/hadoop/tmp/mapred 下所有文件,重新格式化 namenode

 

重新开始后,执行

         $start-all

         $hadoop dfsadmin -report

 

看看有没有可用的datanode ,没有的话等待几分钟,直到出现有可用的datanode再执行worldcount.jar 程序。等了很久还没有的话,删除 namenode datanode /home/hadoop/tmp/dfs /home/hadoop/tmp/mapred 下所有文件,重新格式化 namenode 再执行。

 

其他的异常也可以通过此方法解决。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值