首页 > Hadoop, Java, 挨踢(IT) > 搭建Hadoop集群

搭建Hadoop集群

2013年9月29日 发表评论 阅读评论 597 人阅读    

一直以来,对Hadoop集群很感兴趣。最近得闲,就抽空把Hadoop集群搭建起来。为了日后备查,著一小文以记之。

创建用户账号

为了便于管理,建立一个专门用于搭建Hadoop集群的用户账号。创建指令如下:

sudo adduser u --ingroup sudo

注销原来的登录用户,使用用户u登录。也可以使用如下指令,进行用户切换:

su - u

安装JDK

看了一些资料,都是安装JDK 1.6版。但是,D瓜哥觉得既然1.7已经出来这么长时间了,每一次大版本的升级,肯定会在性能、特性方面有很多提升。所以,不妨体验一下。

由于,D瓜哥使用的Ubuntu 10.04版,所以只能使用tar包,所以,打开jdk下载页面,下载jdk-7u40-linux-i586.tar.gz

将JDK下载到用户u的用户根目录下,然后使用如下指令解压缩:

cd ~
tar -zxvf jdk-7u40-linux-i586.tar.gz

由于不清楚JDK的安装方法(JDK1.6版有bin格式的,以前使用这种方式安装),所以这是一个尝试。有机会再试试按照到/usr目录下。

解压后,需要配置一下JAVA_HOMECLASSPATH。所以,修改.profile,在这个文件中配置JAVA_HOMECLASSPATH变量,并将JAVA_HOME加入到环境变量中。修改方法如下:

  1. 打开.profile文件

    vim ~/.profile
    
  2. .profile文件结尾处,添加的内容如下:

    export JAVA_HOME=/home/u/jdk1.7.0_40
    export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
    export PATH="$JAVA_HOME/:$JAVA_HOME/bin:$PATH"
    
  3. 使用如下指令,使刚刚的修改得以生效:

    source ~/.profile
    
  4. 使用如下指令,测试JDK是否安装成功:

    java -version 
    javac -version
    

如果返回正确的版本信息,则表示JDK安装成功。否则,请检查环境变量是否正确。

配置SSH免密码登录

鉴于安全性的考虑,Hadoop集群中,各个节点之间的通讯需要一个鉴权机制。可以使用用户名+密码的方式。但是,在动辄上千台机器的集群中,很显然是不现实的。所以,SSH是更好的选择。下面D瓜哥就介绍一下配置方法。

  1. 安装SSH软件包。指令如下:

    sudo apt-get install ssh
    
  2. 生成SSH Key。指令如下:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    
  3. 创建配对的授权文件。指令如下:

    cat /home/u/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
  4. 检查是否配置成功。指令如下:

    ssh localhost
    

如果提示授权成功等字样,则表示配置成功。

在第二步生成SSH-Key时,刚开始使用的是如下指令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

但是,试验两次,竟然不成功。所以,在这里提醒一下查看官方文档的朋友。如果官方文档的指令不成功,可以试试D瓜哥这里使用的指令。

安装并运行Hadoop

介绍Hadoop安装之前,先介绍一下Hadoop中对各个角色的定义。

Hadoop分别从三个角度将主机划分为两种角色。第一,最基本的划分为Master和Slave,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,讲主机划分为JobTracker和TaskTracker(一个Job经常被划分为多个Task,从这个角度就不难理解它们之间的关系)。

Hadoop有三种按照方式:单机模式、伪分布式与完全分布式。前两者便于程序的测试与调试;后者更能体现云计算的优势。D瓜哥手上有三台旧笔记本,日后肯定要搭建完全分布式的。目录是为了尝试搭建,所以这里介绍伪分布式的配置过程。过程如下:

  1. 下载Hadoop。打开http://www.apache.org/dyn/closer.cgi/hadoop/common/,再选择一个合适的节点打开。为了统一起见,这里下载hadoop-1.2.1.tar.gz版。

  2. 将Hadoop下载到用户u的用户根目录下,使用如下指令解压:

    tar -zxvf hadoop-1.2.1-bin.tar.gz
    
  3. Hadoop的目录很规范,配置文件都同意放在了HADOOP_HOME/conf/目录下。所以,直接进入到该目录下。

    cd ~/hadoop-1.2.1/conf/
    
  4. 打开conf/hadoop-env.sh文件,配置JDK的安装位置。打开文件后,找到export JAVA_HOME等字样,将前面的注释去掉,然后修改成如下内容:

    export JAVA_HOME=/home/u/jdk1.7.0_40
    
  5. 打开conf/core-site.xml,在该文件中添加如下内容:

    <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
      </property>
    </configuration>
    
  6. 打开conf/hdfs-site.xml,在该文件中添加如下内容:

    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
    </configuration>
    
  7. 打开conf/mapred-site.xml,在该文件中添加如下内容:

    <configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
      </property>
    </configuration>
    
  8. 进入HADOOP_HOME/bin目录下,使用如下指令格式化Hadoop的文件系统HDFS:

    ./hadoop namenode -format
    
  9. 进入HADOOP_HOME/bin目录下,使用如下指令来启动Hadoop集群:

    ./start-all.sh
    
  10. 打开浏览器,分别输入如下网址,查看Hadoop是否安装成功:

如果能正常打开,则表示安装成功。否则,请检查配置过程中,输入是否正确等。

使用如下指令,可以停止Hadoop集群:

./stop-all.sh

至此全部的安装过程都已经结束了。祝尝试的朋友顺利。以后,D瓜哥会继续把三台电脑的集群搭建过程分享出来。当然,也会写一些例子来跑一跑。敬请继续关注。

参考资料

  1. Hadoop: The Definitive Guide
  2. Hadoop实战(第2版)
  3. Hadoop 1.2.1 Documentation


作 者: D瓜哥,https://www.diguage.com/
原文链接:https://wordpress.diguage.com/archives/53.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

分类: Hadoop, Java, 挨踢(IT) 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.