hadoop安装及注意事项

一.hadoop安装及注意事项
1.安装hadoop的环境,必须在你的系统中有java的环境。
2.必须安装ssh,有的系统默认就安装,如果没有安装需要手动安装。
    可以用yum install -y ssh 或者 rpm -ivh ssh的rpm包进行安装

二.安装并配置java环境
hadoop需要在java的环境中运行,需要安装JDK。
1.在官网上下载jdk,网址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
   a.进入选择相应的rpm包或者tar包,进行安装。我这里是下载的rpm包,因为这样比较方便。用rpm包不需要进行环境变量的配置就可以使用了。
    # rpm -ivh /usr/java/jdk1.8.0_60.rpm
   b.检查java环境是否安装成功,敲入如下命令:
         # java -version  显示相应的版本号

         # javac  javac相应的信息

         # java   java相应的信息

 如以上打印出来了,就表示成功。

三.下载并安装hadoop
1.进入hadoop的官网进行下载相应hadoop的版本。地址为:http://hadoop.apache.org/releases.html
    a.下载相应的tar包


    b.进行tar解包
        # tar -ivh /usr/local/hadoop/hadoop-2.7.1.tar.gz
    c.修改相应的配置文件信息,制定相应的java_home
        #vi /usr/local/hadoop/hadoop-2.7.1/ etc/hadoop/hadoop-env.sh
     # set to the root of your Java installation
        export JAVA_HOME=/usr/java/latest    #显示当前jdk安装的目录  一般rpm是安装在 usr 目录下
    d.配置hadoop的环境变量(使hadoop的命令加到path中,就可以使用hadoop的相关命令)
        1.编辑/etc/profile文件,在文件的后面加上如下代码:
        HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.1
        PATH=$HADOOP_HOMEin:$PATH
        export HADOOP_HOME PATH
        2.使修改的文件生效
        source /etc/profile
这样就可以进入hadoop的安装目录去进行相关的命令操作了!

三.执行相关的命令
1.运行一个MapReduce Job在当地:
    进入hadoop的安装目录:$ cd /usr/local/hadoop/hadoop-2.7.1/   
   一:格式化文件系统 $ bin/hdfs namenode -format
   二:开始一个NameNode后台进程 和 DataNode 后台进程。
     $ ./sbin/start-dfs.sh
   hadoop的后台进程的的日志文件输出到安装目录文件下的logs文件中。
   三:进入网站可以进行查看相应的NameNode
    NameNode - http://localhost:50070/
   四:执行MapReduce Job,必须创建HDFS文件夹
         $ bin/hdfs dfs -mkdir /usr
         $ bin/hdfs dfs -mkdir /usr/<username>
   五:复制输入文件到分布式文件系统
         $ bin/hdfs dfs -put etc/hadoop input
   六:运行提供的相应的例子
         $ bin/hadoop jar share/hadoop/mapreduce/hadoop-maegrop'./bj-getoutpreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
   七:检查输出的文件:从分布式文件系统中复制输出文件到本地,并测试。
    $ bin/hdfs dfs -get output output
    $ cat output/*
    或者查看输出文件在分布式文件系统中
    $ bin/hdfs dfs -cat output/*
   八:停止后台进程
    $ sbin/stop-dfs.sh

四.Hadoop的相关命令
    所有的Hadoop命令通过bin/ hadoop脚本调用,Hadoop脚本运行不带任何参数打印描述为所有的命令。
    1.Usage: hadoop [--config confdir] [--loglevel loglevel] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS],这些选项是可选的。
           a.--config confdir:覆盖默认的配置目录 . 默认是 ${HADOOP_HOME}/conf
                 b.--loglevel loglevel:覆盖日志等级。日志等级有:FATAL, ERROR, WARN, INFO, DEBUG, 和 TRACE,默认为INFO等级。
        c.GENERIC_OPTIONS :多命令支持的共同选项.
        d.COMMAND_OPTIONS:各种命令的选项是在文档描述了Hadoop的共同子项目,HDFS和YARN 在其他的文档中说明。
    2.常用操作
        a.可以用多个操作命令结合使用,来配置相应的hadoop
            1.-archives <comma separated list of archives>:指定用逗号分隔文档,仅适用于job。
            2.-conf <configuration file>:指定一个应用的配置文件。
            3.-D <property>=<value>:获取属性文件中的值
            4.-files <comma separated list of files>:指定以逗号分隔的文件被复制map reduce集群,仅适用于job。
            5.-jt <local> or <resourcemanager:port>:指定一个resourcemanager。仅适用于job。
            6.-libjars <comma seperated list of jars>:指定以逗号分隔的jar文件,包含在classpath中,仅适用于job。

五.Hadoop的常用命令
    所有的hadoop命令是通过hadoop shell 命令执行,包含User Commands和Admininistration Commands。
    1.User Commands:在hadoop集群的情况下要慎用。
        a.archive:创建一个hadoop archive,
        b.checknative: Usage: hadoop checknative [-a] [-h]
                -a : 选择全部可用的包
                -h:打印帮助信息
        c.classpath:Usage: hadoop classpath [--glob |--jar <path> |-h |--help]
                --glob:通配符
                --jar <path>:write classpath as manifest in jar named path
                -h 、--help:打印帮助信息
        d.credential:Usage: hadoop credential <subcommand> [options]
                1.create alias [-provider provider-path] :
                    Prompts the user for a credential to be stored as the given alias. The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated.
                2.delete alias [-provider provider-path] [-f]
                    Deletes the credential with the provided alias. The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated. The command asks for confirmation unless -f is specified
                3.list [-provider provider-path]
                    Lists all of the credential aliases The hadoop.security.credential.provider.path within the core-site.xml file will be used unless a -provider is indicated.
        e.CLASSNAME:Usage: hadoop CLASSNAME
                运行一个类名为CLASSNAME的类
        f.version:Usage: hadoop version
                打印hadoop的版本信息
        g.trace:查看和修改Hadoop tracing 设置。可以看相应的官方文档。
        h.key:管理keys。
        i.jar:Usage: hadoop jar <jar> [mainClass] args...
                运行一个jar文件。
            适用 yarn jar去运行 YARN 应用程序。
        J.fs:可以查看相应的官方文档。
        k.distcp:复制文件或者目录,更多查看相应的官方文档。
    2.Administration Commands:在hadoop集群的情况下要慎用
        后台进程日志:
        a.daemonlog:Usage:
            hadoop daemonlog -getlevel <host:httpport> <classname>
            hadoop daemonlog -setlevel <host:httpport> <classname> <level>
            1.-getlevel host:httpport classname:
                Prints the log level of the log identified by a qualified classname, in the daemon running at host:httpport. This command internally connects to http://<host:httpport>/logLevel?log=<classname>
            2.-setlevel host:httpport classname level
                Sets the log level of the log identified by a qualified classname, in the daemon running at host:httpport. This command internally connects to http://<host:httpport>/logLevel?log=<classname>&level=<level>
        在后台进程取得或者设置日志等级为相应的类。

原文地址:https://www.cnblogs.com/tonylovett/p/5254290.html