超详细解说Hadoop伪分布式搭建

原文http://www.tuicool.com/articles/NBvMv2
原原文 http://wojiaobaoshanyinong.iteye.com/blog/1946817

单节点伪分布式Hadoop配置

(声明:文档里面需要用户输入的均已斜体表示)

第一步: 安装JDK

因为 Hadoop 运行必须安装 JDK 环境,因此在安装好 Linux 后进入系统的第一步 便是安装 JDK ,安装过程和在 Windows 环境中的安装步骤很类似,首先去 Oracle 官网 去下载安装包,然后直接进行解压。我自己解压在路径 /usr/jvm 下面,假如你的安装包现在已经下载在 jvm 文件夹下面,然后 按 Ctrl+Alt+t 进去命令行,然后输入

cd /usr/jvm

进入到jvm文件夹下面,然后再输入如下命令进行解压:

sudo tar -zxvf jdk-7u40-linux-i586.tar.gz

第二步: 配置环境变量

解压结束以后,像在 Windows 系统中一样,需要配置环境变量,在 Ubuntu 中设置 环境变量的过程为打开文件 /etc/profile ,因为权限的问题,因此在命令行需要输入 的是

sudo gedit /etc/profile

然后在根据提示输入用户密码即可,然后在文件最下面添加如下:

export JAVA_HOME=/usr/jvm/jdk1.7.0_40

export CLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/jre/lib$CLASSPATH"

export PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/hadoop/hadoop-1.2.1/bin:$PATH"

上面这三个以单词 export 开始的三个语句就类似于我们在 Windows 中的环境变量中设置一样,而且在这个里面和 Windows 中不同的是,在 Windows 中使用 “;” 号来表示分隔,但是在 Ubuntu 中是以 “:” 号来表示分隔。还需要注意的是,上面的路径都是我自己配置的时候的路径,因为我的 JDK 解压在 /usr/jvm 中,所以我的 JAVA_HOME 设置的是那个路径,而且如果安装的 JDK 版本不同那么后面的也不一样。同理在 CLASSPATH 路径中也是因为我自己的安装路径进行设置的,因此在配置过程中需要读者注意。在 PATH 路径中最后面还将 Hadoop 的路径也添加了进去,因此在读者安装了 Hadoop 后也将这个路径添加进环境变量 PATH 中去。

在配置完环境变量后,我们来将我们安装的 JDK 设置为 Ubuntu 系统默认的 JDK ,因为之前系统里面自带 openjdk ,在命令行里面输入如下:

sudo update-alternatives --install /usr/bin/java java /usr/jvm/jdk1.7.0_40/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/jvm/jdk1.7.0_40/bin/javac 300

sudo update-alternatives --config java

然后我们就可以在命令行输入 java -version 来进行察看 JDK 是否已经配置好了。

第三步: 安装Hadoop

我们可以去 Hadoop 官网上去下载安装包,我自己下载使用的是 hadoop-1.2.1.tar.gz ,然后当安装包下载结束后,将安装包解压到指定位置,我将安装包解压到了 /usr/hadoop 目录下面。

具体步骤是,像解压 JDK 一样,首先加入下载的 Hadoop 安装包在 /usr/hadoop 文件夹下面。然后在命令行下进入 /usr/hadoop 文件,类似于上面的。然后输入解压命令如下

sudo tar -zxvf hadoop-1.2.1.tar.gz

后面的 Hadoop 安装包名称具体看你下载的版本,我下载的是1.2.1版本的。 为了以后操作 /usr/hadoop 文件夹里面的文件方便,我们设置一下文件夹的权限,在命令行输入如下

sudo chown -hR baoshan /usr/hadoop

注意:在上面的命令中,baoshan是我自己此时登陆的用户名,因此你需要将那个改成你自己的用户名。

第四步: 配置Hadoop环境变量

在上面解压完 Hadoop 以后,现在我们来设置环境变量,其实在上面刚才我们配置 JDK 环境变量的时候,已经在 PATH 路径后面添加了 Hadoop 安装目录的 bin 目录的路径,所以那个就代表环境变量已经设置好了,但是读者一定要注意,不要 Copy ,要明确自己的 Hadoop 安装路径来进行配置。

第五步: 设置SSH(安全外壳协议)

推荐安装 OpenSSH , Hadoop 需要通过 SSH 来启动 Slave 列表中各台主机的守护进程,因此 SSH 是必需安装的。虽然我们现在搭建的是一个伪分布式的平台,但是 Hadoop 没有区分开集群式和伪分布式,对于伪分布式, Hadoop 会采用与集群相同的处理方式,即按次序启动文件 conf/slaves 中记载的主机进程,只不过在伪分布式中 Salve 为 localhost 而已,所以对于伪分布式, SSH 是必须的。

配置过程(首先确保连接上网络):

① 安装SSH,在命令行输入如下

sudo apt-get install openssh-server

② 配置可以免密码登陆本机

在命令行输入(注意其中的ssh前面还有一个 “ . ” 不要遗漏)

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

(解释一下上面这条命令, ssh-keygen 代表生成密钥; -t 表示指定生成的密钥 类型; dsa 是 dsa 密钥认证的意思; -P 用于提供密语(接着后面是两个单引号, 不要打错); -f 表示指定生成密钥文件)

这条命令完成后,会在当前文件夹下面的 .ssh 文件夹下创建 id_dsa 和 id_dsa.pub 两个文件,这是 SSH 的一对私钥和公钥,把 id_dsa.pub (公钥)追加到授权的 key 中去,输入如下命令:

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

至此,免密码登陆本机已经配置完毕。

说明:一般来说,安装SSH时会自动在当前用户下创建.ssh这个隐藏文件夹,一般不会直接看到,除非安装好了以后,在命令行使用命令ls才会看到。

③ 输入 ssh localhost ,显示登陆成功信息。

第六步: 配置Hadoop伪分布式模式

现在进入到安装 Hadoop 的文件夹,找到里面的 conf 文件夹,点击进去。

配置 hadoop 环境文件 hadoop-env.sh

打开文件,找到某行有 ”# export JAVA_HOME = ...” 字样的地方,去掉 “#” ,然后在等号后面填写你自己的 JDK 路径,比如像我自己的 JDK 路径,那就改为了 如下所示

“export JAVA_HOME=/usr/jvm/jdk1.7.0_40”

配置 Hadoop 的核心文件 core-site.xml

打开文件,会发现标签 <configuration></configuration> 中是空的,在空的地方添加如下配置

<property>

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

<value>hdfs://localhost:9000</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

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

<value>/home/baoshan/tmp</value>

</property>

(注意:在最后一个value值中,上面是baoshan,是因为那是我的用户名,所以你需要将那个修改为你自己的用户名)

配置 Hadoop 中 MapReduce 的配置文件 mapred-site.xml

打开文件,会发现标签 <configuration></configuration> 中是空的,在空的地方添加如下配置

<property>

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

<value>localhost:9001</value>

</property>

第七步: 格式化Hadoop文件系统HDFS并启动Hadoop

首次运行 hadoop 必须进行格式化 Hadoop 文件系统,以后运行即可跳过。打开命令行,进入安装了 Hadoop 的文件路径下,然后在命令行输入

bin/hadoop namenode -format

格式化文件系统,然后启动 Hadoop ,在命令行里面输入

bin/start-all.sh

验证是否正常启动,在命令行里面输入 jps ,然后回车,如果在命令行里面出现如下类似画面(因为前面的数字可以不同)

3235 NameNode

4113 Jps

3819 JobTracker

4059 TaskTracker

3721 SecondaryNameNode

3487 DataNode

则说明已经正常启动。如果以后需要关闭 Hadoop 的话,在 Hadoop 安装的文件夹路径下面在命令行输入

bin/stop-all.sh

来关闭 Hadoop 。

第八步: 跑一个Hadoop中自带的WordCount程序,来体验一把

步骤如下(我在自己平台上的,读者可仿照实验):

1) 准备一个文本文件

首先我在桌面,新建了一个空白文档 test ,在里面输入一段话,或是几一些什么 单 词什么的,保存。

2) 将文本文件上传到 dfs 文件系统中的 input 目录下,打开命令行,进入到安装 hadoop 的文件夹下,然后输入如下

bin/hadoop dfs -copyFromLocal /home/baoshan/桌面/test input

(注:如果 dfs 中不包含 input 目录的话就会自动创建一个)

3) 然后在命令行中输入如下命令,执行 WordCount 程序

bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output

(注:因为这个程序是 Hadoop 安装包里面自带的,就在 hadoop-examples-1.2.1.jar 中,后面的数字因为版本号的不同而不同,后面的 input 代表输入文件夹, output 代表输出文件夹 , 系统输出时会自动创建)

读者如果这个执行成功了,就会发现有很多输出信息,从屏幕上显示,当程序运行结束后。

4) 察看结果 在命令行里面输入

bin/hadoop dfs -cat output/part-r-00000

现在你就可以看见自己刚才输入文本里面的单词计数了。

至此,伪分布式搭建结束!
相关主题

HadoopHadoop
分布式系统分布式系统

如果你感兴趣
分享该文章

超详细解说Hadoop伪分布式搭建--实战验证【转】的更多相关文章

  1. Hadoop伪分布式搭建(一)

     下面内容主要说明在Windows虚拟机上面,怎么搭建一个Hadoop伪分布式,并如何运行wordcount程序和网页查看HDFS文件系统. 1 相关软件下载和安装 APACH官网提供hadoop版本 ...

  2. Hadoop伪分布式搭建步骤

    说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1  JAVA :jdk7 32位:本文是本人在网络上收集的HADOOP系列视频所附带的 ...

  3. hadoop 伪分布式搭建

    下载hadoop1.0.4版本,和jdk1.6版本或更高版本:1. 安装JDK,安装目录大家可以自定义,下面是我的安装目录: /usr/jdk1.6.0_22 配置环境变量: [root@hadoop ...

  4. Hadoop伪分布式搭建CentOS

    所需软件及版本: jdk-7u80-linux-x64.tar.gz hadoop-2.6.0.tar.gz 1.安装JDK Hadoop 在需在JDK下运行,注意JDK最好使用Oracle的否则可能 ...

  5. hadoop伪分布式搭建

    安装好jdk 减压hadoop压缩包 cd /home/hadoop/hadoop-2.7.3/etc/hadoop vi hadoop-env.sh 文件末尾处添加 jdk环境变量 export J ...

  6. Hadoop简介与伪分布式搭建—DAY01

    一.  Hadoop的一些相关概念及思想 1.hadoop的核心组成: (1)hdfs分布式文件系统 (2)mapreduce 分布式批处理运算框架 (3)yarn 分布式资源调度系统 2.hadoo ...

  7. hadoop2.8 集群 1 (伪分布式搭建)

    简介: 关于完整分布式请参考: hadoop2.8 ha 集群搭建   [七台机器的集群] Hadoop:(hadoop2.8) Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户 ...

  8. 大数据攻城狮之Hadoop伪分布式篇

    对于初学大数据的萌新来说,初次接触Hadoop伪分布式搭建的同学可能是一脸萌笔的,那么这一次小编就手把手的教大家在centos7下搭建Hadoop伪分布式. 底层环境: VMware Workstat ...

  9. Hadoop伪分布式集群环境搭建

    本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...

随机推荐

  1. line-height测量及使用

    1.line-height定义 line-height表示行高,即两行文字基线间的距离. 以下是图示说明: 行高是2条红线之间的距离,即:1+2+3+4 在实际测量中,基线不好找,可测量顶线到顶线的距 ...

  2. Loader拉取图片,由于redirect重定向,导致策略文件无效 设置checkPolicyFile后还是无效:需要一个策略文件,但在加载此媒体时未设置 checkPolicyFile 标志

    大家好,在这里分享一下flash里边处理redirect的方法. 一般而言,大家不会遇到这个问题,毕竟图片地址一般杠杠的,不会redirect.但昨天在拉取空间的照片就会出现redirect.神啊!! ...

  3. maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4

      maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4 CreateTime--201 ...

  4. js insertBefore

    <select id="city" size="4" style="width:50px"> <option id=&qu ...

  5. [转载]ubuntu发热问题解决

    原文地址:ubuntu发热问题解决作者:raosea 没事装了个ubuntu12.04玩玩. 用wubi安装,很省事的 .完了以后启动了系统,界面蛮好看.可是不久令人费心的事情出来了. 我发现本本的右 ...

  6. 苹果越狱后必备软件,总有你需要的!11月23日追加14个,支持【iOS4】

    http://bbs.dospy.com/thread-7398730-1-301-2.html越狱后必备软件,总有你需要的!11月23日追加14个,支持[iOS4]   背景自定义插件

  7. 快速掌握activity的生命周期

    activity的生命周期不管是在面试还是在工作中我们都会经常遇到,这当然也是非常基础的,基础也很重要哦,学会activity的生命周期对我们以后开发更健壮的程序会有很大帮助.下面来看一下Activi ...

  8. C#基础 - C# 的 常见概念简述

    在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...

  9. Python练习笔记——计算输入日期为改年的第几天、星期几

    # 输入年月日,如:1995年12月10日,计算是该年的第几天?# 同时计算出当天是星期几? print("请依据提示依次输入您想查询的年 月 日") # 第一段代码块(年月日输入 ...

  10. C#Copy

    1.浅拷贝(值类型): public class LightCopy { public int Val { get; set; } public LightCopy(int ival) { Val = ...