`
vampire1126
  • 浏览: 88085 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Hadoop环境搭建——单节点篇

阅读更多

      自漫聊1.0发布以来,研究Hadoop也有一段时间了,目前环境已基本搭建好,规模为15台的小型集群,昨晚测试时是用wordcount统计一个1.2G的log文件,总耗时2分16秒,虽然测试文件不大,但其性能的优越性已经体现出来了。

 

      闲话不多说了,进正题。

 

     注:本文的环境搭建是针对双系统和linux系统的,而非win下的虚拟机!

 

    流程:

         装机阶段: 安装ubuntu,jdk和hadoop

                         创建一个名为hadoop的用户和用户组

         配置阶段: 配置环境变量

                         创建ssh key

                         配置hadoop

         运行测试阶段: 格式化namenode

                               启动hadoop

                               跑wordcount

      准备:

          ubuntu 10.10

          hadoop 0.21.0

          jdk1.6.0_23 for linux

    装机阶段:

          1、安装ubuntu10.10

               wubi的傻瓜式安装应该不用我多说了吧,在win下用虚拟光驱载入,然后执行.......另外补充下,安装时最好断开网络连接(我们是直接拔的网线),因为ubuntu安装过程中需要更新一些语言包之类的东西,那些东西与我们要做的事没什么关系,下载时间又长,所以建议不更新。

 

          2、安装jdk1.6.0_23

                有多种方法,此处只介绍一种

                1、在usr下面新建一个文件夹Java,然后将jdk复制过来(也可直接mv过来)

                       sudo mkdir /usr/Java

                       sudo cp jdk的路径 /usr/Java

                  

                   2、进入到Java目录下,改变文件权限为可执行

                       cd /usr/Java 

                       sudo chmod u+x jdk1.6.0_23.bin

 

                   3、执行安装

                       sudo ./jdk1.6.0_23.bin

                       (现象为Unpacking....加一连串解压信息)

 

              3、安装hadoop0.21.0

                      1、将hadoop0.21.0.tar.gz复制到usr下面的local文件夹内(也可mv)

                        sudo cp hadoop的路径 /usr/local

 

                    2、进入到local目录下,解压hadoop0.21.0.tar.gz

                        cd /usr/local

                        sudo tar -xzf hadoop0.21.0.tar.gz

 

                    3、为了方便管理,将解压后的文件夹名改为hadoop

                        sudo mv hadoop0.21.0 hadoop

 

              4、创建一个名为hadoop的用户和用户组

                  1、创建一个名为hadoop的用户组

                        sudo addgroup hadoop

 

                    2、创建一个名为hadoop的用户,归到hadoop用户组下

                        sudo adduser --ingroup hadoop hadoop

                        (注1:前一个hadoop为用户组名,后面的是用户名,之所以名字一样是为了方便统一管理

                         注2:执行后会有一些信息需要填写,可以不填,都敲回车,用系统默认的即可,大概5个吧)

 

                    3、用gedit打开etc下的sudoers文件

                        sudo gedit /etc/sudoers

 

                    4、在 root   ALL=(ALL)  ALL 下面添加如下一行,然后保存关闭gedit

                         hadoop  ALL=(ALL)  ALL

                        (注1:网上有文档上是说先切换到root用户,然后修改sudoers的权限,再打开添加

                                 hadoop  ALL=(ALL)  ALL ,然后再将权限改回为只读,这样就要特别注意一

                                 定要将权限改回为只读,不然“sudo”命令就无法使用了,很悲剧的说

                           注2:添加 hadoop  ALL=(ALL)  ALL 的意义在于能让hadoop用户使用“sudo”命令

 

 

      配置阶段:

           

           1、配置环境变量

                     1、用gedit打开etc下的profile文件

                        sudo gedit /etc/profile

 

                    2、在文件最后加入如下几行

      export CLASSPATH=.:/usr/Java/jdk1.6.0_23/lib:/usr/Java/jdk1.6.0_23/jre/lib:$CLASSPATH

      export PATH=.:/usr/Java/jdk1.6.0_23/bin:/usr/Java/jdk1.6.0_23/jre/bin:/usr/local/hadoop/bin:$PATH

                        (注1:以上所有jre项都不是必需的,可以不要

                         注2:在win中环境变量的值是以“;”号隔开的,而这里是“:”

                         注3:等号后面有个“.”别丢了,它表示当前目录)

 

                    3、保存后关闭gedit,并重启机器

                        sudo reboot

                        (注:网上也有说用source命令使环境变量立即生效的,但是本人在

                                实际操作时出了几次问题,所以建议重启机器最保险)

 

                    4、重启后用hadoop用户登录,验证配置是否成功

                        java -version  (此语句执行后如显示了jdk版本的话说明配置成功,如果没有则需检查profile中路径是否正确)

                        (注:最好是用hadoop用户登录,因为以下步骤都是以此为前提的)

 

 

                 2、创建ssh-key

                  1、确保网络通畅,然后装载ssh服务

                         sudo apt-get install openssh-server

                         (注:如果此语句执行失败且结果为“....包被占用”的话,那么应该是ubuntu的“更新管理器”正在后台更新,你可以选择等待或者关闭更新,更新管理器在“系统”菜单中,具体位置忘了.....)

 

                     2、创建ssh-key,为rsa (网上文档中也有dsa的)

                         ssh-keygen -t rsa --P

                         (注1:此语句网上文档为 ssh-keygen -t rsa -P "" ,效果一样

                            注2:此语句执行后会要你填写key的保存位置,直接照着系统给出的那个默认位置填,也就是括号里的那个路径,如果全都照此文档操作的话那么括号中路径应该为"/home/hadoop/.ssh/id_rsa")

 

                     3、将此ssh-key添加到信任列表中,并启用此ssh-key

                         cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

                         sudo /etc/init.d/ssh reload

 

                  3、配置hadoop

                  1、进入到hadoop目录下,配置conf目录下的hadoop-env.sh中的JAVA_HOME

                          cd /usr/local/hadoop

                          sudo gedit conf/hadoop-env.sh

                         (打开后在文档的上部某行有“#export JAVA_HOME=...”字样的地方,去掉“#”,

                           然后在等号后面填写你的jdk路径,完全按此文档来的话应改为 "export JAVA_HOME=/usr/Java/jdk1.6.0_23" )

 

                      2、配置conf目录下的core-site.xml

                          sudo gedit conf/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/hadoop/tmp</value> 
</property>
 

 

                       3、配置conf目录下的mapred-site.xml

                           sudo gedit conf/mapred-site.xml

                          (打开后标签<configuration> </configuration>中也是空的,添加如下配置)

 

<property> 
      <name>mapred.job.tracker</name> 
      <value>localhost:9001</value>
 </property> 
 

 

 

 

 

 

 

 

运行测试阶段:

                1、格式化namenode (首次运行必需滴)

                    1、保证此时在hadoop目录下,如不在请先进入hadoop目录

                           cd /usr/local/hadoop

 

                    2、格式化namenode

                           hadoop namenode -format

 

                   2、启动hadoop

                   1、修改hadoop文件夹的权限,保证hadoop用户能正常访问其中的文件

                           sudo chown -hR hadoop /usr/local/hadoop

 

                       2、启动hadoop

                           bin/start-all.sh

 

                       3、验证hadoop是否正常启动

                           jps

                          (此语句执行后会列出已启动的东西NameNode,JobTracker,SecondaryNameNode...如果NameNode没有成功启动的话就要先执行"bin/stop-all.sh"停掉所有东西,然后重新格式化namenode,再启动)

 

 

                    3、跑wordcount

                    1、准备需要进行wordcount的文件

                            sudo gedit /tmp/test.txt

                            (打开后随便输入一些内容,如"mu ha ha ni da ye da ye da",然后保存退出)

 

                        2、将准备的测试文件上传到dfs文件系统中的firstTest目录下

                            hadoop dfs -copyFromLocal /tmp/test.txt firstTest

                           (注:如dfs中不包含firstTest目录的话就会自动创建一个,关于查看dfs文件系统中已有目录的指令为"hadoop dfs -ls")

        

                        3、执行wordcount

                            hadoop jar hadoop-mapred-example0.21.0.jar wordcount firstTest result

                           (注:此语句意为“对firstTest下的所有文件执行wordcount,将统计结果输出到result文件夹中”,若result文件夹不存在则会自动创建一个)

 

                        4、查看结果

                            hadoop dfs -cat result/part-r-00000

                           (注:结果文件默认是输出到一个名为“part-r-*****”的文件中的,可用指令“hadoop dfs -ls result”查看result目录下包含哪些文件)

 

 

       至此单节点环境搭建完成!

 

      集群搭建请参见: http://vampire1126.iteye.com/blog/891735

分享到:
评论
6 楼 xiaoyao3857 2012-08-13  
Hadoop新手在这里请教:为什么我在解压得到的hadoop-0.21.0文件夹中运行bin/hdfs namenode -format和start-all.sh,却都说bin/hdfs不是命令,最奇怪的是为什么start-all.sh这个脚本为什么也运行不了?
我的系统是Ubuntu 11.10
5 楼 vampire1126 2011-08-09  
gengu 写道
我马上也要做一次环境的搭建了如果有问题就请教你了 嘿嘿

欢迎交流
4 楼 gengu 2011-08-09  
我马上也要做一次环境的搭建了如果有问题就请教你了 嘿嘿
3 楼 andyjackson 2011-03-28  
执行bin/hadoop dfs -put urls urls这个的时候报错~Bad connection to FS. command aborted.
解决:
 System.err.println("Version Mismatch between client and server ... command aborted.");
把你DataNode上的DFS数据全删了,再重新格式化NameNode。
2 楼 vampire1126 2011-03-11  
iorofeng 写道
按照你的步骤走下来之后,在格式化namenode的时候出现下面的错误,求解答(我用的是Ubuntu10.4版本,hadoop0.21.0)


非常抱歉,我又试了下,还是没有出现如上问题,我用的是Ubuntu10.10,要不你也用10.10试试吧
1 楼 iorofeng 2011-03-04  
按照你的步骤走下来之后,在格式化namenode的时候出现下面的错误,求解答(我用的是Ubuntu10.4版本,hadoop0.21.0)

2011-3-3 20:32:23 org.apache.hadoop.hdfs.server.namenode.NameNode main
严重: java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.apache.hadoop.mapred.JobConf.<clinit>(JobConf.java:343)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1074)
at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88)
at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:72)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:125)
at org.apache.hadoop.hdfs.server.namenode.BlockPlacementPolicy.getInstance(BlockPlacementPolicy.java:168)
at org.apache.hadoop.hdfs.server.namenode.BlockManager.setConfigurationParameters(BlockManager.java:144)
at org.apache.hadoop.hdfs.server.namenode.BlockManager.<init>(BlockManager.java:139)
at org.apache.hadoop.hdfs.server.namenode.BlockManager.<init>(BlockManager.java:130)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:390)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1240)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1348)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1368)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 15 more

相关推荐

    hadoop集群搭建——JDK的安装

    ### hadoop集群搭建——JDK的安装 #### 实验背景及目标 在部署Hadoop集群的过程中,第一步往往是安装Java Development Kit (JDK),因为Hadoop是基于Java开发的,因此在集群上的每个节点都需要安装JDK。本实验旨在...

    Hadoop课程实验和报告——Hadoop安装实验报告

    需要注意的是,Hadoop支持三种运行模式:单机单节点模式、单机多节点的伪分布模式和多机多节点分布模式。 二、Hadoop和Eclipse的结合 Hadoop可以与Eclipse集成,以便于项目的开发和调试。首先,需要下载Eclipse,...

    hadoop环境配置(单机集群)

    ### Hadoop环境配置详解——单机集群篇 #### 一、引言 随着大数据时代的到来,Hadoop作为处理海量数据的利器,其重要性不言而喻。本文旨在详细介绍如何在虚拟机上安装Hadoop环境,并搭建单机集群。通过图文并茂的...

    Hadoop平台搭建方案_hadoop_源码.zip

    本压缩包文件“Hadoop平台搭建方案_hadoop_源码.zip”包含了搭建Hadoop环境所需的详细步骤和源代码,对于学习和实践Hadoop的初学者或开发者来说,是一份宝贵的资源。 首先,我们来探讨Hadoop的核心组件: 1. ...

    【Hadoop篇02】Hadoop完全分布式环境搭建1

    在本文中,我们将深入探讨如何搭建一个Hadoop完全分布式环境,这是Hadoop篇的第二部分。Hadoop是一个开源的分布式计算框架,它允许在大规模集群上处理和存储大量数据。本文将介绍如何配置和部署Hadoop的各个组件,...

    Hadoop集群搭建部署与MapReduce程序关键点个性化开发.doc

    首先,我们来看任务1——Hadoop集群的部署。这一步至关重要,因为它为整个大数据处理系统提供了基础架构。在虚拟机中安装Ubuntu Kylin 16.04.4是常见的选择,因为这是一个稳定且支持Hadoop的Linux发行版。安装完成后...

    windows环境下的hadoop3.1.0依赖,winutils

    在Windows环境下搭建Hadoop 3.1.0的分布式文件系统需要解决一个重要依赖——WinUtils。这个组件是Hadoop在Windows上运行所必需的,因为Hadoop原本是为Linux环境设计的,它的一些核心功能,如文件操作和本地进程管理...

    使用hadoop实现WordCount实验报告.docx

    本实验旨在理解Hadoop分布式计算的基本原理,并熟悉Hadoop集群的搭建与管理。 ### 一、实验内容 **WordCount应用** 是Hadoop平台上的一个基础示例,它统计输入文件中的每个单词出现的次数。例如,输入文件包含...

    Hadoop集群搭建及Hive的安装与使用

    本教程将详细介绍如何搭建Hadoop集群以及安装和使用Hive。 首先,我们来了解Hadoop集群的搭建步骤: 1. **环境准备**:确保所有节点的操作系统一致,通常选择Linux发行版,如Ubuntu或CentOS。安装Java开发套件...

    hadoop2.6.4-ha集群搭建

    1. **NameNode HA**:Hadoop 2.0引入了NameNode HA机制,该机制支持两个NameNode实例——一个是处于活动状态的Active NameNode,另一个是处于备用状态的Standby NameNode。Active NameNode负责提供服务,而Standby ...

    零基础搭建Hadoop大数据处理

    在搭建Hadoop大数据处理环境的过程中,首先需要了解的是Hadoop运行的基础——Linux操作系统。Hadoop通常在Linux环境下运行,因为其分布式特性和稳定性。对于初学者,通常会在虚拟机上搭建Linux环境,例如使用VMware ...

    大数据培训零基础教学 Hadoop模式与搭建的相关问题.pdf

    本文将针对Hadoop的两种主要运行模式——本地模式和伪分布式模式,以及它们的搭建过程进行详细讲解,以帮助初学者更好地理解和掌握Hadoop。 **一、Hadoop运行模式** 1. **单机(非分布式)模式** 在单机模式下,...

    hadoop的winutils.exe工具和hadoop.dll

    不过,通过使用特定的工具,如winutils.exe和hadoop.dll,Windows用户也能顺利搭建Hadoop环境。下面我们将详细探讨这两个关键组件以及如何在Windows 10系统上配置Hadoop。 首先,winutils.exe是Hadoop在Windows系统...

    hadoop 实战开发

    1. **Hadoop安装与配置**:如何在本地或者集群环境中搭建Hadoop环境,包括配置Hadoop的环境变量、初始化HDFS、启动和停止Hadoop服务等。 2. **HDFS操作**:理解HDFS的工作原理,包括数据块、副本策略、命名节点和...

    hadoop-3.2.0部署及相关工具

    本篇文章将详细阐述如何部署Hadoop 3.2.0,并探讨与之相关的Eclipse插件及其在本地测试中的应用。 首先,我们来了解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是Hadoop的数据存储...

    Hadoop初步了解和在单机环境下的配置

    Hadoop还包括一个分布式文件系统——Hadoop Distributed File System(HDFS),用于在大规模计算机集群上存储数据。 **MapReduce计算模型** MapReduce是一种处理和生成大数据集的编程模型,由Google提出,被Hadoop...

    基于虚拟机集群hadoop2.7.1配置文件

    总之,搭建基于虚拟机集群的Hadoop 2.7.1涉及到多个层面的配置,包括环境设置、节点角色分配、服务配置等。通过正确配置上述文件,我们可以创建一个能够处理大量数据的分布式计算平台。这个过程不仅锻炼了对Hadoop的...

    hadoop 2.6.0 及Spark1.3.1平台搭建20150505-优化版

    本指南将详细介绍如何在基于 Hadoop 2.6.0 的环境中搭建 Spark 1.3.1 平台,以实现高效的数据处理。 首先,我们需要进行虚拟化环境的准备。这里推荐使用 VMware Workstation 11 作为虚拟化软件,它为开发和测试提供...

Global site tag (gtag.js) - Google Analytics