`
tmj_159
  • 浏览: 707127 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

Hadoop 单节点的部署(来自翻译官方文档和自我实践)

 
阅读更多

英文参考文档链接如下:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

 

这篇文章描述了单节点的伪分布式hadoop部署。下面是我根据官方文档进行自我部署测试 。

 

一、写在前面的话

       hadoop包括的东西很多,而且文档上的东西也不一定全都正确 ,再加上运行环境的多样化,学习中途出现各种问题是很常见的,遇到问题的时候,先自己花点时间想想能不能自己解决,如果不能再上网找方法,既然都准备要学习它了,就要有自信,hadoop在牛逼也是一种技术,是技术就没有学不会的。

       还有我的个人建议是不要一上来就开始跑hadoop这种hello级别的例子,先自己了解下hadoop是什么,主要包括哪些方面,这些东西又是干什么的。这时候我们不知道具体操作,但是心里有点概念会让自己对后面学习过程中的一些步骤多些理解。

 

二、说说环境

       操作系统:看官网推荐的是ubuntu系统,所以我用的是64bit 的ubuntu12.10这个版本

       必要软件:ssh 用 apt-get install ssh

                        rsync 用 apt-get install rsync

                        java 用 orache 的 64bit 7u55版本,安装方法见链接

                        hadoop 上官网下2.6.0的stable版本

 

三、准备工作

    将下载的hadoop 解压到/usr/local/下

cp hadoop-2.6.0.tar /usr/local
cd /usr/local
tar xf hadoop-2.6.0.tar
    修改配置文件,我用的是vim,也可以用其他的工具,安装的话也是apt-get install vim

 

 

vim /usr/local/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
    在26行,修改java home的路径 

 

 

export JAVA_HOME="/usr/local/java/jdk1.7.0_55"
    我没有找到 HADOOP_PREFIX的内容所有没有加下面的内容

 

 

export HADOOP_PREFIX=/usr/local/hadoop
    运行hadoop应该会有下面的一些命令提示

 

 

root@mtang-VirtualBox:/usr/local/hadoop-2.6.0/bin# ./hadoop
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings
 or
  CLASSNAME            run the class named CLASSNAME
 

 

四、独立的hadoop

独立的就是没有配置任何分布式特性的,默认的就是这样,这比较方便调试,下面的命令可以让给你看到点输出信息。

 

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*
 

 

五、伪分布式hadoop

 

5.1 修改配置文件

将下面的内容拷贝到你的配置文件/usr/local/hadoop-2.6.0/etc/hadoop/core-site.xml ,刚打开的时候应该是自由<configuration>,中间是空的。

 

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
 如上,拷贝下面内容到配置文件/usr/local/hadoop-2.6.0/etc/hadoop/hdfs-site.xml

 

 

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
 

 

5.2 设置免密码的ssh

       首先试下下面的命令ssh localhost看是否需要密码,如果要那么执行下面的命令,$表示一行的开头,不要拷贝进去了。

 

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
       上面的命令是生成一个证书,然后通过这个证书完成免密码ssh连接

 

 

5.3 开始执行吧

      1. 格式化文件系统,这次我们用到了HDFS了,HDFS是一种分布文件系统,对分布式文件系统不了解的就先把它当作本地的文件系统,FAT32,NTFS之类的,再简单点说就是你的硬盘,这次的任务是格式化你的"硬盘“

 

/usr/local/hadoop-2.6.0/bin/hdfs namenode -format
   

 

   2.接下来我们启动我们的namenode,namenode是hdfs的内容

 

/usr/local/hadoop-2.6.0/sbin/start-dfs.sh
   

 

   3. 这时候我们可以通过浏览器查看namenode的界面,在浏览器输入下面内容,当然如果不是本机localhost换成机器IP吧。

 

http://localhost:50070/
   

 

   4. 在dfs上创建目录吧,用来存放待处理的文件的

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -mkdir -p /user/root/input

 

 

    5. 把本地待处理的文件拷贝到dfs上的

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -put /usr/local/hadoop-2.6.0/etc/hadoop/* /user/root/input
 

 

    6. 接下来我们就可以运行期待的已久的hadoop分析任务了,注意是一行

 

/usr/local/hadoop-2.6.0/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
    如果你多次运行上面的命令碰巧出现下面的错误的话

 

 

org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/root/output already exists
    你需要先删除这个文件夹

 

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -rm -r /user/root/output
 

 

    7. 好了,运行完了,把结果拷贝到本地磁盘看看

/usr/local/hadoop-2.6.0/bin/hdfs dfs -get /user/root/output /root/output

    看看结果

 

cat /root/output/*
   其实也可以不用拷贝,直接在hfs上看的
/usr/local/hadoop-2.6.0/bin/hdfs dfs -cat /user/root/output/*
    我的结果是这样的
6	dfs.audit.logger
4	dfs.class
3	dfs.server.namenode.
2	dfs.period
2	dfs.audit.log.maxfilesize
2	dfs.audit.log.maxbackupindex
1	dfsmetrics.log
1	dfsadmin
1	dfs.servers
1	dfs.replication
1	dfs.file
   
    8. 别忘了擦屁股,dfs关了
/usr/local/hadoop-2.6.0/sbin/stop-dfs.sh
    
六、YARN的伪分布式hadoop
    YARN 作为第二代map/reduce框架,是必然要替代第一代的,这里我们不管,既然是map/reduce的替代,现在我们运行应该就是替换map/reduce相关的内容,其他的不用动吧。
注:下面的路径我不写全了,假设已经cd到/usr/local/hadoop-*下了
    1. 我们修改配置文件,etc/hadoop/mapred-site.xml,我们可能找不到这个文件,但是我们有mapred-site.xml.template,先拷贝一份出来吧
cp mapred-site.xml.template mapred-site.xml
   然后加入下面内容
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
 然后继续修改 etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
   2. 然后启动
sbin/start-yarn.sh
    3. 打开网页可以查看ResourceManager 的页面
http://localhost:8088/
    4. 运行mapreduce的任务
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
    当你运行的时候可能会遇到Connect refused 的错误,提示服务器9000拒绝,然后我们回到前面看看哪里用了9000端口会发现DFS用了,所以继续定位重新启动dfs ,etc/hadoop/start-dfs.sh的日志会发现datanode没有启动,而且会有java.io.IOException: Incompatible clusterIDs的错误,上网查了下是因为做format 的时候没有清空dataNode下的data目录引起的,一个可行的解决方法是手动删除data目录下所有文件。
看下datanode 的日志 ,一般在%hadoop_home%/logs/下,我们会发先我们的datanode的data目录为/tmp/hadoop-root/dfs/data,手动删除即可。
P.S 如果不想这么麻烦就把tmp下的全删除吧,反正我的只有hadoop 相关的内容,当然这个路径是可以设置的,然后从hdfs format开始,again。(亲测可用,来来回回好多遍命令基本都记住了,format namenode ,启动hdfs,创建目录拷贝文件,启动yarn,运行map/reduce任务,查看结果,关闭hdfs和yarn服务,so easy).
    5. 停止
sbin/stop-yarn.sh
    6. 看结果,方法和以前一样

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Hadoop2.0部署文档

    【Hadoop 2.0 部署详解】 在大数据处理领域,Apache Hadoop 是一个不可或缺的开源框架,尤其在大规模数据存储和处理方面表现出强大的能力。Hadoop 2.0 引入了高可用性(HA)特性,极大地提高了系统的稳定性。本文将...

    Hadoop与HBase部署文档

    【Hadoop与HBase部署文档】 Hadoop是一个开源的分布式计算框架,主要由Apache基金会维护。它被设计成能够处理和存储大量数据,是大数据处理领域的重要工具。Hadoop的核心组件包括HDFS(Hadoop Distributed File ...

    hadoop1.2.1安装部署文档

    - **Hadoop 官网地址**:官方网站提供了详细的文档和技术支持,是学习 Hadoop 的最佳起点。 - **Hadoop 1.2.1 下载地址**:具体下载地址可以从官方网站获取,确保下载的是官方发布的稳定版本。 #### 二、HDFS...

    Hadoop伪分布式部署文档(包括本地开发环境,eclipse远程连接Hadoop服务器)

    Hadoop伪分布式部署文档是指在单台机器上模拟分布式Hadoop集群的部署文档,包括服务器伪分布式部署、本地Hadoop开发环境部署、Eclipse远程连接Hadoop服务器等内容。下面是该文档的详细解释: 首先,需要安装JDK,...

    Hadoop单机与集群部署笔记.docx

    - Apache Hadoop官方文档提供了不同Java版本的兼容性测试结果:[https://wiki.apache.org/hadoop/HadoopJavaVersions](https://wiki.apache.org/hadoop/HadoopJavaVersions)。 - **配置环境变量:** - 追加Java...

    Hadoop 2.0安装部署方法

    本文档提供了Hadoop 2.0在Linux系统上安装部署的详细步骤和方法。 一、准备工作 首先,需要准备足够的硬件资源和软件包。硬件方面,测试环境通常需要一台配置较高(建议内存不小于4GB)的PC或服务器,而生产环境则...

    HADOOP安装部署文档

    本文将详细介绍如何在Linux环境下安装和部署Hadoop,包括硬件环境准备、目录结构规划、SSH设置、环境变量配置、Hadoop配置文件的编辑以及Hadoop的启动和基本操作。 首先,下载Hadoop安装文件。Apache官方提供了不同...

    hadoop官方文档中文档

    通过阅读这份“Hadoop官方文档中文版”,开发者和管理员可以深入了解Hadoop的工作原理、配置方法、最佳实践以及如何解决常见问题,从而更好地利用Hadoop处理大数据挑战。这份文档对于学习和掌握Hadoop技术至关重要,...

    Hadoop2.2部署文档

    本文档旨在为初学者提供一个清晰、详尽的Hadoop部署流程,包括单机伪分布模式和多节点集群的安装与配置,帮助读者快速理解Hadoop的核心概念和实际操作。 1.2 背景 在Linux环境下部署Hadoop,需要对操作系统有基本的...

    单机下Hadoop部署与配置

    本文档旨在详细介绍如何在单节点环境下安装、配置并运行Hadoop集群的过程。通过本教程的学习,读者将能够掌握在Ubuntu Linux系统上搭建单机Hadoop集群的基本步骤,包括环境准备、软件安装与配置、启动及测试等环节。...

    hadoop官方文档

    Hadoop官方文档是学习和使用Hadoop的重要资源,不仅提供了详细的安装和配置指南,还深入解析了Hadoop的核心组件和高级功能。无论是初学者还是经验丰富的开发者,都能从中获得有价值的信息,帮助他们在大数据领域取得...

    Hadoop部署实验.docx

    该文档旨在帮助读者了解 Hadoop 的基本架构、HDFS 和 MapReduce 的原理,并掌握 Hadoop 的多节点部署过程和 MapReduce 应用程序的实践。 一、Hadoop 概念 1. Hadoop 是一个能够对海量数据进行分布式处理的系统架构...

    Hadoop安装部署及教学

    本教程涵盖了Hadoop的安装部署及教学,旨在帮助初学者和进阶者全面理解并掌握这一分布式计算框架。以下将详细阐述Hadoop的相关知识点,包括其概念、架构、安装步骤、配置优化以及实际应用。 一、Hadoop概述 Hadoop...

    Hadoop集群部署文档

    【Hadoop集群部署文档】 Hadoop是一个开源的分布式计算框架,允许在大规模集群上处理大量数据。本文档基于作者的实际部署经验,详细介绍了在多台机器上构建Hadoop集群的步骤,特别适合初学者和寻求深入理解Hadoop...

    hadoop中文文档

    5. **Hadoop集群设置**:部署Hadoop集群涉及配置多个节点,包括设置HDFS和MapReduce的配置参数,如副本数量、内存分配等。集群中的节点可以通过Hadoop的ResourceManager和NodeManager进行管理和监控。 6. **Hadoop...

    基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc

    本文档将详细介绍如何利用Hadoop进行网站日志分析的实践过程,涵盖了从数据获取、Hadoop环境搭建到数据处理和存储的全过程。 1. 项目概述: 该项目主要针对一个由技术培训机构主办的技术学习论坛的日志数据进行分析...

    Hadoop2.7.1中文文档

    总的来说,Hadoop2.7.1中文文档是一个宝贵的资源,涵盖了Hadoop的基本概念、架构、配置、使用和最佳实践。无论你是初学者还是经验丰富的开发者,都能从中获取有价值的信息,提升自己在大数据领域的技能。通过深入...

    Hadoop+Zookeeper+Hbase+Hive部署.doc

    大数据平台搭建之 ...大数据平台搭建需要经过多个步骤,包括环境准备、Hadoop 安装和配置、Zookeeper 部署、Hbase 部署和 Hive 部署。通过本文档,我们可以了解大数据平台搭建的整个过程,并掌握相关的技术和经验。

Global site tag (gtag.js) - Google Analytics