要真正的学习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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在该文件的<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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在该文件的<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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">    编辑器打开此新建文件

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

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

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

保存、关闭编辑窗体

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

使用例如以下命令(路径要在hadoop文件夹下,新手可能easy忽视这些问题。包含前面的都须要注意路径问题。)

  hdfs namenode -format    

仅仅须要运行一次就可以,假设在hadoop已经使用后再次运行,会清除掉hdfs上的全部数据。

经过上文所描写叙述配置和操作后。以下就能够启动这个单节点的集群

运行启动命令:

sbin/start-dfs.sh    

首次运行得话,假设有yes /no提示,输入yes,回车就可以。   结果例如以下

接下来,运行:

    sbin/start-yarn.sh 

结果例如以下

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

同一时候我们也能够在浏览器上查看。

浏览器打开 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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

能够看到执行过程。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

能够看到执行结果。

执行完成后,查看单词统计结果

 hadoop fs -cat output/*

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

结果是:

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

使用命令:

hadoop fs -rm -R ./output

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

提示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/

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

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

    一  .新建用户和用户组 注明:(这个步骤事实上能够不用的.只是单独使用一个不同的用户好一些) 1.新建用户组 sudo addgroup hadoop 2.新建用户 sudo adduser -in ...

  2. Ubuntu下基于Nginx实现Tomcat集群负载均衡

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   Nginx是一款HTTP和反向代理服务器,有关它的介绍可以到网上搜一下,很多很多,不再累述.这里,我们记录一下Nginx ...

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

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  4. Ubuntu 下 Neo4j单机安装和集群环境安装

    1. Neo4j简介 Neo4j是一个用Java实现的.高性能的.NoSQL图形数据库.Neo4j 使用图(graph)相关的概念来描述数据模型,通过图中的节点和节点的关系来建模.Neo4j完全兼容A ...

  5. Ubuntu 下 Galera cluster for MySQL 集群安装

    mysql galera cluster官网:http://galeracluster.com/documentation-webpages/ 相关安装教程:(不一定管用) http://blog.c ...

  6. 使用Docker搭建Hadoop集群(伪分布式与完全分布式)

    之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...

  7. Windows10+VMware Workstation Pro+Ubuntu 16.04+Hadoop-2.6.5+IDEA环境搭建(单机&伪分布式&集群)

    (注:下面出现的"czifan"为用户名,需替换成自己的用户名) 本篇博客是在实践该篇博客的过程中的一些补充和修改~ 0 - 安装VMware Workstation Pro 首先 ...

  8. linux下安装 zookeeper-3.4.9并搭建集群环境

    本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ...

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

    型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问 ...

随机推荐

  1. 联想 S5【K520】免解锁BL 免rec 保留数据 Magisk Xposed 救砖 ROOT ZUI 3.7.490

    >>>重点介绍<<< 第一:本刷机包可卡刷可线刷,刷机包比较大的原因是采用同时兼容卡刷和线刷的格式,所以比较大第二:[卡刷方法]卡刷不要解压刷机包,直接传入手机后用 ...

  2. ElasticSearch学习笔记--一些规范,会持续更新

    我们在ElasticSearch中存储的数据一般是采用json的格式存储,所以ElasticSearch中有一个叫Mapper的东西用来定义jsonschema来规范这个json 但是这个mapper ...

  3. DVWA--登录页面错误问题 469 | | PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\web\DVWA\dvwa\includes\dvwaPage.inc.php:469

    // MySQL PDO Prepared Statements (for impossible levels) $db = new PDO('mysql:host=' . $_DVWA[ 'db_s ...

  4. Java 基础入门随笔(3) JavaSE版——逻辑运算符、位运算符

    上一节写了一些运算符的注意事项,这节开头依然是对运算符的一些注意点的阐述! 比较运算符除了>.>=.<.<=.==.!=之外需要注意instanceof:检查是否是类的对象,例 ...

  5. Filesystem Hierarchy Standard (Unix, Linux etc)

    http://www.pathname.com/fhs/ /boot -- Static files of the boot loader Purpose: contains everything r ...

  6. day14-二分法、匿名函数、内置函数以及面向过程编程

    目录 二分法 匿名函数 内置函数 面向过程编程 二分法 二分法查找适用于数据量较大时,但是数据需要先排好顺序.主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间 ...

  7. node遍历给定目录下特定文件,内容合并到一个文件

    遍历目录用了fs.readdir这个异步方法,得到当前目录下所有的文件和目录的一个数组.然后判断: if文件,并且后缀符合设定的规则(本文例子是符合后缀ts,js)直接用同步方法写入, if目录,继续 ...

  8. LPSTR LPCTSTR

    UNICODE:它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNI ...

  9. CAD控件:控件图形数据库概要说明

    1.1 控件数据库 3 1.1.1 数据库概述 3 1.2 数据库初始化 4 1.3 创建和组织数据库 4 1.4 保存数据库 4 1.5 插入一个数据库 4 1.6 设置当前数据库值 5 1.6.1 ...

  10. Introduction of Version Control/Git, SVN

    什么是版本控制? 你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照.当你需要查看一个之前的快照(称之为“版本”)时,版本控制系统可以显示出当 ...