摘自:http://blog.csdn.net/u014039577/article/details/49813531

由于日志数据量越来越大,数据处理的逻辑越来越复杂,同时还涉及到大量日志需要批处理,当前的flume-kafka-storm-Hbase-web这一套流程已经不能满足当前的需求了,所以只能另寻出路,于是想到了Hadoop这个东西。之前的storm是一个基于流式处理的实时分析系统,相比Hadoop的离线批处理各有千秋,两者相比,我有看到一个比较形象的比喻:Hadoop就像是纯净水,一桶一桶地搬,而Storm是用水管,预先接好,打开水龙头,水就源源不断的出来了。

同样,Hadoop的批处理也是相当的强大,高性能、高稳定、高吞吐量、分布式、批处理这些特点都是我们所需要的。于是,在目前的形势下,在之前的实时处理的基础上,我们想再加一个离线的日志批处理,于是用到了Hadoop。首先,我们得搭建好Hadoop集群,由于我也是第一次搭建Hadoop集群,其中遇到了许多的问题,可以说是一把辛酸泪,后面终于把集群搭建起来了,可算不负众望。

下面记录Hadoop的搭建过程:

1、首先到官网上下载一个Hadoop的压缩安装包,我安装用的版本是hadoop-2.7.1.tar.gz,由于我安装的是最新的版本,和Hadoop之前的版本有很大的差异,所以网上很多的教程都不适用,这也是导致在安装过程中遇到问题所在,下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

2、下载完成后(这个压缩包比较大,有201M,下载比较慢,耐心等待吧),放到Linux某个目录下,这里我用的系统是:CentOS release 6.5 (Final),我放的目录是:/usr/local/jiang/hadoop-2.7.1.tar.gz,然后执行:tar zxvf hadoop-2.7.1.tar.gz解压(这些操作都是要在集群中的主机上进行,也就是hadoop的master上面)

3、配置host文件

进入/etc/hosts,配置主机名和ip的映射, 这里是集群的每个机子都需要配置,这里我的logsrv02是主机(master),其余两台是从机(slave)

  1. [root@logsrv03 /]# vi /etc/hosts
  2. 172.17.6.142 logsrv02
  3. 172.17.6.149 logsrv04
  4. 172.17.6.148 logsrv03

4、jdk的安装(这里我的机子上面已经有了,所以就不需要再安装了)

我使用的jdk是jdk1.7.0_71,没有的需要安装,将jdk下载下来,解压到某个目录下,然后到/etc/profile中配置环境变量,在执行Java -version验证是否安装成功。

5、配置SSH免密码登陆

这里所说的免密码登录是相对于主机master来说的,master和slave之间需要通信,配置好后,master和slave进行ssh登陆的时候不需要输入密码。

如果系统中没有ssh的需要安装,然后执行:

  1. [root@logsrv03 ~]# ssh-keygen -t rsa

会在根目录下生成私钥id_rsa和公钥id_rsa.pub

  1. [root@logsrv03 /]# cd ~
  2. [root@logsrv03 ~]# cd .ssh
  3. [root@logsrv03 .ssh]# ll
  4. 总用量 20
  5. -rw-------  1 root root 1185 11月 10 14:41 authorized_keys
  6. -rw-------  1 root root 1675 11月  2 15:57 id_rsa
  7. -rw-r--r--  1 root root  395 11月  2 15:57 id_rsa.pub

然后将这里的公钥分别拷贝到其余slave中的.ssh文件中,然后要把公钥(id_dsa.pub)追加到授权的key中去:

  1. cat id_rsa.pub >> authorized_keys

然后修改权限(每台机子都需要修改),这点我也没太弄明白,具体可以参考:http://blog.csdn.net/leexide/article/details/17252369

  1. [root@logsrv04 .ssh]# chmod 600 authorized_keys
  2. [root@logsrv04 .ssh]# chmod 700 -R .ssh

将生成的公钥复制到从机上的.ssh目录下:

  1. [root@logsrv03 .ssh]# scp -r id_rsa.pub root@logsrv02:~/.ssh/
  2. [root@logsrv03 .ssh]# scp -r id_rsa.pub root@logsrv04:~/.ssh/

然后所有机子都需要重启ssh服务

  1. [root@logsrv03 .ssh]# service sshd restart
  2. [root@logsrv02 .ssh]# service sshd restart
  3. [root@logsrv04 .ssh]# service sshd restart

然后验证免密码登陆是否成功,这里在主机master这里验证:

  1. [root@logsrv03 .ssh]# ssh logsrv02
  2. [root@logsrv03 .ssh]# ssh logsrv04

如果在登陆slave不需要输入密码,则免密码登陆设置成功。

6、开始安装Hadoop,配置hadoop环境变量/etc/profile(所有机子都需要配置)

  1. export HADOOP_HOME=/usr/local/jiang/hadoop-2.7.1
  2. export PATH=$PATH:$HADOOP_HOME/bin

7、修改配置文件:

(1)、修改hadoop-2.7.1/etc/hadoop/hadoop-env.sh
  1. [root@logsrv03 /]# cd usr/local/jiang/hadoop-2.7.1
  2. [root@logsrv03 hadoop-2.7.1]# cd etc/hadoop/
  3. [root@logsrv03 hadoop]# vi hadoop-env.sh
  4. export JAVA_HOME=/usr/local/jdk1.7.0_71

(2)、修改hadoop-2.7.1/etc/hadoop/slaves

  1. [root@logsrv03 hadoop]# vi slaves
  2. logsrv02
  3. logsrv04

(3)、修改hadoop-2.7.1/etc/hadoop/core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://logsrv03:8020</value>
  5. </property>
  6. <property>
  7. <name>io.file.buffer.size</name>
  8. <value>131072</value>
  9. </property>
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>file:/opt/hadoop/tmp</value>
  13. </property>
  14. <property>
  15. <name>fs.hdfs.impl</name>
  16. <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
  17. <description>The FileSystem for hdfs: uris.</description>
  18. </property>
  19. <property>
  20. <name>fs.file.impl</name>
  21. <value>org.apache.hadoop.fs.LocalFileSystem</value>
  22. <description>The FileSystem for hdfs: uris.</description>
  23. </property>
  24. </configuration>

(4)、修改hadoop-2.7.1/etc/hadoop/hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.name.dir</name>
  4. <value>file:/opt/hadoop/dfs/name</value>
  5. </property>
  6. <property>
  7. <name>dfs.datanode.data.dir</name>
  8. <value>file:/opt/hadoop/dfs/data</value>
  9. </property>
  10. <property>
  11. <name>dfs.replication</name>
  12. <value>2</value>
  13. </property>
  14. </configuration>

(5)、修改hadoop-2.7.1/etc/hadoop/yarn-site.xml

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <property>
  4. <name>yarn.resourcemanager.address</name>
  5. <value>logsrv03:8032</value>
  6. </property>
  7. <property>
  8. <name>yarn.resourcemanager.scheduler.address</name>
  9. <value>logsrv03:8030</value>
  10. </property>
  11. <property>
  12. <name>yarn.resourcemanager.resource-tracker.address</name>
  13. <value>logsrv03:8031</value>
  14. </property>
  15. <property>
  16. <name>yarn.resourcemanager.admin.address</name>
  17. <value>logsrv03:8033</value>
  18. </property>
  19. <property>
  20. <name>yarn.resourcemanager.webapp.address</name>
  21. <value>logsrv03:8088</value>
  22. </property>
  23. <property>
  24. <name>yarn.nodemanager.aux-services</name>
  25. <value>mapreduce_shuffle</value>
  26. </property>
  27. <property>
  28. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  29. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  30. </property>
  31. </configuration>

(6)、修改hadoop-2.7.1/etc/hadoop/mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>logsrv03:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>logsrv03:19888</value>
  13. </property>
  14. </configuration>

8、这些配置文件配置完毕后,然后将整个hadoop-2.7.1文件复制到各个从机的目录下,这里目录最好与主机一致

  1. [root@logsrv03 hadoop-2.7.1]# scp -r hadoop-2.7.1 root@logsrv02:/usr/local/jiang/
  2. [root@logsrv03 hadoop-2.7.1]# scp -r hadoop-2.7.1 root@logsrv04:/usr/local/jiang/

9、到这里全部配置完毕,然后开始启动hadoop,首先格式化hdfs

  1. [root@logsrv03 hadoop-2.7.1]# bin/hdfs namenode -format
 

如果出现successfully formatted则表示格式化成功。
10、然后启动hdfs

  1. [root@logsrv03 hadoop-2.7.1]# sbin/start-dfs.sh
 

到这里,可以查看启动的进程:

主机logsrv03:
  1. [root@logsrv03 hadoop-2.7.1]# jps
  2. 29637 NameNode
  3. 29834 SecondaryNameNode

从机logsrv02、logsrv04:

  1. [root@logsrv04 hadoop-2.7.1]# jps
  2. 20360 DataNode
  1. [root@logsrv02 hadoop-2.7.1]# jps
  2. 10774 DataNode

11、启动yarn

  1. [root@logsrv03 hadoop-2.7.1]# sbin/start-yarn.sh

到这里,启动的进程:

主机logsrv03:
  1. [root@logsrv03 hadoop-2.7.1]# jps
  2. 29637 NameNode
  3. 29834 SecondaryNameNode
  4. 30013 ResourceManager

从机logsrv02、logsrv04:

  1. [root@logsrv02 hadoop-2.7.1]# jps
  2. 10774 DataNode
  3. 10880 NodeManager
  1. [root@logsrv04 hadoop-2.7.1]# jps
  2. 20360 DataNode
  3. 20483 NodeManager

到这里,恭喜整个集群配置完成,可以通过:http://logsrv03:8088/cluster查看hadoop集群图:


查看HDFS:
 

Hadoop-2.7.1集群环境搭建的更多相关文章

  1. Hadoop+HBase+ZooKeeper分布式集群环境搭建

    一.环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下: Hostname IP ...

  2. 大数据hadoop入门学习之集群环境搭建集合

    目录: 1.基本工作准备 1.虚拟机准备 2.java 虚拟机-jdk环境配置 3.ssh无密码登录 2.hadoop的安装与配置 3.hbase安装与配置(集成安装zookeeper) 4.zook ...

  3. Hadoop+Spark:集群环境搭建

    环境准备: 在虚拟机下,大家三台Linux ubuntu 14.04 server x64 系统(下载地址:http://releases.ubuntu.com/14.04.2/ubuntu-14.0 ...

  4. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...

  5. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  6. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  7. Hadoop集群环境搭建步骤说明

    Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的.对于玩hadoop的高手来说肯定没有什么问题,甚至可以说事“ ...

  8. Hadoop完全分布式集群环境搭建

    1. 在Apache官网下载Hadoop 下载地址:http://hadoop.apache.org/releases.html 选择对应版本的二进制文件进行下载 2.解压配置 以hadoop-2.6 ...

  9. 大数据 -- Hadoop集群环境搭建

    首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...

  10. Spark集群环境搭建——Hadoop集群环境搭建

    Spark其实是Hadoop生态圈的一部分,需要用到Hadoop的HDFS.YARN等组件. 为了方便我们的使用,Spark官方已经为我们将Hadoop与scala组件集成到spark里的安装包,解压 ...

随机推荐

  1. 读取和导出下载 excel 2003,2007 资料

    protected void Page_Load(object sender, EventArgs e) { //直接在bin add referece search Microsoft.Office ...

  2. java中jsoup框架解析html

    今天遇到对网页内容进行操作,思考了一下,先获取连接后的html内容,然后对html文档进行操作呗.思路没有问题,但是问题还是不少.于是便找到了jsoup这个神器了... 1.什么是jsoup? 百度百 ...

  3. 【转】android中如何查看某个线程的logcat--不错

    原文网址:http://my.oschina.net/u/236164/blog/51022 单一个项目由很多人开发,然后大家各自打各自的log.到最后logcat就根本没法看了. adb自带的参数里 ...

  4. (2015多校第6场)HDU5361--In Touch (Dijkstra应用)

    In Touch Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  5. BZOJ 3514 (动态树)

    这两天终于基本理解了Link-Cut Tree这种神一般的东西.然后就来做这道题了. 原题是CodeChef上的.CodeChef上没有强制在线,且时限更宽松,所以似乎用莫队一样的算法把询问分组就能水 ...

  6. npm 模块安装机制简介

    npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一. 正因为有了npm,我们只要一行命令,就能安装别人写好的模块 . $ npm install 本文介绍 npm ...

  7. Uber明年在中国将继续补贴,并大举进军100个城市!

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. Javascript 精髓整理篇之三(数组篇)postby:http://zhutty.cnblogs.com

    今天讲js的数组.数组是js中最基础的数据结构了. 主要讲讲数组实现栈,队列以及其他的基本操作.栈和队列都可以在数组头尾位置处理,所以,都有两种方式. 属性 1.length : 长度,表示数组元素的 ...

  9. 【创业积累】如何快速开发出一个高质量的APP

    [起] 今早,一个技术群里有人想快速做出一个app,然后询问技术方案,大概是这样, 拿到了200w投资,期望花20w两个月先做出一个app,包括ios,android, 先,呵呵,一下, 大概预估了一 ...

  10. FilterDispatcher 的作用(struts2.1.3以前,新版本改了)

    org.apache.struts2.dispatcher.FilterDispatcher是Struts2的主要的Filter,负责四个方面的功能: (1)执行Actions (2)清除Action ...