云计算(三)- Hadoop2.2.0编译安装

 

 

Hadoop-2.2.0编译安装步骤

 

 

环境: 系统 CentOS 6.3 64位 * 3

 

Master   192.168.80.90

Slave1   192.168.90.91

Slave2   192.168.80.92

软件: Hadoop-2.2.0-src.tar.gz

 

 

 

一,准备环境

 

1.1  分别设置三台节点ip地址(固定) 此步骤所有节点都要操作

 vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

1.2  修改三台节点主机名 此步骤所有节点都要操作

 vi /etc/sysconfig/network              

 

 以上两步骤需要重启服务器后才生效

 

1.3    创建hadoop用户  此步骤所有节点都要操作

  useradd  hadoop                     

 

 

1.4  添加hosts记录  此步骤所有节点都要操作

 vi /etc/hosts                         

 192.168.80.90     Master.Hadoop         

 192.168.80.91     Slave1.Hadoop         

 192.168.80.92     Slave2.Hadoop         

 

 

1.5  建立hadoop用户之间相互信任(互相无密码登陆)此步骤所有节点都要操作

 

     切换至hadoop用户下执行  ssh-keygen -t rsa 

     然后将自己的公钥以及其他服务器hadoop用户的公钥放置hadoop宿主目录下       的 .ssh/authorized_keys 中,注意authorized_keys默认不存在需要手动创建,并且       必须设置权限为600

 

1.6  安装java(建议每台机器的JAVA_HOME路径信息相同) 此步骤所有节点都要操作

 

     下载jkdhttp://www.oracle.com/technetwork/java/javase/downloads/index.html

    下载后解压至自己指定的目录如/usr/java

添加变量:以root用户  vi  /etc/profile

根据自己路径在最后添加以下三行

 

 export JAVA_HOME=/usr/java/jdk1.6.0_23                              

 exportCLASSPATH=:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 

 exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin             

 

添加之后执行sourc  /etc/profile重新加载 建议root用户和hadoop用户都操作  此步

 

 

1.7   安装基本应用程序 (此步骤要求联公网)   此步骤只需在master上操作

               yum -y  install  svn  ncurses-devel  gcc*

  yum -y install lzo-develzlib-devel autoconf  automake  libtool  cmake  openssl-devel

 

 

1.8   安装maven

 

下载apache-maven-3.1.1-bin.tar.gz  

(下载地址   http://maven.apache.org/download.cgi

 

并解压   tar zxvf apache-maven-3.1.1-bin.tar.gz  

 

mv  apache-maven-3.1.1  maven   (改名)

注意一下maven存放路径,可以自定义路径

 

添加变量:以root用户 vi  /etc/profile

根据自己路径在最后添加以下两行

 export MAVEN_HOME=/home/hadoop/maven 

 export PATH=$PATH:$MAVEN_HOME/bin   

 

添加之后执行sourc  /etc/profile 重新加载

 

 

1.9   安装protobuf(不安装,编译将无法完成)

 

下载:http://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.5.0.tar.gz

解压,设置属主为 root  chowd  -R  root.root protobuf-2.5.0

编译安装protobuf

① cd  protobuf-2.5.0  

② ./configure

③ make

④ make install

检测  protoc --version

 

 

 

二,编译安装hadoop-2.2.0

 

2.1  下载 hadoop-2.2.0-src.tat.gz

 

Hadoop-2.2.0源码包下载地址 http://apache.claz.org/hadoop/common/hadoop-2.2.0/


2.2   解压hadoop-2.2.0-src.tat.gz

 

2.3 开始编译

执行命令 mvn clean package -Pdist,native -DskipTests -Dtar

此步骤要求主机能访问公网,并且此步骤很漫长,由于服务器配置和网 速的不同因素,,时间为1小时到30分钟不等,等待吧……

 

完成结果类似一下截图

挺快的,用了32分钟

 

编译成功后,/hadoop-dist/target/hadoop-2.2.0.tar.gz就是我们需  要的文件了

将编译好的/hadoop-dist/target/hadoop-2.2.0.tar.gz文件分别拷贝  至其他节点,并将其解压,设置其属主,属组都为hadoop用户(路径自   定义,注:所有节点hadoop路径必须相同,我这里所有服务器节点都放 置/home/hadoop/)

然后添加环境变量: vi  /etc/profile  此步骤所有节点都要操作

添加以下两条

  exportHADOOP_HOME=/home/hadpoop/hadoop-2.2.0 

  export PATH=$PATH:$HADOOP_HOME/bin            

 

添加之后执行sourc  /etc/profile重新加载 建议root用户和hadoop用户都操作此步

 

 

2.4  Master上操作

解压/hadoop-dist/target/hadoop-2.2.0.tar.gz到/home/hadoop 

进入配置文件目录

   cd /home/hadoop/hadoop-2.2.0/etc/hadoop                         

 

在这里主要修改一下几个文件:(文件内容有些参数根据自己实际情况修改)

 

slaves  core-site.xml  hadoop-env.sh hdfs-site.xml 

mapred-site.xml (此文件默认不存在)   yarn-env.sh  yarn-site.xml

 

 

2.4.1 修改slaves 文件,添加以下两行(目的:添加slave节点,建议写ip地址)

 

   192.168.80.91  

   192.168.80.92  

 

 

2.4.2 修改core-site.xml添加一下内容

 

<configuration>

 

              <property>

                     <name>fs.defaultFS</name>

                     <value>hdfs://192.168.80.90:9000</value>

              </property>

 

              <property>

                     <name>io.file.buffer.size</name>

                     <value>131072</value>

              </property>

 

              <property>

 

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

                     <value>file:/home/hadoop/hadoop-2.2.0/temp</value>

                     <description>Abasefor other temporary directories.</description>

 

              </property>

 

        <property>

                     <name>hadoop.proxyuser.hduser.hosts</name>

                     <value>*</value>

              </property>

             

              <property>

 

           <name>hadoop.proxyuser.hduser.groups</name>

           <value>*</value>

              </property>

 

</configuration>

 

 

2.4.3 修改 hdfs-site.xml 文件,添加以下内容

 

<configuration>

 

<property>

              <name>dfs.namenode.secondary.http-address</name>

           <value>192.168.80.90:9001</value>

</property>

<property>

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

              <value>file:/home/hadoop/hadoop-2.2.0/dfs/name</value>

</property>

<property>

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

              <value>file:/home/hadoop/hadoop-2.2.0/dfs/data</value>

</property>

<property>

              <name>dfs.replication</name>

              <value>1</value>

</property>

<property>

       <name>dfs.webhdfs.enabled</name>

       <value>true</value>

</property>

 

</configuration>

 

 

2.4.4 修改 mapred-site.xml  文件,添加以下内容

 

<configuration>

 

<property>

              <name>mapreduce.framework.name</name>

              <value>yarn</value>

</property>

<property>

       <name>mapreduce.jobhistory.address</name>

              <value>192.168.80.90:10020</value>

</property>

<property>

       <name>mapreduce.jobhistory.webapp.address</name>

              <value>192.168.80.90:19888</value>

</property>

 

</configuration>

 

2.4.5 修改  yarn-site.xml  文件,添加以下内容

 

<configuration>

 

<property>

              <name>yarn.nodemanager.aux-services</name>

       <value>mapreduce_shuffle</value>

</property>

<property>

       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

       <value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

              <name>yarn.resourcemanager.address</name>

              <value>192.168.80.90:8032</value>

</property>

<property>

              <name>yarn.resourcemanager.scheduler.address</name>

              <value>192.168.80.90:8030</value>

</property>

<property>

       <name>yarn.resourcemanager.resource-tracker.address</name>

       <value>192.168.80.90:8031</value>

</property>

<property>

       <name>yarn.resourcemanager.admin.address</name>

       <value>192.168.80.90:8033</value>

</property>

<property>

              <name>yarn.resourcemanager.webapp.address</name>

              <value>192.168.80.90:8088</value>

</property>

 

</configuration>

 

2.4.6 修该hadoop-env.sh 文件

 

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.6.0_23)

 

2.4.7 修改  yarn-env.sh  文件

 

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.6.0_23)

 

2.4.8 传送文件至各个节点保持一致

 

配置文件修改完了,然后将修改后的所有文件都复制(覆盖)到各个节点hadoop目录下 

scp hadoop-env.sh hdfs-site.xml mapred-site.xml slaves yarn-env.shyarn-site.xml hadoop@192.168.80.91

scp hadoop-env.sh hdfs-site.xml mapred-site.xml slaves yarn-env.shyarn-site.xml hadoop@192.168.80.92

……

……

 

三,启动hadoop

 

3.1  初始化hadoop  (注意:请关闭所有节点防火墙

 

切换至hadoop用户,进入/home/hadoop/hadoop-2.2.0/bin/下执行命令hdfs namenode -format 进行初始化

……

 

中间会产生很多信息,这个正常

初始化完之后会自动的在/home/hdoop/hadoop-2.2.0/创建dfs/name/目录

每次初始化都会对dfs进行操作,一般只要初始化一次就可以了,因为如果dfs里面有数据的话会把它给弄丢的

 

 

3.2  启动hadoop  (用hadoop用户执行)(注意:请关闭所有节点防火墙

 

切换至/home/hadoop/hadoop-2.2.0/sbin/下

 

3.2.1 执行脚本 ./start-dfs.sh

此时master上会产生:(两个进程)

 

SecondaryNameNode

      NameNode

 

Slave节点上会产:(一个进程)

DataNode

 

3.2.2 执行脚本./start-yar.sh

此时master上会产生:(多出来一个)

ResourceManager

SecondaryNameNode

NameNode

 

 

 

Slave节点上会产:

 

DataNode

NodeManager

 

 

 

访问网页 :http://192.168.80.90:8088

 

 

访问网页 :http://192.168.80.90:50070

 

 

至此,hadoop已经启动

 

##############################################################################

 

关于hadoop 的启动和关闭:

 

在/home/hadoop/hadoop-2.2.0/bin下

hdfs命令      用来初始化

hdfs namenode -format

 

在/home/hadoop/hadoop-2.2.0/sbin 下

启动

start-dfs.sh   #Start hadoopdfs daemons

start-yarn.sh    #Start allyarn daemons.  Run this on master node

关闭

stop-dfs.sh

stop-yarn.sh

 

另外:

start-all.sh 脚本包含 start-dfs.sh和start-yarn.sh 两个脚本  所以启动时可以直接执行此脚本

stop-all.sh 关闭  同理

 

###############################################################################

 

四,常见问题

 

4.1   slave节点DataNode无法启动

 

我搭建了很多次,这个问题每次都出现,所以总结了一下:

 

① 防火墙没关                                                解决办法:你懂得

② 所有节点hosts 链表不统一,或有错误     解决办法:你懂得

③ 因为多次format namenode 造成namenode 和datanode的clusterID不一致

解决方法:

方法一:更改slave Cluster ID 与master相同

修改每一个datanode上面的CID(位于dfs/data/current/VERSION文件夹中)使两    者一致

方法二:删除所有节点/home/hadoop/hadoop-2.2.0/dfs/data/下 curren目录 然后    重新start-dfs.sh 即可

 

 

 

 

其他问题暂时没有发现,后期再补

 

 

 

 

 

 

匆忙完稿,如有错误,敬请谅解,谢谢!

 

 

作者: 落 叶

 

时间:2013年11月13日

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值