ITPub博客

首页 > 大数据 > Hadoop > Hadoop2.6.0从入门到精通系列之Hadoop 单节点安装与配置

Hadoop2.6.0从入门到精通系列之Hadoop 单节点安装与配置

原创 Hadoop 作者:jichuanlau07 时间:2015-04-04 01:28:02 0 删除 编辑

安装单节点的Hadoop集群

说明:本文翻译英文地址出自 Hadoop Apache 官方网站,如需参考英文,请参考官网。

完成目标

1、安装和配置单一节点的Haddop环境。
2、使用Hadoop MapReduce和 HDFS(Hadoop Distributed File System)进行简单操作。

Hadoop 支持的操作系统平台


  • GNU/Linux作为开发与产品平台被支持。在GNU/Linux平台上,Hadoop已经成功部署2000节点的集群。


  • Windows也是被支持的平台,但是以下的内容只涉及Linux。想在 Windows上安装Hadoop,参考 wiki。


需要的软件环境


  1. Java 必须在Linux系统中安装,推荐的Java版本信息参见 HadoopJavaVersions.
  2. ssh 必须安装,要使用Hadoop脚本管理远程Hadoop守护进程时会运行ssh。

说明:本人操作系统软件信息如下:
#用户信息
[root@HadoopMaster ~]# id       
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
#系统信息
[root@HadoopMaster ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
# JAVA 信息
[root@HadoopMaster ~]# java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)
[root@HadoopMaster ~]#

安装软件

 如果你的操作系统中没有以上所需的软件你需要参照以下方式进行安装。
以Ubuntu Linux为例:

  $ sudo apt-get install ssh
  $ sudo apt-get install rsync

安装完软件后,下面下载Hadoop安装介质。


下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz


启动Hadoop 集群

首先,创建Hadoop Base 目录,本人创建在根目录,命名为/hadoop/
#mkdir /hadoop

 然后,将下载的Hadoop软件介质从下载地址拷贝到/hadoop目录下,执行命名进行解压。
[root@HadoopMaster hadoop]# mv /download/hadoop-2.6.0.tar.gz   /hadoop/hadoop-2.6.0.tar.gz
[root@HadoopMaster hadoop]# tar xvf hadoop-2.6.0.tar.gz

进入到/hadoop/hadoop-2.6.0目录,编辑etc/hadoop/hadoop-env.sh文件,修改以下参数信息
[root@HadoopMaster hadoop]# cd hadoop-2.6.0
[root@HadoopMaster hadoop-2.6.0]# vi etc/hadoop/hadoop-env.sh

  #设置Java安装的路径,我的系统Java安装在/hadoop/jdk1.6.0_45目录下,安装Java的时候一定要注意32位还是64位版本。
  export JAVA_HOME=/hadoop/jdk1.6.0_45/

  # 设置HADOOP安装目录所在目录,本人未在etc/hadoop/hadoop-env.sh文件内找到该说明,所以未进行设置。
  export HADOOP_PREFIX=/hadoop
 执行以下命令,测试Hadoop环境可用性。
[root@HadoopMaster 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             run a jar file
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp   copy file or directories recursively
  archive -archiveName NAME -p  *  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

Most commands print help when invoked w/o parameters.
[root@HadoopMaster hadoop-2.6.0]# 

 #以上是hadoop 脚本命令的使用方法,出现上述信息说明安装成功。

 现在,你就准备好了,可以使用以下三种模式之一启动你的Hadoop集群了。

 本地模式操作

 默认情况下,Hadoop被配置成单一Java进程运行的非分布式模式,这样很利于调试。
 下面的例子拷贝解压的conf目录作为输入来使用,然后查找并显示所有匹配的正则表达式。并将查找结果写入到指定的目录。
  [hadoop@HadoopMaster hadoop]$ pwd
  /hadoop
  [hadoop@HadoopMaster hadoop]$ ls -l[root@HadoopMaster hadoop]# ll
  total 260832
  drwxr-xr-x 12 hadoop hadoop      4096 Mar 29 19:09 hadoop-2.6.0
  -rwxrwxr-x  1 hadoop hadoop 195257604 Mar 29 18:37 hadoop-2.6.0.tar.gz
  drwxr-xr-x  8 hadoop grid        4096 Mar 26  2013 jdk1.6.0_45
  -rwxr-xr-x  1 hadoop grid    71799552 Nov 26 09:28 jdk-6u45-linux-i586.bin
  drwxr-xr-x  2 hadoop grid       16384 Nov 26 08:54 lost+found
  $cd hadoop-2.6.0
  注:以上命令是本人主机环境,具体如何做根据个人情况执行,做完以上操作,继续以下操作。

  $ 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.]+'
 执行完成,未出现错误的情况下,查看结果。
 [hadoop@HadoopMaster hadoop-2.6.0]$ cat output/*
 [hadoop@HadoopMaster hadoop-2.6.0]$ cat output/* 
 1    dfsadmin 
 1    dfs.replication

注:以下结构是我主机上执行的结果。

[hadoop@HadoopMaster hadoop-2.6.0]$ ls -al output/
total 20
drwxrwxr-x  2 hadoop hadoop 4096 03-29 18:52 .
drwxr-xr-x 11 hadoop hadoop 4096 03-29 18:52 ..
-rw-r--r--  1 hadoop hadoop   11 03-29 18:52 part-r-00000
-rw-rw-r--  1 hadoop hadoop   12 03-29 18:52 .part-r-00000.crc
-rw-r--r--  1 hadoop hadoop    0 03-29 18:52 _SUCCESS
-rw-rw-r--  1 hadoop hadoop    8 03-29 18:52 ._SUCCESS.crc

以上操作主要功能是在Hadoop安装的目录下创建文件夹input,然后将 etc/hadoop/目录下的xml 文件拷贝到文件夹input下,通过执行hadoop命令调用java编写的jar程序share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 将input目录下的所有xml文件内包含dfs的内容写入到output目录下。

伪分布式操作

hadoop也能在单节点上以伪分布式模式运行,Hadoop守护进程以独立的Java进程运行。
配置:
etc/hadoop/core-site.xml:


    
        fs.defaultFS
        hdfs://localhost:9000
    


etc/hadoop/hdfs-site.xml:

    
        dfs.replication
        1
    

Setup passphraseless ssh 安装无密ssh(Secure Shell)

首先,检查是否可以通过在提供密码的情况下使用ssh命令连接到localhost主机。

  $ ssh localhost

如果不能在无密的情况下ssh到localhost,现在需要使用以下命令配置ssh信任。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

#注意:执行完成以上命令后,请确认 ~/.ssh/authorized_keys 文件的权限,一定要是644,否则,互信不会成功,导致无法正常通信,具体原因是由于SSH出于安全考虑。

操作步骤

以下命令是在本地执行MapReduce作业,如果想在YARN上执行作业,请参考YARN on Single Node.


	
    格式化文件系统:Format the filesystem:
         #cd /hadoop/hadoop-2.6.0/
  1.   $ bin/hdfs namenode -format
  2. 启动名称节点和数据节点后台进程:
      $ sbin/start-dfs.sh

    Hadoop守护进程日志输出被写入$HADOOP_LOG_DIR目录(默认为$HADOOP_HOME/logs)

  3. 浏览名称节点信息,在本地浏览器地址栏输入:http://192.168.9.21:50070,信息如下:
  4. 创建Hadoop Distributed File System(HDFS)
      $ bin/hdfs dfs -mkdir /user
      $ bin/hdfs dfs -mkdir /user/   #本人执行的是  $bin/hdfs dfs -mkdir /user/hadoop
  5. 拷贝本地的 etc/hadoop目录下的文件拷贝到分布式文件系统 /user/hadoop/input目录下:
      $ bin/hdfs dfs -put etc/hadoop /usr/hadoop/input      #第一个地址是源地址,第二个地址是目标地址即HDFS地址。
  6. 运行Hadoop提供的例子。
      $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
  7. 检测输出文件:

    将分布式文件系统中的文件拷贝到本地,并查看输出内容:

      $ bin/hdfs dfs -get output output
      $ cat output/*

    或者在分布式文件系统中查看文件:

      $ bin/hdfs dfs -cat output/*
  8. 停止分布式文件系统守护进程
      $ sbin/stop-dfs.sh
至此,Hadoop单节点的安装配置已经完成,写这篇文章前后持续了将近一周时间,终于于今天熬夜完成。
今天就到这里了,睡个好觉,明天继续努力。

以下的英文说明对于单节点安装配置作用不大,后面的部分仍会有提及,再次不做过度详述。

You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition.

The following instructions assume that 1. ~ 4. steps of the above instructions are already executed.

  1. Configure parameters as follows:

    etc/hadoop/mapred-site.xml:

    
        
            mapreduce.framework.name
            yarn
        
    

    etc/hadoop/yarn-site.xml:

    
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
    
  2. Start ResourceManager daemon and NodeManager daemon:
      $ sbin/start-yarn.sh
  3. Browse the web interface for the ResourceManager; by default it is available at:
    • ResourceManager - http://localhost:8088/
  4. Run a MapReduce job.
  5. When you're done, stop the daemons with:
      $ sbin/stop-yarn.sh

Fully-Distributed Operation

For information on setting up fully-distributed, non-trivial clusters see Cluster Setup.




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23628945/viewspace-1486002/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-03-31

  • 博文量
    15
  • 访问量
    74115