hadoop伪分布式的搭建

一、简述

  在centos7 Linux下进行伪分布式搭建。Hadoop 伪分布式模式是在单机上模拟 Hadoop 分布式,单机上的分布式并不是真正的伪分布式,而是使用线程模拟分布式。Hadoop 本身是无法区分伪分布式和分布式的,两种配置也很相似,唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均是一个机器。虽然Hadoop的安装步骤并不复杂,但是我在安装期间还是遇到了很多琐碎的问题,现将自己搭建Hadoop的详细过程和遇到的问题记录下来。完全分布式就是一个hadoop集群,有n台机器组成,一般组织方式是:一台机器作为master,上面 运行    namenode和jobtracker,另外的机器作为slave,上面运行datanode和tasktracker,至于secondaryname,可以运行在master上,也可以运行在另外一台机器上。secondaryname是namenode的一个备份里面同样保存了名字空间,和文件到文件块的map关系。建议运行在另外一台机器上,这样master死掉之后,还可以通过secondaryname所在的机器找回名字空间,和文件到文件块得map关系数据,恢复namenode。 

二、 环境搭建

1.准备工作

主机名称系统jdkhadoop
hadoopcentos7jdk1.8+hadoop-2.7.3

2.开始安装

1.关闭防火墙、配置主机明和ip 、 ssh无密码登录
hadoop、jdk的下载、安装以及环境变量的配置请参考:http://blog.csdn.net/qq_38799155/article/details/75949250

2.伪分布hadoop的配置:
2.1core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

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

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.3/tmp</value>
    </property>
</configuration>

2.2 hdfs-ssite.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
                <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/name</value>
        </property>
</configuration>

2.3. mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

2.4 yarn.site.xml

<?xml version="1.0"?>
<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

</configuration>

2.5 slaves

localhost

3.启动hadoop

1.hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个

看到如下图证明成功:
这里写图片描述

2.mr-jobhistory-daemon.sh start historyserver

看到如下图证明成功:
这里写图片描述

3.start-dfs.sh

看到如下图证明成功:
这里写图片描述

4.start-yarn.sh

看到如下图证明成功:
这里写图片描述

5.在web浏览器上输入自己主机的ip+:50070端口号,即可看到如下图所示的页面查看节点状况和job状况 :
这里写图片描述

三、hadoop 的使用

一个测试例子wordcount
计算输入文本中词语数量的程序。WordCount在Hadoop主目录下的java程序包hadoop-0.20.2-examples.jar 中,执行步骤如下:
在/usr/local/hadoop/hadoop-0.20.2/bin/目录下进行如下操作:
执行 hadoop fs -ls命令,查看当前hdfs分布式文件系统的 文件目录结构,刚执行会说no such dictionary,
你要先建一个文件夹,用命令 haoop fs -mkdir testdir ,然后再执行hadoop fs -ls,就会展示/user/root/testdir
当前用户是root,所以hdfs的根目录就是 /user/root

hadoop fs -mkdir okdir(新建目录名称,可任意命名)
离开hodoop的安全模式
bin/hadoop dfsadmin -safemode leave
在这个目录里放入文件:hadoop fs -put /usr/test_in/*.txt okdir(把本地/usr/test_in目录里的所有txt文件copy到 hdfs分布式文件系统的 /user/root/inputdir 目录里面,因为当前目录就是root 所以 直接写input 就代表/user/root/inputdir)
在/usr/local/hadoop/hadoop-0.20.2下执行:
[root@master hadoop-0.20.2]# hadoop jar hadoop-0.20.2-examples.jar wordcount okdir output (提交作业,此处需注意okdir与output是一组任务,下次再执行wordcount程序,还要新建目录,不能跟okdir与output重名)

11/05/28 22:02:34 INFO input.FileInputFormat: Total input paths to process : 0  
11/05/28 22:02:34 INFO mapred.JobClient: Running job: job_201105282107_0005  
11/05/28 22:02:35 INFO mapred.JobClient:  map 0% reduce 0%  
11/05/28 22:02:46 INFO mapred.JobClient:  map 0% reduce 100%  
11/05/28 22:02:48 INFO mapred.JobClient: Job complete: job_201105282107_0005  
11/05/28 22:02:48 INFO mapred.JobClient: Counters: 8  
11/05/28 22:02:48 INFO mapred.JobClient:   Job Counters   
11/05/28 22:02:48 INFO mapred.JobClient:     Launched reduce tasks=1  
11/05/28 22:02:48 INFO mapred.JobClient:   Map-Reduce Framework  
11/05/28 22:02:48 INFO mapred.JobClient:     Reduce input groups=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Combine output records=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Reduce shuffle bytes=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Reduce output records=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Spilled Records=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Combine input records=0  
11/05/28 22:02:48 INFO mapred.JobClient:     Reduce input records=0  

执行完毕后,在hadoop下输入

hadoop fs -ls output

显示如下:

Found 2 items  
drwxr-xr-x   - root supergroup          0 2011-05-08 05:20 /user/root/output/_logs  
-rw-r--r--   1 root supergroup       1688 2011-05-08 05:21 /user/root/output/part-r-00000  

可以查看运行结果 :

#bin/hadoop dfs -cat hellooutput/part-r-00000

显示如下:

a       1  
are     1  
day     1  
fine    1  
fridey  1  
is      3  
name    1  
not     1  
today   4  
you     1  
your    1  

也可进入web界面刷新查看running job及completed job的显示。

转载于:https://www.cnblogs.com/cn-7876/p/7757769.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值