设为首页 收藏本站
查看: 8314|回复: 0

[经验分享] Hadoop-2.5.1 编译安装步骤

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-25 09:22:47 | 显示全部楼层 |阅读模式
1
2
3
4
环境:  系统  CentOS 6.3 64 位  * 2
Master           10.10.55.112
Slave1           10.10.55.133
软件:  Hadoop- 2.5.1- src.tar.gz

一、准备环境
     1.1     分别设置节点ip地址(固定)  此步骤所有节点都要操作
1
vi /etc/sysconfig/network- scripts/ifcfg – eth0




     1.2     修改节点主机名此步骤所有节点都要操作
1
2
vi /etc/sysconfig/network   
以上两步骤需要重启服务器后才生效



   
  1.3     创建 hadoop 用户及主机名  此步骤所有节点都要操作
1
2
3
4
5
6
7
useradd   hadoop  
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master.Hadoop   //节点服务器设置为 slave1.Hadoop
vi   /etc/hosts                              
10.10.55.112 master.Hadoop                  
10.10.55.133 slave1.Hadoop



   
1.4     建立 hadoop 用户之间相互信任(互相无密码登陆)此步骤所有节点都要操作
1
2
3
4
5
6
7
切换至 hadoop 用户下执行   ssh-keygen -t rsa   
然后将自己的公钥以及其他服务器 hadoop 用户的公钥放置 hadoop 宿主目录下的.ssh/authorized_keys中,
注意 authorized_keys 默认不存在需要手动创建,并且必须设置权限为 600
         ssh-keygen生成密钥;-t生成密钥类型;dsa为dsa密钥认证的意思,密钥类型;-P用于提示密语;-f生成密钥文件;
ssh-keygen -t rsa                       
cat .ssh/id_dsa.pub >> .ssh/authorized_keys
ssh –version



   
   1.5   安装 java(建议每台机器的 JAVA_HOME 路径信息相同)此步骤所有节点都要操作
下载 jkd  http://www.oracle.com/technetwork/java/javase/downloads/index.html
     下载后解压至自己指定的目录如  /usr/java

wKioL1QiOijTwEAvAAGDkvebRdA519.jpg

wKiom1QiOgbCNgQtAADf-P0vens994.jpg
1
2
3
4
5
6
7
添加变量:以 root 用户  vi   /etc/profile
根据自己路径在最后添加以下三行
#jdk
export JAVA_HOME=/usr/java/jdk1.7.0_67                              
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib        
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin      
添加之后执行   sourc   /etc/profile    重新加载  建议 root 用户和 hadoop 用户都操作此步



   
     1.6    安装基本应用程序 (此步骤要求联公网)  此步骤只需在 master 上操作
1
2
yum -y install  svn   ncurses-devel   gcc*                                             
yum -y install lzo-devel zlib-devel autoconf    automake    libtool    cmake     openssl –devel





       1.7     安装 maven
1
2
3
4
下载 apache-maven-3.1.1-bin.tar.gz   
(下载地址   http://mirror.bit.edu.cn/apache/ ... en-3.2.3-bin.tar.gz  )
并解压    tar   zxvf   apache- maven- 3.2.3- bin.tar.gz
mv   apache-maven-3.2.3   maven     (改名)




wKiom1QiPMOTKPvrAATEJDRmNvI503.jpg
1
2
3
4
5
6
注意一下 maven 存放路径,可以自定义路径 我的路径是 /home/hadoop/maven 目录下
添加变量:以 root 用户  vi   /etc/profile
根据自己路径在最后添加以下两行
export MAVEN_HOME=/home/hadoop/maven  
export PATH=$PATH:$MAVEN_HOME/bin      
添加之后执行  sourc   /etc/profile   重新加载




     1.9     安装 protobuf(不安装,编译将无法完成)
Hadoop使用protocol buffer进行通信,需要下载和安装protobhf-2.5.0.tar.gz;由于官网已经无法下载了,
可以到百度云盘下载http://pan.baidu.com/s/1pJlZubT
编译安装 protobuf
  cd   protobuf - 2.5.0   
  ./configure
  make
  make install
检测  protoc –version

二、编译安装 hadoop-2.5.1

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

        Hadoop-2.2.0 源码包下载地址  http://apache.claz.org/hadoop/common/hadoop-2.5.1/
    红色标志  hadoop-2.5.1- src.tar.gz 为源码包
wKioL1QiPhuRy1umAAG3OzJ7eck847.jpg
    2.2   解压hadoop-2.5.1-src.tar.gz
wKioL1QiPkfDoejmAAM6Q9H24b8233.jpg
    2.3   开始编译
1
2
3
执行命令   mvn clean package –Pdist,native –DskipTests –Dtar      
此步骤要求逐级能访问公网,并且此步骤比较漫长,由于服务器配置和网上的不同因素,时间大致为1小时左右;
完成结果图类似如下:




wKioL1QiPouxyUxwAAjg4NGzOCk900.jpg
1
2
3
编译成功后,  /hadoop-dist/target/hadoop-2.5.1.tar.gz   就是我们需要的文件了;
将编译好的  /hadoop-dist/target/hadoop-2.5.1.tar.gz  文件分别拷贝到其他节点,
并将其解压,设置其属主、属组都为Hadoop用户(路径自定义,注:所有节点Hadoop路径必须相同,我这里所有服务器节点都放在/home/hadoop




wKiom1QiRMDw5WJHAAKy6qga9QM053.jpg
wKioL1QiRQjQ-1vMAAIOAsYsQKI826.jpg
1
2
3
4
5
6
7
然后添加环境变量: vi /etc/profile  此步骤所有节点都要操作
添加以下两条:
#set hadoop 环境变量                                             
export HADOOP_HOME=/root/hadoop-2.5.1         指定Hadoop安装路径
export PATH=$HADOOP_HOME/bin:$PATH                              
export CLASSPATH=$HADOOP_HOME/lib:$CLASSPATH                     
添加之后执行   sourc  /etc/profile   重新加载  建议 root 用户和 hadoop 用户都操作此步



   
     2.4  master 操作

1
解压/hadoop-dist/tast/target/hadoop-2.5.1.tar.gz 到 /home/hadoop 进入配置文件目录




wKiom1QiRT-AJv_tAASaw9mW2Wo306.jpg
1
2
3
在这里主要修改以下几个文件:(文件内容有些参数根据自己时间情况修改)
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地址)
1
10.10.55.133



  
  2.4.2          修改 core-site.xml 添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

      
        
                fs.defaultFS
                hdfs://10.10.55.112:9000
        
        
                io.file.buffer.size
                131072
        
        
                hadoop.tmp.dir
                file:/home/hadoop/hadoop-2.5.1/temp
                Abase for other temporary directories.
        
        
                hadoop.proxyuser.hduser.hosts
                *
        
        
                hadoop.proxyuser.hduser.groups
                *
        





   2.4.3          修改hdfs-site.xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

        
                dfs.namenode.secondary.http-address
                10.10.55.112:9001
        
        
                dfs.namenode.name.dir
                file:/home/hadoop/hadoop-2.5.1/dfs/name
        
        
                dfs.datanode.data.dir
                file:/home/hadoop/hadoop-2.5.1/dfs/data
        
        
                dfs.replication
                1
        
        
                dfs.webhdfs.enabled
                true
        




    2.4.4     修改mapred-site.xml 文件,添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

        
                mapreduce.framework.name
                yarn
        
        
                mapreduce.jobhistory.address
                10.10.55.112:10020
        
        
                mapreduce.jobhistory.webapp.address
                10.10.55.112:19888
        




    2.4.5          修改 yarn-site.xml 文件,添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        
        
                yarn.nodemanager.aux-services.mapreduce.shuffle.class
                org.apache.hadoop.mapred.ShuffleHandler
        
        
                yarn.resourcemanager.address
                10.10.55.112:8032
        
        
                yarn.resourcemanager.scheduler.address
                10.10.55.112:8030
        
        
                yarn.resourcemanager.resource-tracker.address
                10.10.55.112:8031
        
        
                yarn.resourcemanager.admin.address
                10.10.55.112:8033
        
        
                yarn.resourcemanager.webapp.address
                10.10.55.112:8088
        




    2.4.6        修改hadoop-env.sh  文件
1
修改JAVA_HOME值( export JAVA_HOME=/usr/java/jdk.1.7.0_67



    2.4.7         修改 yarn-env.sh文件
1
修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_67)



    2.4.8         传送文件至各个节点保持一致
1
2
3
配置文件修改完了,然后将修改后的所有文件都复制(覆盖)到各个节点 hadoop 目录下
scp hadoop-env.sh hdfs - site.xml mapred-site.xml slaves yarn-env.sh yarn -site.xml hadoop@10.10.55.133:/home/hadoop/hadoop-1.5.1/et/hadoop/
scp hadoop-env.sh hdfs- site.xml mapred-site.xml slaves yarn-env.sh yarn -site.xml hadoop@10.10.55.151:/home/hadoop/hadoop-1.5.1/et/hadoop/




三、启动Hadoop
    3.1   初始化Hadoop (注意:请关闭所有节点防火墙)
1
切换至 hadoop 用户,进入/home/hadoop/hadoop-2.2.0/bin/下执行命令 hdfs namenode - format  进行初始化






wKiom1QiRt3goWp8AAPBBeDzBq4533.jpg
...
wKioL1QiRzHzgdc2AAs-GOMtvMU937.jpg
1
2
初始化完之后会自动在/home/hadoop/hadoop-2.5.1/创建 dfs/name/目录
每次初始化都会对dfs进行操作,一般只要初始化一次就可以了,因为如果dfs里面有数据的话会把它给弄丢的



   
3.2   启动Hadoop (用 Hadoop 用户执行)注意:请关闭所有节点防火墙)
        切换至/home/hadoop/hadoop-2.5.1/sbin/目录下:
     3.2.1        执行脚本 ./start-dfs.sh
                  此时master 上会产生:(两个进程)

wKiom1QiR3eggq4TAAIQlS7ZtnA110.jpg
Slave 节点上会产:(DataNode进程)  dfs密钥同步到slave节点上
wKiom1QiR5ayGcXiAAGnoqZkos4784.jpg
         3.2.2         执行脚本 ./start-yarn.sh  (产生一个进程ResourceManager
                slave节点产生NodeManger进程
wKiom1QiR-uiAOYXAAGSLhuGeLo868.jpg
wKioL1QiSDTSN43TAABd2lurAjY204.jpg
四、测试
访问网页: http://10.10.55.112:8088
wKiom1QiSEuSp47wAAQ24XyXWAU057.jpg
访问网页:http://10.10.55.112:50070
wKiom1QiSLCzV4zUAAR1a16kVpY757.jpg
wKiom1QiSNzQJIFrAAE7T0DNQuA542.jpg
wKioL1QiSSiCwmb0AAM9uPd66QU501.jpg

至此,hadoop 已经启动

关于 hadoop  的启动和关闭:
/home/hadoop/hadoop-2.5.1/bin
hdfs 命令  用来初始化
hdfs namenode -format
/home/hadoop/hadoop-2.5.1/sbin  
启动
start-dfs.sh    #Start hadoop dfs daemons
start-yarn.sh   #Start all yarn daemons.   Run this on master node
关闭
stop-dfs.sh
stop-yarn.sh
另外:
start-all.sh  脚本包含  start-dfs.sh start -yarn.sh  两个脚本  所以启动时可以直接执行此脚本
stop-all.sh  关闭  同理

=========================================================================================

常见问题
1、   slave节点DataNode 无法启动
  • 搭建了很多次,这个问题每次都出现,所以总结了一下:
  • 防火墙没关                                                            解决办法:你懂得
  • 所有节点 hosts  链表不统一,或有错误           解决办法:你懂得
  • 查看节点日志提示namenode.rpc-address is not configured.发现node1没复制过去core-site.xml文件
  • 因为多次 format namenode  造成 namenode   datanode clusterID 不一致
解决方法:
方法一:更改 slave Cluster ID  与 master 相同
修改每一个 datanode 上面的 CID(位于 dfs/data/current/VERSION 文件夹中) 使两  者一致
方法二:删除所有节点/home/hadoop/hadoop-2.5.1/dfs/data/下  curren 目录  然后  重新 start-dfs.sh  即可


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25362-1-1.html 上篇帖子: Hadoop的NameNode无法启动异常 下篇帖子: 使用maven在linux上对hadoop 2.2进行编译
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表