×

Hadoop的安装使用简介

96
simplelovecs
2016.11.08 13:18* 字数 629

Hadoop的运行有三种形式:

  • 单实例运行
  • 伪分布式
  • 完全分布式
    本文主要介绍单实例Hadoop的安装以及使用简介。下面的安装和配置步骤主要是为了快速安装和体验Hadoop,而不是在产品环境下使用Hadoop。

单实例Hadoop

1.下载

Hadoop下载主页中选择合适的版本下载Hadoop。
命令示例如下:

HADOOP_VERSION=hadoop-3.0.0-alpha1
wget http://apache.fayea.com/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz
wget https://dist.apache.org/repos/dist/release/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz.mds
wget https://dist.apache.org/repos/dist/release/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz.asc
wget https://dist.apache.org/repos/dist/release/hadoop/common/KEYS

2.验证和解压

  • 验证
    命令执行类似如下:

    HADOOP_VERSION=hadoop-3.0.0-alpha1
    md5 ${HADOOP_VERSION}.tar.gz | awk '{print $4}' > mycomputation.md5
    sed -n '1,2p' ${HADOOP_VERSION}.tar.gz.mds | sed 's/[ ]//g' | awk -v RS="" -F= '{gsub("\n","");print tolower($2)}' > extraction.md5
    diff mycomputation.md5 extraction.md5
    gpg -q --import KEYS
    gpg --verify ${HADOOP_VERSION}.tar.gz.asc ${HADOOP_VERSION}.tar.gz
    
  • 解压
    验证解压下载的文件,并进入其根目录。
    命令执行类似如下:

    HADOOP_VERSION=hadoop-3.0.0-alpha1
    tar xzvf ${HADOOP_VERSION}.tar.gz
    cd ${HADOOP_VERSION}
    

3.设置JAVA_HOME环境变量

修改配置JAVA_HOME
注意:
是通过修改文件etc/hadoop/hadoop-env.sh中的JAVA_HOME属性变量。
示例如下:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/

4.测试安装正常

  • 通过执行 bin/hadoop
    执行命令bin/hadoop,正常情况应该显示hadoop的命令使用文档。

  • 运行map reduce任务
    执行如下命令:

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

伪分布式Hadoop

1.配置

  • 编辑文件etc/hadoop/core-site.xml:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
  • 编辑文件etc/hadoop/hdfs-site.xml:

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

2.无密码ssh登陆

执行如下命令:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

3.执行测试

  1. 格式化文件系统:
    bin/hdfs namenode -format

  2. 启动NameNode daemon和DataNode daemon:

    sbin/start-dfs.sh
    

日志写到$HADOOP_LOG_DIR目录(缺省是$HADOOP_HOME/logs)。

  1. 浏览NameNode的web接口:
  1. 创建HDFS目录来执行MapReduce任务:

    bin/hdfs dfs -mkdir /user
    bin/hdfs dfs -mkdir /user/zhengfq
    
  2. 拷贝输入文件到分布式文件系统:

    bin/hdfs dfs -mkdir input
    bin/hdfs dfs -put etc/hadoop/*.xml input
    
  3. 运行例子:

     bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha1.jar grep input output 'dfs[a-z.]+'
    
  4. 检查输出:

     bin/hdfs dfs -cat output/*
    
  5. 停止进程:

     sbin/stop-dfs.sh
    

参考

学习
Web note ad 1