Ubuntu下用hadoop2.4搭建集群(伪分布式)

要真正的学习hadoop,就必须要使用集群,但是对于普通开发者来说,没有大规模的集群用来测试,所以只能使用伪分布式了。下面介绍如何搭建一个伪分布式集群。

为了节省时间和篇幅,前面一些步骤不再叙述。本文是在基于单机模式的前提下进行得搭建。若不会搭建单机模式,请看我的前一篇文章。Ubuntu下用hadoop2.4搭建集群(单机模式)

第一步 配置hdfs-site.xml

/usr/local/hadoop/etc/hadoop/hdfs-site.xml用来配置集群中每台主机都可用,指定主机上作为namenode和datanode的目录。

通过命令打开文件

sudo  gedit  /usr/local/hadoop/etc/hadoop/hdfs-site.xml

修改文件内容

在该文件的<configuration></configuration>之间增加如下内容

 <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/hdfs/data</value>
 </property>

保存、关闭编辑窗口

然后在hadoop 目录下新建文件夹。这些都可以自己定义的,只不过需要注意一点的是。在hdfs-site.xml里面所写的路径名需要和你建的文件名一样。不要搞错这一点就没问题。

通过命令新建文件夹。

一个命令就可搞定,当然分开写也是可以的。(记得是在hadoop文件夹下面)

第二步 配置core-site.xml

这个文件包含了hadoop启动时候的配置信息  文件在这个目录下usr/local/hadoop/etc/hadoop/core-site.xml

首先通过命令打开配置文件

sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml

在该文件的<configuration></configuration>之间增加如下内容。这里我要特别的说明一下,可以使用以下三个都实验一下,笔者优先推荐第一个,这一个一般不会有问题。有的时候可能和hadoop的版本以及系统本身一些问题,如果配置结束后不能启动,大家可以试试下面两个。

第一种:

<property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>

第二种:

 <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

defaultFS是新版本得一种写法,如果使用前面的default.name一般没有问题,有时候会提示你过期,让你使用defaultFS。可以都试一下。

第三种:

 <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

这种配置的目的是有个说法是如没有配置 hadoop.tmp.dir 参数,此时 Hadoop 默认的使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在每次重启后都会被干掉,必须重新执行 format 才行(未验证),所以伪分布式配置中最好还是设置一下。我也没有验证过。读者可以尝试一下。

第三步 配置yarn-site.xml

/usr/local/hadoop/etc/hadoop/yarn-site.xml包含了MapReduce启动时的配置信息。之前的hadoop版本是没有这个的,启动都时候只用bin/start-all.sh就可以,现在使用了yarn框架后需要对它进行配置。我但是配置2.4都时候,使用了以前配置1.1时候的方法,结果搞了半天,白白浪费了时间。

编辑器中打开此文件

sudo gedit    /usr/local/hadoop/etc/hadoop/yarn-site.xml

在该文件的<configuration></configuration>之间增加如下内容:

   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>

保存、关闭编辑窗口

第四步 配置mapred-site.xml

默认情况下,/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。之前的有些版本直接使用里面就有mapred.xml文件,2.4版本,只是提供了一个模板,所以我们需要自己复制一个mapred.xml文件。

复制并重命名(注意路径)

cp mapred-site.xml.template mapred-site.xml

    编辑器打开此新建文件

sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml

在该文件的<configuration></configuration>之间增加如下内容:

 <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
  </property>

保存、关闭编辑窗口

第五步 格式化分布式文件系统并启动hadoop

使用如下命令(路径要在hadoop目录下,新手可能容易忽视这些问题。包括前面的都需要注意路径问题!)

  hdfs namenode -format    

只需要执行一次即可,如果在hadoop已经使用后再次执行,会清除掉hdfs上的所有数据。

经过上文所描述配置和操作后,下面就可以启动这个单节点的集群

执行启动命令:

sbin/start-dfs.sh    

首次执行得话,如果有yes /no提示,输入yes,回车即可。   结果如下

接下来,执行:

    sbin/start-yarn.sh 

结果如下

执行完这两个命令后,Hadoop会启动并运行

执行 jps命令,会看到Hadoop相关的进程,如下图。如果不完整的话,就是配置没有正确了。

同时我们也可以在浏览器上查看。

浏览器打开 http://localhost:50070/会看到hdfs管理页面

浏览器打开http://localhost:8088,会看到hadoop进程管理页面。

第六步 通过wordcount程序来检查运行结果。

在介绍步骤之前,有必要了解,bin/hadoop是一个命令,现在也可以用bin/dfs 。

首先创建一个文件夹,这不是普通的文件夹,创建完成后你是不能在目录下面看到的,需要用hadoop文件系统指令才可以看到。当然,使用Eclipse开发的话就可以看到文件系统里面的文件。下一篇博客我将会讲解如何使用Eclispe搭建hadoop环境。

   bin/hadoop fs -mkdir -p input

把hadoop目录下的README.txt拷贝到dfs新建的input里,也可以拷贝其他的文件。对vim比较熟悉的也可自己写入。

   hadoop fs -copyFromLocal README.txt input

-copyFromLocal是hadoop文件系统的一个操作指令。

运行WordCount

 hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output

可以看到运行过程。

可以看到运行结果。

运行完毕后,查看单词统计结果

 hadoop fs -cat output/*

结果是:

第二次运行之前,请先删除output文件,否则会报错。

使用命令:

hadoop fs -rm -R ./output

细心的读者应该发现了我得截图中,一直存在这样一个异常。

提示WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

这是因为hadoop native library是32位系统编译的,在64位系统上会有这个提示,需要下载hadoop的源码重新编译,可参考http://stackoverflow.com/questions/19943766/hadoop-unable-to-load-native-hadoop-library-for-your-platform-error-on-centos

我编译了问题还是没有解决,可能和我系统本身有一些关系。

具体可以参考这个博客,在文章的末尾作者讲得很清楚

http://dblab.xmu.edu.cn/blog/powerxing/install-hadoop-2-4-1-single-node/

时间: 2024-08-08 09:41:31

Ubuntu下用hadoop2.4搭建集群(伪分布式)的相关文章

Hadoop学习笔记_4_实施Hadoop集群 --伪分布式安装

实施Hadoop集群 --伪分布式安装 准备与配置安装环境 安装虚拟机和linux,虚拟机推荐使用vmware,PC可以使用workstation,服务器可以使用ESXi,在管理上比较方便.ESXi还可以通过拷贝镜像文件复制虚拟机,复制后自动修改网卡号和ip,非常快捷.如果只是实验用途,硬盘大约预留20-30G空间. 以Centos为例,分区可以选择默认[如果想要手动分区,请参考博客:http://blog.csdn.net/zjf280441589/article/details/175485

Ubuntu下hadoop2.4搭建集群(单机模式)

一  .新建用户和用户组 注明:(这个步骤其实可以不用的,不过单独使用一个不同的用户好一些) 1.新建用户组 sudo addgroup hadoop 2.新建用户 sudo adduser -ingroup hadoop hadoop 3.添加hadoop用户权限 sudo gedit /etc/sudoers 打开sudoer文件后添加hadoop用户 # User privilege specification root ALL=(ALL:ALL) ALL hadoop ALL=(ALL:

Ubuntu server 14.04下安装hadoop-2.6.4 集群机

需要的环境: Ubuntu server 14.04 四台 Windows 7 操作系统(内存尽量大) Xshell 软件 安装在Windows 7操作系统上 Hadoop-2.6.4 软件(编译好) 参考文档: Hadoop 集群安装: (1) http://www.linuxidc.com/Linux/2015-01/111463.htm (2) http://blog.csdn.net/stark_summer/article/details/42424279 (3) http://www

CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

http://blog.csdn.net/prettyshuang/article/details/50501904 首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segment.2个镜像segment 192.168.4.94(h94)       1个备master  2个主segment.2个镜像segment 都安装在/home/wslu/gp

用apache和tomcat搭建集群,实现负载均衡

型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问题需要解决. 一.Session的复制 二.如何将请求发送到正常的服务器 针对以上问题,可以使用群集和负载均衡来解决,整体架构如下:  中间由一台服务器做负载均衡(Load Balancer),它将所有请求,根据一定的负载均衡规则发送给指定的群集服务器(Cluster),群集服务器拥有着相同的状态和

Ubuntu14.04下Hadoop2.2.0集群搭建

系统版本: master: Ubuntu 14.04  salve1: Ubuntu 14.04 hadoop: hadoop 2.2.0 1.系统配置以及安装SSH无密码登陆环境(master&slaves): 修改本机(master)和子节点(slaveN)机器名:打开/etc/hostname文件 sudo gedit /etc/hostname (修改后需重启才能生效) 修改host文件(映射各个节点IP): sudo gedit /etc/hosts 在后面添加内容为: 172.22.

Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机,增加更多的slave只需重复slave部分的内容即可. 系统版本: master:Ubuntu 12.04 slave:Ubuntu 12.04 hadoop:hadoop 2.2.0 安装ssh服务:sudo apt-get install ssh 有时也要更新一下vim:sudo apt-ge

Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo

近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次. 先看一下通过hadoop分析后的结果吧,最终通过hadoop分析国内典型航空旅游业厂商的常见安全漏洞个数的比例效果如下: 第一次正式使用Hadoop,肯定会遇到非常多的问题,参考了很多网络上的文章,我把自己从0搭建到使用的过程记录下来,方便以后自己或其他人参考. 之前简单用过storm,适合实时数据的处理.hadoop更偏向静态数据的处理,网上很多hadoop的

vmware10上三台虚拟机的Hadoop2.5.1集群搭建

? 由于官方版本的Hadoop是32位,若在64位Linux上安装,则必须先重新在64位环境下编译Hadoop源代码.本环境采用编译后的hadoop2.5.1 . 安装参考博客: 1 http://www.micmiu.com/bigdata/hadoop/hadoop2x-cluster-setup/ 2 http://f.dataguru.cn/thread-18125-1-1.html 3 http://blog.sina.com.cn/s/blog_611317b40100t5od.ht