Linux下单机版hadoop平台搭建与配置

重点讲解hadoop搭建步骤及常见问题和相应解决方法。

一、搭建环境

Ubuntu 12.10,java环境,hadoop 1.0.3

二、安装Java JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html(建议下载最新版)

我下载的为jdk-7u25-linux-x64.tar.gz压缩包,此外还可能有.bin安装格式

在shell终端下进入jdk-7u25-linux-x64.tar.gz文件所在目录

复制文件到/usr/lib/jvm(若无jvm文件请自行创建)

cp jdk-7u25-linux-x64.tar.gz /usr/lib/jvm

解压文件即可

tar xzvf jdk-7u25-linux-x64.tar.gz

若为.bin格式,例如jdk-6u30-linux-i586.bin文件,安装步骤如下

同样复制JDK到安装目录/usr/lib/jvm,安装文件

./jdk-6u30-linux-i586.bin

安装完成后,文件jvm下面会有jdk1.7.0_25文件夹。

现在要配置Java环境,需要修改/etc/profile文件

用文本编辑器打开proflie文件

在profile文件末尾加入:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/hadoop-1.0.3
export PATH=$JAVA_HOME/bin:$PATH

事实上一个问题就是大家安装的JDK,hadoop版本,安装路径可能都不完全一样,那么不一样时该如何修改上面的路径呢

解释一下这几个环境变量,应该就能自行修改了

1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了

2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中

3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk

令更新的profile文件生效

source /etc/profile

配置完成后测试一下JDK

java -version

 从图中可以看到 java ersion “1.7.0_25”  即安装成功

Linux下单机版hadoop平台搭建与配置_第1张图片

三、安装SSH

网上很多教程说安装SSH非常之简单,这是对于没有出现问题的人而言的,那么当安装时报错怎么办,下面一步步讲解

首先将一下原理

使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

原理很简单,那么来安装ssh

sudo apt-get install openssh-server

如果正常安装,下面启动它

/etc/init.d/ssh start

验证一下是否启动成功

ps -e | grep ssh

出现下面界面说明没有问题

Linux下单机版hadoop平台搭建与配置_第2张图片

由于hadoop集群需要使用ssh免密钥登陆,下面来设置免密钥化

ssh-keygen -t rsa -P ""cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

测试SSH登录是否成功

ssh localhost 

出现下面的图说明你真是一个幸运的好孩子

Linux下单机版hadoop平台搭建与配置_第3张图片

但是,如果你在安装SSH时出错了怎么办?没有关系,我现在就来拯救你。

楼主本人就属于出错这种,遇到 connection refused,而且还折腾了一下午,尝试了基本上所有方法,甚至打算重装系统...

如果安装时出错了,即install ssh发现安装失败时

• 方法一  

sudo apt-get update

更新的快慢取决于你的网速了,如果中途因为时间过长您中断了更新(Ctrl+z),当您再次更新时,会更新不了,报错为:“Ubuntu无法锁定管理目录(/var/lib/dpkg/),是否有其他进程占用它?“需要如下操作

sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

操作完成后继续执行下面的命令即可

sudo apt-get install openssh-server

• 方法二

如果你和你的小伙伴用了上面的方法还是安装失败的话,可以试试下面的方法

既然无法正确安装,说明可能你已经安装了SSH,但安装出了问题,那么我们就应该卸载掉错误的版本,重新安装正确的版本

打开你很少会用的Ubuntu软件中心吧,搜索SSH

把这个家伙卸载掉,然后重新安装或者修复即可。

• 方法三(慎用)

如果你还是失败了,呵呵,喜闻乐见啊,不过没有关系,还有一个偏方给你

sudo gedit /etc/apt/sources.list

这一步打开了你的源文件(建议修改前先备份),从网上找你ubuntu对应版本的源吧,替换掉当前的源

保存后update一下,然后尝试install openssh

四、hadoop配置

下载Hadoop稳定的发行版本。下载地址http://hadoop.apache.org/common/releases.html

下载好后最好解压在主文件夹下

Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。

• 修改hadoop配置文件

用文本编辑器打开conf/hadoop-env.sh文件,找到下面的地方,把JAVA_HOME后面的路径修改为你自己JDK安装路径

core-site.xml


 
  hadoop.tmp.dir
  /home/alex_young/tmp
  A base for other temporary directories.
 
 
  fs.default.name
  hdfs://localhost:9000
 

 

localhost为你到本机名,9000为设定接口,只要不冲突即可。

hdfs-site.xml


 
  dfs.name.dir
  /home/alex_young/hadoop-1.0.3/hdfs/name
 
 
  dfs.data.dir
  /home/alex_young/hadoop-1.0.3/hdfs/data
 
 
  dfs.replication
  1
 

重要的是value设置为1,data和name不必需,但路径要正确。

mapred-site.xml


 
  mapred.job.tracker
  localhost:9001
 
 
  mapred.local.dir
  /home/alex_young/hadoop-1.0.3/mapred/local
 
 
  mapred.system.dir
  /home/alex_young/hadoop-1.0.3/mapred/system
 

如对以上上个xml文件修改不明白,可访问http://blog.csdn.net/yangjl38/article/details/7583374参考

• 配置主机名

打开conf/masters文件,添加作为secondarynamenode的主机名,作为单机版环境,这里只需填写localhost就OK了

打开conf/slaves文件,添加作为slave的主机名,一行一个。作为单机版,这里也只需填写localhost就OK了

PS. 每当ubuntu安装成功时,我们的机器名都默认为:ubuntu,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定,打开/etc/hostname文件

sudo gedit /etc/hostname

回车后就打开/etc/hostname文件了,将/etc/hostname文件中的ubuntu改为你想取的机器名。重启系统后才会生效

五、在单机上运行hadoop

 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作

启动bin/start-all.sh,输入命令jps

如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机版环境配置好了。

Linux下单机版hadoop平台搭建与配置_第4张图片

 

幸福来的太不容易了...

PS.如果你start-all.sh后发现缺少进程,请查看日志,并认真检查三个xml文件是否设置正确

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/alexyoung/p/3193817.html

你可能感兴趣的:(Linux下单机版hadoop平台搭建与配置)