Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) - 狂奔的蜗牛 - 博客频道 - CSDN.NET http://blog.csdn.net/hitwengqi/article/details/8008203]

最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文。

首先要了解一下Hadoop的运行模式:

单机模式(standalone)
       单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
伪分布模式(Pseudo-Distributed Mode)
      伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。
      全分布模式(Fully Distributed Mode)
     Hadoop守护进程运行在一个集群上。

版本:ubuntu 10.04.4,hadoop 1.0.2

1.添加hadoop用户到系统用户

安装前要做一件事——添加一个名为hadoop到系统用户,专门用来做Hadoop测试。

[html] view plaincopy
  1. ~$ sudo addgroup hadoop
  2. ~$ sudo adduser --ingroup hadoop hadoop

现在只是添加了一个用户hadoop,它并不具备管理员权限,因此我们需要将用户hadoop添加到管理员组:

[html] view plaincopy
  1. ~$ sudo usermod -aG admin hadoop


2.安装ssh

由于Hadoop用ssh通信,先安装ssh

[html] view plaincopy
  1. ~$ sudo apt-get install openssh-server

ssh安装完成以后,先启动服务:

[html] view plaincopy
  1. ~$ sudo /etc/init.d/ssh start

启动后,可以通过如下命令查看服务是否正确启动:

[html] view plaincopy
  1. ~$ ps -e | grep ssh

作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:

[html] view plaincopy
  1. hadoop@scgm-ProBook:~$ ssh-keygen -t rsa -P ""

因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):

[html] view plaincopy
  1. ~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

现在可以登入ssh确认以后登录时不用输入密码:

[html] view plaincopy
  1. ~$ ssh localhost

登出:

[html] view plaincopy
  1. ~$ exit

第二次登录:

[html] view plaincopy
  1. ~$ ssh localhost

登出:

[html] view plaincopy
  1. ~$ exit

这样以后登录就不用输入密码了。

3.安装Java

[html] view plaincopy
  1. ~$ sudo apt-get install openjdk-6-jdk
  2. ~$ java -version

4.安装hadoop 1.0.2

到官网下载hadoop源文件,这里选择hadoop 1.0.2

解压并放到你希望的目录中。我是放到/usr/local/hadoop

[html] view plaincopy
  1. ~$ sudo tar xzf hadoop-1.0.2.tar.gz
  2. ~$ sudo mv hadoop-1.0.2 /usr/local/hadoop

要确保所有的操作都是在用户hadoop下完成的:

[html] view plaincopy
  1. ~$ sudo chown -R hadoop:hadoop /usr/local/hadoop


5.设定hadoop-env.sh(Java 安装路径)

进入hadoop目录,打开conf目录下到hadoop-env.sh,添加以下信息:
            export JAVA_HOME=/usr/lib/jvm/java-6-openjdk (视你机器的java安装路径而定)
            export HADOOP_HOME=/usr/local/hadoop
            export PATH=$PATH:/usr/local/hadoop/bin

并且,让环境变量配置生效source

[html] view plaincopy
  1. ~$ source /usr/local/hadoop/conf/hadoop-env.sh

至此,hadoop的单机模式已经安装成功。


于是,运行一下hadoop自带的例子WordCount来感受以下MapReduce过程:

在hadoop目录下新建input文件夹

[html] view plaincopy
  1. ~$ mkdir input

将conf中的所有文件拷贝到input文件夹中

[html] view plaincopy
  1. ~$ cp conf/* input<span style="font-family: Arial, Helvetica, sans-serif; white-space: normal; background-color: rgb(255, 255, 255); "> </span>

运行WordCount程序,并将结果保存到output中

[html] view plaincopy
  1. ~$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output

运行

[html] view plaincopy
  1. ~$ cat output/*

你会看到conf所有文件的单词和频数都被统计出来。

下面是伪分布模式需要的一些配置,继续。

6.设定*-site.xml
这里需要设定3个文件:core-site.xml,hdfs-site.xml,mapred-site.xml,都在/usr/local/hadoop/conf目录下
core-site.xml:  Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml:  Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。

首先在hadoop目录下新建几个文件夹

[html] view plaincopy
  1. ~/hadoop$ mkdir tmp
  2. ~/hadoop$ mkdir hdfs
  3. ~/hadoop$ mkdir hdfs/name
  4. ~/hadoop$ mkdir hdfs/data

接下来编辑那三个文件:

core-site.xml:

[html] view plaincopy
  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://localhost:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/usr/local/hadoop/tmp</value>
  9. </property>
  10. </configuration>

hdfs-site.xml:

[html] view plaincopy
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.name.dir</name>
  8. <value>/usr/local/hadoop/hdfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.data.dir</name>
  12. <value>/usr/local/hadoop/hdfs/data</value>
  13. </property>
  14. </configuration>

mapred-site.xml:

[html] view plaincopy
  1. <configuration>
  2. <property>
  3. <name>mapred.job.tracker</name>
  4. <value>localhost:9001</value>
  5. </property>
  6. </configuration>

7.格式化HDFS

通过以上步骤,我们已经设定好Hadoop单机测试到环境,接着就是启动Hadoop到相关服务,格式化namenode,secondarynamenode,tasktracker:

[html] view plaincopy
  1. ~$ source /usr/local/hadoop/conf/hadoop-env.sh
  2. ~$ hadoop namenode -format


8.启动Hadoop

接着执行start-all.sh来启动所有服务,包括namenode,datanode,start-all.sh脚本用来装载守护进程。

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ cd bin
  2. hadoop@ubuntu:/usr/local/hadoop/bin$ start-all.sh

用Java的jps命令列出所有守护进程来验证安装成功

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ jps

出现如下列表,表明成功

9.检查运行状态
所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常,在Hadoop中用于监控集群健康状态的Web界面:
http://localhost:50030/     - Hadoop 管理介面
http://localhost:50060/     - Hadoop Task Tracker 状态
http://localhost:50070/     - Hadoop DFS 状态

Hadoop 管理介面:

Hadoop Task Tracker 状态:

Hadoop DFS 状态:

至此,hadoop的伪分布模式已经安装成功,于是,再次在伪分布模式下运行一下hadoop自带的例子WordCount来感受以下MapReduce过程:

这时注意程序是在文件系统dfs运行的,创建的文件也都基于文件系统:

首先在dfs中创建input目录

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -mkdir input

将conf中的文件拷贝到dfs中的input

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ hadoop dfs -copyFromLocal conf/* input

在伪分布式模式下运行WordCount

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ hadoop jar hadoop-examples-1.0.2.jar wordcount input output

可看到以下过程

显示输出结果

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ hadoop dfs -cat output/*

当Hadoop结束时,可以通过stop-all.sh脚本来关闭Hadoop的守护进程

[html] view plaincopy
  1. hadoop@ubuntu:/usr/local/hadoop$ bin/stop-all.sh

10.结语

在ubuntu上搭建hadoop成功!有点小兴奋,已经迫不及待的想开始做一些相关的开发及深入理解hadoop内核实现,继续加油咯!

PS:单机模式和伪分布模式均用于开发和调试的目的。真实Hadoop集群的运行采用的是第三种模式,即全分布模式。待续。

本文为转载,特别说明几点:

1 安装的时候,注意xml文件的配置。

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) - 狂奔的蜗牛 - 博客频道 - CSDN.NET http://blog.csdn.net/hitwengqi/article/detai相关推荐

  1. SUSE上搭建Hadoop环境(单机模式+伪分布模式)

    为什么80%的码农都做不了架构师?>>>    [环境]: 经常遭遇因为依赖软件版本不匹配导致的问题,这次大意了,以为java问题不大,就用本来通过yast安装的java1.6 op ...

  2. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)

    1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...

  3. 在ubuntu上搭建开发环境9---Ubuntu删除ibus出现的问题及解决

    删除 ibus输入法: sudo apt-get install ibus 我们会遇到下面的问题 Ubuntu 14.04 系统设置很多选项消失. 其实遇到这个问题的一个最主要的原因是之前执行过卸载i ...

  4. 在Ubuntu上搭建Maemo 5及Qt 4开发环境

    Maemo 是Linux的一个嵌入式发行版,支持ARM构架,其开发环境自然是桌面Linux了.由于Maemo使用了Debian包管理系统,所以最好还是在Debian或者Ubuntu上搭建开发环境了(目 ...

  5. Ubuntu上安装Hadoop集群

    戳蓝字"CSDN云计算"关注我们哦! 前面我们介绍了在Ubuntu上安装Hadoop单机版.但是我们知道,Hadoop在实际工作中都是以集群的形式存在的,毕竟需要处理大量的数据,单 ...

  6. 云服务器搭建hadoop环境心得

    本文参考博主-寒冰晓撤-的博文,在此基础上搭建hadoop环境,在她的基础上做了一些补充 0.背景 网上的教程一般是在自己的电脑上安装一台虚拟机,然后载入CentOS环境,为满足集群化 的效果,于是克 ...

  7. [云原生专题-16]:容器 - 在Windows主机上搭建Docker环境

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  8. Windows 7 64位系统上搭建Hadoop伪分布式环境(很详细)

    在开始配置前,我们先了解Hadoop的三种运行模式. Hadoop的三种运行模式 独立(或本地)模式:无需运行任何守护进程,所有程序都在同一个JVM上执行.在独立模式下测试和调试MapReduce程序 ...

  9. hadoop历史背景hdfs分布式文件系统hadoop的集群模式单机模式伪分布

    hadoop历史背景&hdfs分布式文件系统&hadoop的集群模式&单机模式&伪分布 1.hadoop的历史背景 lucense ---->nutch----& ...

  10. 在多台机器上搭建Hadoop的分布式环境

    2019独角兽企业重金招聘Python工程师标准>>> 分布式环境搭建之环境介绍 之前我们已经介绍了如何在单机上搭建伪分布式的Hadoop环境,而在实际情况中,肯定都是多机器多节点的 ...

最新文章

  1. EEG数据、伪影的查看与清洗
  2. PYQT中QThread输出到textBrowser
  3. 板邓:php获取数组元素个数
  4. ashx 绝对路径得到物理路径
  5. 论文发表在什么期刊上_医学论文发表期刊论文范文
  6. shell从oracle中获取变量,shell 如何读取环境变量的值
  7. vue3,对比 vue2 有什么优点?
  8. 垂涎欲滴!30个美味的食品类移动应用程序【下篇】
  9. 如何在 Django REST Framework 中对分页结果过滤和排序?
  10. 【Android Studio安装部署系列】二十二、Android studio自动生成set、get方法
  11. 基于JavaWeb的幼儿园信息管理
  12. 卓越的社会化营销人的6个习惯
  13. 用excel制作,出入库信息管理表,动态库存表
  14. 半导体PN结的工作原理
  15. MVX相关设计模式的理解。
  16. 显示器偏色测试软件,显示器偏色,如何解决显示器偏色?
  17. 算法 树7 二叉搜索树的操作集
  18. 数据挖掘与数据分析的区别
  19. 如何通过网络ActiveSync同步
  20. 玲珑学院 1127 咸鱼文章

热门文章

  1. macsv服务器状态,macsv操作员站下装过程及服务器下装过程备课讲稿.pdf
  2. 多算科技的报表工具BI-山海鲸可视化
  3. Pale Moon 苍月浏览器 24.0.1 发布
  4. 还没收到win11系统的推送?教你这样可以直接升级win11
  5. 知识管理系统,帮你挖掘出企业90%的隐性知识
  6. 四象限变频器技术介绍
  7. dhtmlx-Gantt(甘特图) 学习开发手册--第一章
  8. 代码练习——数组_实战
  9. scikit-learn 线性回归算法
  10. scikit-learn 线性回归算法库小结