ubuntu14.04 i686搭建hadoop-2.5.2

这篇博客详细介绍了如何在Ubuntu14.04 i686系统上搭建Hadoop 2.5.2的伪分布式环境。内容包括JDK、Ant、Maven和Findbugs的安装配置,以及Hadoop的单机、伪分布式和全分布三种模式的介绍。特别强调了在伪分布式模式下进行配置的步骤,包括SSH的安装与免密设置,Hadoop配置文件的修改,如core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先保证系统连上网络且更新过

$sudo apt-get update

所需工具包如下:

对应为版本                   具体包名                                                                                            下载地址

JDK 7u71             jdk-7u71-linux-i586.tar.gz                http://ant.apache.org/bindownload.cgi

Ant 1.9.4              apache-ant-1.9.4-bin.tar.gz                                    http://maven.apache.org/download.cgi

Maven 3.2.3        apache-maven-3.2.3-bin.tar.gz                        http://findbugs.sourceforge.net/index.html

Findbugs 3.0.0    findbugs-3.0.0.tar.gz                                       http://download.youkuaiyun.com/download/ruijiliang/6991999

Protobuf 2.5.0    protobuf-2.5.0.tar.gz                                   http://www.apache.org/dyn/closer.cgi/hadoop/common


下载后以上工具后接下来就是搭建编译环境,按照上序依次安装并配置,配置环境变量。

安装之前的几点说明:

       1、配置环境变量网上有人说/etc/profile , .profile 或者.bashrc(.zshrc) 中配置都行,但必须source之后才能生效。.bashrc 或.zshrc的话source一次就行了,/etc/profile 或 .profile则需要每次启动终端时都source一次才能生效,直到下次开机。

    2、本人建议是所有配置都一个文件里面修改,譬如/etc/profile,不要把配置分散在不同文件中,可能导致原PATH值丢失,导致不必要的麻烦。

3、注意,安装完工具包后source /etc/profile,可能提示找不到命令source,此时切换到root,重新执行即可。

4、如果下载的不是gz包,解压时去掉参数z即可。

5、记住不要用root用户编译,全程用本地用户。除了以下会提到的source命令。


我们开始安装吧,不要太激动,每一步都要小心!

1、安装JDK 7u71

        tar -zxvf    jdk-7u71-linux-i586.tar.gz

sudo cp -r jdk-7u71-linux-i586 /usr/lib/jvm/
进入/etc/profile 在最后面添加配置环境变量,添加完后source.
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_71
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

2、安装 Ant 1.9.4
      tar -zxvf apache-ant-1.9.4-bin.tar.gz
    sudo cp -r apache-ant-1.9.4-bin.tar.gz  /usr/share/
    同上配置环境变量:
   export ANT_HOME=/usr/share/apache-ant-xxx
   export PATH=$PATH:$ANT_HOME/bin

3、安装Maven 3.2.3
      tar zxvf apache-maven-3.2.3-bin.tar.gz
     sudo cp -r apache-maven-3.2.3  /usr/share/
    
    配置环境变量

    export M2-HOME=/usr/share/apache-maven-3.2.3
    export MAVEN_OPTS="-Xms256 -Xmx512m"
    export PATH=$PATH:$M2_HOME/bin
4、安装Findbugs 3.0.0
   tar -zxvf findbugs-3.0.0.tar.gz
  sudo cp -r findbugs-3.0.0  /usr/share/
   配置环境变量
    export FINDBUGS_HOME=/usr/share/findbugs-3.0.0
   export PATH=$PATH:$FINDBUGS_HOME/bin

5、安装protobuf 2.5.0
    tar zxvf protobuf-2.5.0
    ./configure  --prefix=/usr/share
   make&&make install   此步骤可能提示权限不够,前面加上sudo即可。安装这个文件的时候,可能会提示找不到protoc compiler,此时sudo apt-get install protoc compiler既可以,安装完后用protoc --version验证下。

网摘:工具都安装在/usr/share目录下,Ubuntu系统会默认搜索该目录下的库文件,无需其他配置就行,但是如果被安装在/usr/local/目录下,Ubuntu是不会自动搜索该目录下的文件的,此时需要配置开发库环境变量:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/bin  
此问题没有详细验证,但是如果出现库文件找不到的问题的话,在/etc/profile里面也可以加上这句试试。如果仍然不行,则应该是系统里面确实缺少或者没有安装需要的库,那么按照error提示安装相应的库文件既可。

6、真正的战役,编译hadoop源码,此时必须连上网络才行,因为系统会downloading 非常多的东西,网速不好的话可能会downloading几个小时 - -!!
以上操作完成后,我们就要开始编译hadoop源码包了。我用的是hadoop-2.5.2-src.tar.gz,
tar -zxvf hadoop-2.5.2-src.tar.gz
cd hadoop -2.5.2.src
mvn package -Pdist,native,docs -DskipTests -Dtar
执行mvn命令后系统就会报错,遇到一个错误就会停止编译,解决之后会出现下一个错误,总之,系统会在每遇到一个错误时停止编译,直到解决之后才会继续编译出现下一个错误- - ||。可能会遇到找不到库文件ZLIB,apt-get install zlib &&apt-get install zlib-devel安装此文件即可,貌似还会遇到缺少或者找不到其他的文件,慢慢一个一个apt-get安装即可,因为是物理linux机上安装的,当时的文档在linux机上,现在用的windows机,那么多的错误一会也全想不起来,后面有空会补充。


配置

万事俱备,开始正式搭建。

Hadoop三种运行模式:

1. 单机模式(standalone):单机模式是Hadoop的默认模。当配置文件为空时,Hadoop完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

2. 伪分布模式(Pseudo-Distributed Mode):Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

3. 全分布模式(Fully Distributed Mode):Hadoop守护进程运行在一个集群上。

自己学习还是搭伪分布式比较好(单机模式其实不需要什么配置)。也不单独添加Hadoop用户了,切换麻烦,就用自己常用帐户就行了。

步骤:

1、安装ssh

由于Hadoop用ssh通信,先安装sshd

[html] view plaincopy
  1. ~$ sudo apt-get install openssh-server  #此文件不一定一次能安装成功,看网速或者人品吧,多试几次,曾经有一位副教授安装这个不成功,于是以熟悉linux系统为名,让我安装,结果我试了两三次便安装成功,事后,他问我:你怎么安装成功的?OX,#@$@#%@#$@#$。。。。。。。。。

ssh安装完成以后,先启动服务:

[html] view plaincopy
  1. ~$ sudo /etc/init.d/ssh start   
启动后,可以通过如下命令查看服务是否正确启动:
[html] view plaincopy
  1. ~$ ps -e | grep ssh  

作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:

[html] view plaincopy
  1. ~$ ssh-keygen -t rsa -P 
按三次或者几次回车键- -,直到出现一个字符组成的卡通图案既可以。此时生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。现在将公钥追加到authorized_keys中(anthorized_keys用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
$ cat  ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys (此步骤可以实现的方法还可以用mv ~/.ssh/id_rsa.pub  ~/.ssh/authorized.keys,但是本人不提倡用这种方法,因为一不小心也就是会用现在的公钥去覆盖原来的authorized_keys,而如果这个文件本来存在且里面还有信息时,就会不好了。)
       现在可以登入ssh确认以后登录不用输入密码
      $ssh localhost
登出:
     $ exit
第二次登录:
     $ssh localhost
登出:
     $exit
这样以后登录就不需要密码了。

2、安装Hadoop-2.5.2
 将刚才编译得到的hadoop-2.5.2复制到/opt目录下(大型软件和平台一般放在这个目录),方便配置,设置权限为777:
    sudo cp -r hadoop-2.5.2-src/hadoop-dist/target/hadoop-2.5.1 /opt/
    sudo  chmod -R 777 /opt/hadoop-2.5.2

3、配置hadoop环境变量

在/etc/profile或.profile或.bashrc中配置hadoop环境变量(上面说过,这里推荐就在/etc/profile里面修改),配置完source一下。
   export  HADOOP_HOME=/opt/hadoop-2.5.1
   export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
   export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
   export  CLASSPATH=.:$HADOOP/lib:$CLASSPATH
   export   PATH=$PATH:$HADOOP_HOME/bin

4、设置hadoop-env.sh(java安装路径)
  打开/opt/hadoop-2.5.2/etc/hadoop目录下的hadoop-env.sh,添加如下信息:
   export JAVA_HOME= /usr/lib/jvm/jdk1.7.0_71
(这里也有人设置成${JAVA_HOME},写成这样可能会导致后面错误提示JAVA_HOME is not set。所以本人推荐写成绝对路径)
export HADOOP_HOME=/opt/hadoop-2.5.2
export PATH=$PATH:$HADOOP_HOME/bin
配置完后回到命令行下
source /opt/hadoop-2.5.2/etc/hadoop/hadoop-env.sh
至此,hadoop的单机模式已成功安装。
命令行下使用hadoop version验证,注意不是hadoop -version或者--version,么有前面横线。出现hadoop版本表示安装成功。

5、搭建伪分布式环境,设定xxx-site.xml,
注意:设定以下配置文件时,不要删除了前面的<configuration>... </configuration>配置文件就添加在这个标注之中。(有人犯过这个样的错,不是我。)
这里需要设定4个文件,当然安装的hadoop版本不一样或者你的需求不一样的话,需要设定的文件也可能不需要设定这么多。
四个文件如下,位于/opt/hadoop-2.5.2/etc/hadoop/目录下
core-site.xmlHadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xmlHadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xmlMapReduce 守护进程的配置项,包括jobtracker和tasktracker。
这个文件默认没有,但是有mapred-site.xml.template,依次使用如下操作:
cp mapred-site.xml.template mapred-site.xml.template.bak
mv mapred-site.xml.template mapred-site.xml
ls 
便可以看到mapred-site.xml)
yarn-site.xmlYarn 框架用于执行MapReduce 处理程序
首先在hadoop目录下新建几个文件夹
$cd /opt/hadoop-2.5.2/etc/hadoop/
$mkdir tmp
$mkdir -p hdfs/name
$mkdir -p hdfs/data
接下来依次编译上面提到的四个文件,IP地址处我填的localhost,还有人填自己的局域网IP,根据自己需要填写。

core-site.xml:

  1. <configuration>  
  2.     <property>  
  3.         <name>fs.default.name</name>  
  4.         <value>hdfs://localhost:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/opt/hadoop-2.5.2/tmp</value>  
  9.     </property>  
  10. </configuration

hdfs-site.xml

  1. <configuration>  
  2.     <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>1</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>dfs.name.dir</name>  
  8.         <value>/opt/hadoop-2.5.2/hdfs/name</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>dfs.data.dir</name>  
  12.         <value>/opt/hadoop-2.5.2/hdfs/data</value>  
  13.     </property>  
  14. </configuration>  
上述路径都需要自己手动用mkdir创建(开头就已经创建了),具体位置也可以自己选择,其中 dfs.replication的值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致,在这里由于是伪分布式环境所以设置其为1。
mapred-site.xml(这个文件默认不存在,但是存在其模板文件mapred-site.xml.template,copy一份就行了,上面已经说过方法,不多说):
  1. <configuration>  
  2.     <property>  
  3.         <name>mapreduce.framework.name</name>  
  4.         <value>yarn</value>  
  5.     </property>  
  6. </configuration>  
注意:上面yarn一定要小写,不然编程序时候会出错,cannot initialize cluster,pls check your configuration for mapreduce.framework.name大概是这么几个单词。。。如果你的好奇心特别强,心里问这里为什么value会是yarn?请参见我的另外一个博文(撰稿中)

请注意这里安装的2.5.2版本,2.*版本较1.*版本改动很大,主要是用Hadoop MapReduceV2(Yarn) 框架代替了一代的架构,其中JobTracker 和 TaskTracker 不见了,取而代之的是 ResourceManager, ApplicationMaster 与 NodeManager 三个部分,而具体的配置文件位置与内容也都有了相应变化。所以我们在mapred-site.xml中设置了处理map-reduce的框架Yarn,接下来就需要在yarn-site.xml中配置ResourceManager, ApplicationMaster 与 NodeManager。

yarn-site.xml:

  1. <configuration>  
  2. <!-- Site specific YARN configuration properties -->  
  3.   <property>   
  4.     <name>yarn.nodemanager.aux-services</name> 
  5. #注意此处yarn同样需要小写  
  6.     <value>mapreduce_shuffle</value>     
  7.   </property>         
  8.   <property>  
  9.     <description>The address of the applications manager interface in the RM.</description>           
  10.     <name>Yarn.resourcemanager.address</name>             
  11.     <value>localhost:18040</value>               
  12.   </property>  
  13.   <property>   
  14.     <description>The address of the scheduler interface.</description>   
  15.     <name>Yarn.resourcemanager.scheduler.address</name>     
  16.     <value>localhost:18030</value>       
  17.   </property>  
  18.   <property>   
  19.     <description>The address of the RM web application.</description>   
  20.     <name>Yarn.resourcemanager.webapp.address</name>     
  21.     <value>localhost:18088</value>       
  22.   </property>  
  23.   <property>   
  24.     <description>The address of the resource tracker interface.</description>   
  25.     <name>Yarn.resourcemanager.resource-tracker.address</name>     
  26.      <value>localhost:8025</value>      
  27.   </property>  
  28. </configuration>  

格式化HDFS
通过以上步骤,我们已经设定好Hadoop单机测试环境,接着就是启动Hadoop到相关服务,
格式化namenode,secondarynamenode,tastktracker
操作如下:
$ hadoop namenode -format
以上操作如果过不去,就对照检查你的配置,是不是和上面的不一样:
1、譬如是不是环境变量没设置好,没有source,或者是不是没有注销系统而更换了shell等等。此种错误source之后直接重启系统最直接解决- -||
   2、是不是在多个文件里面添加了export语句,这时集中在一个文件里面的修改,把求他修改注释掉,source,仍不行,系统重启- -||
  3、上面四个配置文件里面属性标识敲错或者敲漏,注意是<></>配对,弄过html的应该都知道。把description敲成discription,把value敲成vlaue.....耐心慢慢检查,或者不是不是累教不改的,将yarn写成Yarn。。。

启动Hadoop
接着执行start-all.sh来启动所有服务,包括namenode,datanode,start-all.sh脚本用来装载守护进程,操作如下
 /opt/hadoop-2.5.2/sbin$ ./start-all.sh
   然后用java的jps命令列出所有守护进程来验证安装成功
/opt/hadoop-2.5.2/bin$ jps
   出现大概5-7个进程。

检查运行状态
例如查看dfs运行状态,打开浏览器,在地址栏输入http://localhost:50070会出现Hadoop用于监控机群健康状态的web界面(localhost代表自己的IP,如果是在局域网内其他电脑上访问此主机,则localhost必须改为安装hadoop系统的电脑IP地址。)

至此安装hadoop大功告成!想跑例程时,如果出现错误,仍然返回去检查配置文件。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值