1 运行模式:

单机模式(standalone):  单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

伪分布模式(Pseudo-Distributed Mode):  伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

全分布模式(Fully Distributed Mode):   Hadoop守护进程运行在一个集群上。

2 下载Hadoop:------------------笑一个------------------------ 

获取安装包后
在home/user目录下创建一个文件夹hadoop, 便于管理hadoop;
更改该文件夹的所有者:sudo chown -R user:usergroup hadoop
有了这步后,更改文件夹,就可以在Ubuntu界面下来操作来

3 配置的过程:

  1修改配置文件:

    five@ubuntu:~/hadoop/conf$ gedit hadoop-env.sh   

    添加如下:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 (视你机器的java安装路径而定)
export HADOOP_HOME=/home/five/hadoop
export PATH=$PATH:/home/five/hadoop/bin

生效:source hadoop-env.sh

提示:当然你可以在用户环境变量中添加第二个第三个,以便在任意路径下都可以快速执行hadoop命令

2修改文件:

  文件1:--------------------------- 

    conf/core-site.xml文件内容修改为下面内容:

  <configuration>

     <!-- global properties 以下部分可以不用添加,在1.2.1的示例运行的时候回出现问题-->
<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/five/hadoop/tmp</value>
   </property> <!-- file system properties --> hadoop核心配置文件,HDFS 的地址和端口号
   <property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
   </property>
  </configuration>

文件2:---------------------------

 conf/hdfs-site.xml文件内容修改为下面内容:(replication默认为3,如果不修改,datanode少于三台就会报错)
  <configuration>
   <property>
   <name>fs.replication</name>
   <value>1</value>
   </property>
  </configuration>

文件3:---------------------------

    这是Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
  conf/mapred-site.xml文件内容修改为下面内容:
  <configuration>
   <property>
   <name>mapred.job.tracker</name>
   <value>localhost:9001</value>
   </property>
  </configuration>

3 格式化Hadoop文件系统,在命令行输入命令:

  bin/hadoop namenode -format

  显示:15/03/16 15:43:46 INFO common.Storage: Storage directory /home/five/hadoop/hdfs/name has been successfully formatted.

  上面命令如果有错,hadoop目录下执行,或者在环境变量中添加:hadoop的bin目录后,运行:hadoop namenode -format

4 、启动Hadoop,在命令行输入命令:

    bin/start-all.sh
    ./start-all.sh
    用bin/start-all.sh;也可以用bin/start-dfs.sh和bin/start-mapred.sh)

  5

隔10秒后,因为可能会报错:
然后在命令行下输入:jps
发现有:
4574 TaskTracker
4630 Jps
2865 JobTracker
4237 DataNode
4394 SecondaryNameNode
4092 NameNode

6 验证Hadoop是否安装成功,在浏览器中输入下面网址,如果正常打开说明安装成功。

  http://localhost:50030 (mapreduce的web页面)
  http://localhost:50070 (hdfs的web页面)


错误信息:

1 http://localhost:50070 ,第二个打不开:

查看Logs:
2015-03-16 16:43:20,701 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode:
java.net.UnknownHostException: Invalid hostname for server: master

  打开core-site.xml中的主机:看是不是正确,由于我之前写错了,


  2 jps命令后,发现没有DataNode:可能是由于多次格式化NameNode造成

    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs

1.进入每个datanode的 dfs.data.dir 的 current目录,修改里面的文件VERSION

#Fri Nov 23 15:00:17 CST 2012
namespaceID=246015542
storageID=DS-2085496284-192.168.1.244-50010-1353654017403
cTime=0
storageType=DATA_NODE
layoutVersion=-32

里面有个 namespaceID 将其修改成为报错信息中的

namenode namespaceID = 971169702

相同的 namespaceID .

然后重新启动 datanode全部都能正常启动了。


4 运行示例: 

(1)先在本地磁盘建立两个输入文件 file01和file02
$echo "Hello World Bye World" > file01
$echo "Hello Hadoop Goodbye Hadoop" > file02
例如:我的是:/home/five/input : file01 file02

(2)在hdfs中建立一个input目录:$hadoop fs -mkdir input
(3)将file01和file02拷贝到hdfs中:
$hadoop fs -copyFromLocal /home/five/input/file0* input
(4)执行wordcount:
$hadoop jar hadoop/hadoop-examples-1.2.1.jar wordcount input hadoop/output

hadoop jar hadoop-examples-1.0.4.jar (指定例子所在jar包 ) wordcount (指定程序的名字) /user/hadoop/test-examples/world-count(输入参数)  /user/hadoop/test-examples/world-count-result(输出结果)

Error:1:需要是安装目录下对应的版本:hadoop-examples-1.2.1.jar

    2:如果提示创建Tem文件夹失败:删除那个在文件conf/core-site.xml中的属性

  

(5)完成之后,查看结果
$hadoop fs -cat hadoop/output/part-r-00000

显示如下信息:
.....
.....
15/03/17 15:16:24 INFO mapred.JobClient: map 0% reduce 0%
15/03/17 15:16:32 INFO mapred.JobClient: map 100% reduce 0%
15/03/17 15:16:40 INFO mapred.JobClient: map 100% reduce 33%
15/03/17 15:16:41 INFO mapred.JobClient: map 100% reduce 100%

5:参考:

http://www.linuxidc.com/Linux/2013-06/86106p2.htm
http://blog.csdn.net/wyswlp/article/details/10564847
http://www.cnblogs.com/forfuture1978/category/300670.html
http://www.linuxidc.com/Linux/2012-01/50880p2.htm

Hadoop环境搭建2_hadoop安装和运行环境的更多相关文章

  1. ofbiz最新版13.07.01环境搭建、安装(linux环境下)

    一.软件必备: 1.jdk1.7 2.mysql5.6 3.安装tomcat 二.安装: 1.安装 JDK1.7 2.安装mysql数据库 3.下载apache-ofbiz-13.07.01.zip ...

  2. HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

    HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20   评论»       文章目录 Debian上安装 Ce ...

  3. ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决

    ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决 说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文 ...

  4. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  5. SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04

    摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...

  6. 【Mac + Android】之Android Studio 环境搭建,AVD模拟器运行(包括:命令行运行AVD,并且Genymotion模拟器插件配置运行)

    目录: 前提.Mac环境下手动配置Android SDK 一. Android Studio下载及配置 二.AVD模拟器配置运行 扩展:命令行运行AVD模拟器 三.在Android Studio 中配 ...

  7. 阿里云服务器ubuntu安装java运行环境

    服务器 阿里云服务器ubuntu安装java运行环境 转:http://www.codingyun.com/article/45.html 今天来给大家介绍一下在阿里云ubuntu服务器下安装java ...

  8. 摘:J2EE开发环境搭建(1)——安装JDK、Tomcat、Eclipse

    J2EE开发环境搭建(1)——安装JDK.Tomcat.Eclipse 1:背景 进公司用SSH(Struts,spring和hibernate)开发已经有两个月了,但由于一 直要么只负责表示层的开发 ...

  9. Python 2/3 安装与运行环境设置

    Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/    下载Win版本 https://www.python.org/downloa ...

随机推荐

  1. SQL Reverse函数

    原文:SQL Reverse函数 Sql sever里面有个自带的reverse函数,这个函数的主要功能是把一个字符产反转.比如对于: select REVERSE('hello,world') 将得 ...

  2. 待签名参数按照字段名的ascii码从小到大排序

    public static String getSign(Map<String, String> params) { Map<String, String> sortMap = ...

  3. tmux用法

    列出所有的tmux  session,一个session是多个窗口的集合 tmux list-session 创建tmux窗口, tmux new -s server server为tmux的sess ...

  4. IP分类:A,B,C,D,E五类

    IP地址分为五类: IP地址分为五类:A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验. 常用的三类IP地址 IP = 网路地址(网络号)+主机地址(主 ...

  5. Python 面向对象三(转载)

    来源:Mr.Seven www.cnblogs.com/wupeiqi/p/4766801.html 四.类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段.方法和属性三 ...

  6. JPEG编码(二)

    来自CSDN评论区http://bbs.csdn.net/topics/190980 1. 色彩模型 JPEG 的图片使用的是 YCrCb 颜色模型, 而不是计算机上最常用的 RGB. 关于色彩模型, ...

  7. [WCF菜鸟]什么是WCF

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  8. RPC接口mock测试

    转载:http://blog.csdn.net/ronghuanye/article/details/71124127 1        简介 Dubbo目前的应用已经越来越广泛.或者基于Dubbo二 ...

  9. icvEvalCARTHaarClassifier

    /* *icvEvalCARTHaarClassifier *作用:通过计算haar特征值,来分配非叶子节点直到出现叶子节点,最后返回输出值val.  */ float icvEvalCARTHaar ...

  10. SQL中拆分字符串substr及统计字符出现频数replace用法实例讲解

    一.拆分字符串为若干行 例一:要求将表emp中的'king'按照每行一个单词拆成四行 注意:substr(str,pos):截取pos位置开始的字符: substr(str,pos,len):从pos ...