ITPub博客

首页 > 大数据 > 可视化 > 在Ubuntu Linux上安装Apache Hadoop

在Ubuntu Linux上安装Apache Hadoop

可视化 作者:f14291353 时间:2013-12-02 15:21:31 0 删除 编辑
在Ubuntu Linux上安装Apache Hadoop
作者:Mark Lin

  Hadoop是Apache软件基金会所研发的分布式系统框架。其中,MapReduce和HDFS是Hadoop的两大核心模块。MapReduce是用于大规模数据集并行计算的编程模型。HDFS是面向大规模数据集的分布式文件系统。本文的目的是采用伪分布模式,在Ubuntu Linux上安装Apache Hadoop。

0.准备
  如果安装Hadoop是出于学习目的,建议首先安装VMware Workstation。VMware Workstation是一款功能强大的桌面虚拟计算机软件,通常称为“虚拟机”。在虚拟机中,需要安装以下软件:
Ubuntu Linux 12.04 LTS(根据需求选择32位或者64位,本文选用64位)
hadoop -1.2.1.tar.gz
jdk-7u40-linux-x64.tar.gz
Eclipse IDE for JAVA EE Developers
hadoop-eclipse-plugin-1.2.1.jar

1.安装JDK
  Hadoop是由Java语言编写,因此安装Hadoop之前需要安装JDK。本文的JDK安装包位于/home/hduser/Downloads目录下。首先将JDK移动到/usr/lib目录下,当然也可以指定其他目录,然后用tar指令解压。在Ubuntu自带的Terminal中输入以下命令:

sudo cp /home/hduser/Downloads/jdk-7u40-linux-x64.tar.gz /usr/lib 
sudo tar xzf jdk-7u40-linux-x64.tar.gz /usr/lib 
sudo gedit /etc/profile

  在/etc/profile文件的末尾添加以下代码:

export JAVA_HOME=/usr/lib/jdk1.7.0_40
export JRE_HOME=/usr/lib/jdk1.7.0_40/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

  保存并退出/etc/profile。输入以下命令更新/etc/profile。

source /etc/profile

  输入以下命令测试JDK是否安装成功。

java -version

  如果安装成功将返回下图所示的结果:
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop

2.安装及配置SSH
    Hadoop采用SHH协议。Ubuntu系统需要安装并配置SSH,如果使用CentOS,系统自带SSH,不需要另外安装。可以通过ssh localhost命令测试本机是否已安装了SSH。如果返回下图所示的结果,表示本机没有安装SSH。
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  输入以下命令安装SSH:

sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
ps -e|grep ssh

  如果返回下图所示的结果,表示SSH安装成功。
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  接下来对SSH进行配置,使得用户可以无密码登录。在Terminal中输入以下命令:

ssh-keygen -t rsa -P ""

  返回以下结果:
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  系统将自动生成rsa密钥对,分别是私钥id_rsa和公钥id_rsa.pub。
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  接下来,将公钥添加到authorized_keys中。在Terminal中输入以下命令:

cd /home/hduser/.ssh
ls
cat id_rsa.pub >> authorized_keys

  再次使用ssh localhost命令,输入yes,与上次相比,返回了不一样的输出结果:
在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop

3.安装Hadoop

  在安装Hadoop之前,先创建一个名为hadoop的group。在Terminal中输入以下代码:


sudo addgroup hadoop

sudo adduser --ingroup hadoop hduser


  本文将Hadoop安装到/usr/local/hadoop目录下。将Hadoop安装包移动到该目录后解压出来,并修改文件夹的所有者。注意,这一步很重要,如果文件夹的所有者搞错了,将导致后续无法正常启动Hadoop


sudo cp /home/hduser/Downloads/hadoop-1.2.1.tar.gz /usr/local/hadoop

cd /usr/local/hadoop

sudo tar xzf hadoop-1.2.1.tar.gz

 

sudo chown -R hduser:hadoop hadoop-1.2.1

sudo gedit $HOME/.bashrc


  将下面的代码添加到$HOME/.bashrc文件的末尾。


# Set Hadoop-related environment variables

export HADOOP_HOME=/usr/local/hadoop/hadoop-1.2.1


# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)

export JAVA_HOME=/usr/lib/jdk1.7.0_40


# Some convenient aliases and functions for running Hadoop-related commands

unalias fs &> /dev/null

alias fs="hadoop fs"

unalias hls &> /dev/null

alias hls="fs -ls"


# If you have LZO compression enabled in your Hadoop cluster and

# compress job outputs with LZOP (not covered in this tutorial):

# Conveniently inspect an LZOP compressed file from the command

# line; run via:

#

# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo

#

# Requires installed 'lzop' command.

#

lzohead () {

    hadoop fs -cat $1 | lzop -dc | head -1000 | less

}


# Add Hadoop bin/ directory to PATH

 

export PATH=$PATH:$HADOOP_HOME/bin


  对于所有使用Hadoop的机器都必须配置上述代码。此外,还需要配置hadoop-env.sh,con/*-site.xml等文件。打开conf/hadoop-env.sh,然后将


# The java implementation to use.  Required.

 

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun


  修改为


# The java implementation to use.  Required.

 

export JAVA_HOME=/usr/lib/jdk1.7.0_40


  Hadoop默认使用hadoop.tmp.dir来存放临时文件。建议自己建立一个目录来存放临时文件。


$ sudo mkdir -p /app/hadoop/tmp

$ sudo chown hduser:hadoop /app/hadoop/tmp

 

$ sudo chmod 750 /app/hadoop/tmp


  如果想获得更高的安全性,请为目录设置750的权限。如果忘记了设置所有者以及权限,可能在格式化名称节点时遇到java.io.IOException错误。对于conf/core-site.xml,conf/mapred-site.xml,conf/hdfs-site.xml配置非常简单,只要在...键值对之间,将下面的代码粘贴进去就可以了。

conf/core-site.xml:

  hadoop.tmp.dir

  /app/hadoop/tmp

  A base for other temporary directories.


  fs.default.name

  hdfs://localhost:54310

  The name of the default file system.  A URI whose

  scheme and authority determine the FileSystem implementation.  The

  uri's scheme determines the config property (fs.SCHEME.impl) naming

  the FileSystem implementation class.  The uri's authority is used to

  determine the host, port, etc. for a filesystem.


conf/mapred-site.xml:


  mapred.job.tracker

  localhost:54311

  The host and port that the MapReduce job tracker runs

  at.  If "local", then jobs are run in-process as a single map

  and reduce task.

 


con/hdfs-site.xml:


  dfs.replication

  1

  Default block replication.

  The actual number of replications can be specified when the file is created.

  The default is used if replication is not specified in create time.

 


4.启动Hadoop

 

  终于来到激动人心的一步了。在首次启动Hadoop之前,我们需要对HDFS进行格式化。


/usr/local/hadoop/hadoop-1.2.1/bin/hadoop namenode -format


  格式化完毕后将返回以下结果:


在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop

  现在,让我们启动Hadoop吧!


/usr/local/hadoop/hadoop-1.2.1/bin/start-all.sh

  如果一切顺利将返回以下结果:

在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop

  通过jps指令可以查看Hadoop的状态:

在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  通过netstat指令可以查看Hadoop占用的端口:

在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop
  输入以下指令可以关闭Hadoop集群:


/usr/local/hadoop/hadoop-1.2.1/bin/stop-all.sh


5.安装与配置Eclipse

  Eclipse的安装非常简单,将下载好的压缩包用tar命令解压出来就可以使用Eclipse,这里不再赘述。为了能够在Eclipse中查看HDFS和开发MapReduce程序,需要先安装一个插件hadoop-eclipse-plugin-1.2.1.jar。插件的安装方法也很简单,将jar包放到eclipse/plugin目录下即可。现在,让我们启动Eclipse看看吧。

在Ubuntu <wbr>Linux上安装Apache <wbr>Hadoop

  点击Window菜单下的Preference后弹出一个对话框。在对话框的左侧点击Hadoop Map/Reduce选项,输入Hadoop的安装目录,本文的Hadoop安装目录是/usr/local/hadoop/hadoop-1.2.1。注意,在下方Console控制台选项卡的左侧,多了一个Map/Reduce Locations选项卡。在该选项卡的空白处右击,点击New Hadoop location。在弹出的对话框中,填入Map/Reduce master以及DFS master的host和port。这两个端口号在安装Hadoop时已经进行了配置,分别在hadoop-1.2.1/conf目录下的mapred-site.xml和core-site.xml两个文件中,注意别填反了。然后,点击Advanced parameters,从中找到hadoop.tmp.dir,填入临时目录,本文选择/app/hadoop/tmp,这个属性之前已经在core-site.xml进行了配置。再从Advanced parameters中找到fs.default.name,填入Hadoop集群的地址,本文的Hadoop集群地址是hdfs://localhost:54310,这个属性之前也已经在“core-site.xml”进行了配置。点击完成之后,就配置好了Eclipse。现在,可以立刻在Eclipse中新建一个Map/Reduce Project,尝试写一些简单的MapReduce程序。


  至此,搭建开发环境的所有工作都已经完成。

  Hope you enjoy it! 


6.参考资料

 

<!-- 正文结束 -->

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

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

注册时间:2009-05-07