• Hadoop安装配置手册


    Hadoop安装配置手册

    一、      准备篇

    Hadoop运行环境:

    1. SSH服务正常运行
    2. JDK

    没安装的可以自己安装一下。

    二、      基础篇(单节点Hadoop)

    1. Hadoop下载

        Hadoop下载页:http://hadoop.apache.org/releases.html#Download

        本文基于hadoop1.0.4版本,下载:http://labs.mop.com/apache-mirror/hadoop/common/hadoop-1.0.4/hadoop-1.0.4.tar.gz

        解压下载的源码压缩包到合适的位置,如:/Users/yinxiu/dev/hadoop-1.0.4(这是本文安装hadoop的位置)

    1. 环境变量(hadoop_env.sh)

    目录/Users/yinxiu/dev/hadoop-1.0.4/conf

    2.1 JAVA_HOME 必须变量

    export JAVA_HOME=实际JDK路径

    如:

    export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

    2.2  HADOOP_HOME 可选变量

    HADOOP_HOME默认的是bin目录的父目录,本文中的配置就是/Users/yinxiu/dev/hadoop-1.0.4

        export HADOOP_HOME=/Users/yinxiu/dev/hadoop-1.0.4

    注意:在试验的时候发现配置了HADOOP_HOME后启动Hadoop提示:$HADOOP_HOME is deprecated.

    这个提示是说重复定义了。

    这个警告发生在HADOOPINSTALL/bin/hadoop-config.sh中:

    if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && [ "$HADOOP_HOME" != "" ]; then

      echo "Warning: \$HADOOP_HOME is deprecated." 1>&2

      echo 1>&2

    fi

    export HADOOP_HOME=${HADOOP_PREFIX}

    解决方法:可以去除HADOOP_HOME的配置,也可以通过添加export HADOOP_HOME_WARN_SUPPRESS=TRUE到hadoop-env.sh中。

    1. 环境配置文件的配置

    主要有三个配置文件:core-site.xml,hdfs-site.xml,mapred-site.xml

    3.1 conf/core-site.xml

    <configuration>

           <property>

                  <name>fs.default.name</name>

                  <value>hdfs://(master ip):9000</value>

           </property>

           <property>

                  <name>hadoop.tmp.dir</name>

                  <value>hadoop运行的临时目录</value>

           </property>

    </configuration>

    hadoop运行的临时目录:/Users/yinxiu/dev/hadoopdata/temp

    3.2  conf/hdfs-site.xml

    <configuration>

           <property>

                  <name>dfs.replication</name>

                  <value>1</value>

           </property>

           <property>

                  <name>dfs.data.dir</name>

                  <value>DFS的数据保存目录</value>

           </property>

           <property>

                  <name>dfs.name.dir</name>

                  <value>DFS Namenode保存的位置</value>

           </property>

    </configuration>

    DFS的数据保存目录:/Users/yinxiu/dev/hadoopdata/data

    DFS Namenode保存的位置:/Users/yinxiu/dev/hadoopdata/temp/dfs/name

    3.3  conf/mapred-site.xml

    <configuration>

           <property>

                  <name>mapred.job.tracker</name>

                  <value>(master ip):9001</value>

           </property>

    </configuration>

    可以配置单节点同时运行的最大map数和单节点同时运行的最大reduce数:

    mapred.tasktracker.map.tasks.maximum=8

    mapred.tasktracker.reduce.tasks.maximum=6

    1. ssh配置(使其可以通过ssh无密码登录,即通过证书认证登录)

    sh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa

    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    注意:connect to host localhost port 22: Connection refused

    运行hadoop的时候需要确保ssh运行正常。引起connect to host localhost port 22: Connection refused的原因可能有多个,比如没有开启远程登录。

    MAC开启远程登录:http://www.bluishcoder.co.nz/articles/mac-ssh.html

    1. 启动

    进入HADOOPINSTALL目录

    5.1 格式化namenode

        执行bin/hadoop namenode -format

    5.2 简单启动所有守护

    bin/start-all.sh

    5.3 停止守护

        bin/stop-all.sh

    1. 验证测试

    启动成功后可在浏览器查看以下地址:

    6.1 Job tracker

    http://master ip:50030

    6.2 NameNode

    http://master ip:50070

    三、      进阶篇(多节点Hadoop)

    以5台机子为例,分别为

    node-1 NameNode

    node-2 DataNode

    node-3 DataNode

    node-4 DataNode

    node-5 DataNode

    1. 集群SSH设置(namenode通过ssh可以无密码登录datanode)

        在将作为NameNode的机器上生成密钥对:

        $ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa

    $cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    注意ssh-keygen命令和cat命令的使用。

    提示要为生成的密钥输入passphrase的时候,直接回车将其设定为空密码

    将id_ras.pub的内容复制到每个机器(包括本机)的.ssh/authorized_keys文件中(如果原先有authorized_keys文件了将id_rsa.pub的内容追加在后面)

    复制和远程复制需要看cp和scp命令。

    如果ssh配置好了,就会出现以下提示信息 

    The authenticity of host [servername-2] can’t be established. 

    Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52. 

    Are you sure you want to continue connecting (yes/no)? 
        OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。 

        注意:Authentication refused: bad ownership or modes for directory /root错误的原因可能是权限问题或者用户组等问题,参考下面的一些资料。

    http://recursive-design.com/blog/2010/09/14/ssh-authentication-refused/

    http://bbs.csdn.net/topics/380198627

    1. 主机配置

        主机配置与基础篇中的配置基本一致,不再说明。

    1. Masters/Slaves文件配置

        NameNode节点的HADOOPINSTALL/conf/masters文件中添加主机名。那么本例中的masters文件内容如下:

    node-1

    HADOOPINSTALL/conf/slaves中添加DataNode节点的主机名,一行一个主机名。内容如下:

    node-2

    node-3

    node-4

    node-5

    1. 部署Hadoop集群

    前面讲的这么多Hadoop的环境变量和配置文件都是在node-1这台master主机上的, 将上述配置好的hadoop分发至各个slave的相同位置,注意要保证目录结构一致。

    使用scp进行分发。

    1. 启动

    配置完后对NameNode进行格式化。

    bin/hadoop namenode –format

        启动与基础篇一致,使用简单的start-all.sh和stop-all.sh进行启动和关闭,注意启动前

    1. 测试验证

    部分资料

    http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html

     

    
    
  • 相关阅读:
    liststyle
    :nthchild(n)
    织梦CMS首页调用分类信息栏目及列表方法
    []织梦CMS首页调用分类信息栏目及列表方法
    ps快捷键
    系统架构博客,很不错
    google maps api 反向解析 地址 api
    sphinx
    sphinx discuss
    ruby分词
  • 原文地址:https://www.cnblogs.com/hzmark/p/2938847.html
Copyright © 2020-2023  润新知