前言

在寒假前的一段时间,开始调研Hadoop2.2.0搭建过程,当时苦于没有机器,只是在3台笔记本上,简单跑通一些数据。一转眼一两个月过去了,有些东西对已经忘了。现在实验室申请下来了,分了10台机器(4G+500G),这足够我们玩的了。开始搭建Hadoop2.2.0分布式集群,也趁着这个机会把整个流程梳理一下。

在很多博客中有关于Hadoop2.2.0版本的安装过程,有的很全,但是按照去做,还是会出现一些问题卡在那里。有的时候需要结合几篇文档去搭建平台。在这篇博客汇总会把我们遇到的问题,以及搭建过程中发生的一些事情总结一下。有关于hadoop具体的安装过程和配置相应的文件,我们后续也会给出来。

如果你决定花点时间去读这篇文章了,请大家仔细读一下,因为每一个点,我们都在上面耽误了一些时间,梳理一下,大家如果遇到相应的问题,也算给大家提供了一个解决方案。

1、系统环境-配置静态IP:

Ubuntu环境,这里我们采用的是32位12.04.2版本。我们原先在老版本10.04中搭建,在安装ssh的时候,出现了问题。后来为了集群统一管理,我们把ubuntu整个版本升级到12.04(重装ubuntu)。

简单说一下ubuntu安装过程,在windows系统中,利用wubi安装是最简单的,点击自己安装,然后按照步骤执行。结束后,遇到一个棘手的问题:新装的ubuntu不能上网。而这是搭建hadoop环境的前提,保证可以上网。

解决方法:配置静态IP。

在ubuntu12.04版本中,右上角,有个上下图标,点击编辑连接,手动设置静态IP、网关、子网掩码、DNS。这样做的目的:是能保证ubuntu上网,是第一步。

上述是图形化配置静态IP,我们也可以通过如下步骤手动配置。

执行:

sudo gedit /etc/network/interfaces

输入:

 auto eth0
iface eth0 inet static
address 172.16.128.136
netmask 255.255.255.0
gateway 172.16.128.1

保存:重启网关

sudo /etc/init.d/networking restart

2、安装jdk

这里会遇到一些问题。原因是,如果你是新装的ubuntu基本上不会遇到这种问题,你可以按照下面(1)的步骤就可以配置好环境变量,通过Java -version就可以查看jdk版本。如果你是在操作别人的电脑,由于原来jdk版本不一致。要重新安装jdk,但不能影响别人用户下的jdk版本。

解决的办法就是,把自己要安装的jdk解压到本地用户如:/home/zz/jvm/jdk1.7.0_45,然后配置.bashrc环境变量。结束保存,source .bashrc后,java -version查看jdk版本号。

如果,我们把解压好的jdk放到桌面上了。我们: cd  桌面。

执行:

sudo cp -r jvm  /usr/lib

问题:一般我们移植jdk在不同机器之间互相拷贝,就会存在一个权限问题。这会导致即使我们按照正常的步骤配置好环境变量,在执行java  -version后,如果遇到权限问题,执行下面语句。

执行:jvm文件夹中放着jdk

sudo  chmod  -R  777  jvm    把所有权限付给jvm

sudo  chown -R  zz:zz  jvm       把jvm权限付给本用户,zz是当前用户。

2.1、JDK 安装:下载路径

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

选择:jdk-7u45-linux-i586.tar.gz

解压:tar  -zxvf  jdk-7u45-linux-i586.tar.gz

解压文件为:jdk1.7.0_45,可以指定路径解压或解压后把文件复制到指定路径。

配置环境变量:

执行:cd 进入根目录。

sudo gedit .bashrc

添加:

 export JAVA_HOME=/home/zz/jvm/jdk1.7.0_45
export JRE_HOME=/home/zz/jvm/jdk1.7.0_45/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

保存,关闭,执行

source .bashrc

java -version   查看版本

2.2、如果上面没有正常显示

sudo  gedit  /etc/profile:

添加,上面在.bashrc 中的内容。保存,执行。

上述的过程,适用于所有的过程。当你在公司里的时候,给你分配虚拟机的账号,你的所有操作不能影响别人的性能。比如:你要按章jdk1.7,而服务器的版本的jdk是1.6,这就要求,你只能把jdk解压到你用户的目录,在配置环境变量的时候,就指定你解压的目录中,这就使得,在不同的用户中,显示的jdk的版本可以是不一样的。如果你是新装的ubuntu,上述问题可能你不会遇到,也错过了一个学习的机会。

2.3 覆盖原有jdk(直接了当,我是这么干的)

为了集群管理方面,选在同一的安装路径。选择不是在本用户中,解压到/usr/lib/jvm/jdk1.7..

配置环境变量,如果在/etc/profile 文件中,配置完,执行source profile后依然jdk版本没有出来。在此当前用户 .bashrc 文件中,添加刚才的的export 路径名称。关闭,执行source .bashrc。Java -version 就会出现jdk的版本。

为什么我们采用这个路径:因为,先前在笔记本中搭建的hadoop集群中jdk路径就是此路径,也是为了兼容,方面。

分别添加:

 export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_45/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

3、更改ubuntu主机名

sudo  gedit  /etc/hostname

添加:cluster1

各个主机都要执行这一步,不同的就是cluster1-10。这里我们有10个节点。

重新启动,终端显示由原先的:zz@ubuntu~& 变成zz@cluster1-10~$

这是为了以后安装ssh,各主机之间可用通过ssh互联方面。

4、配置hosts文件

sudo gedit /etc/hosts

添加内容,如下:IP地址和名称是根据,你主机机器数来定的。

 127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.16.128.135 cluster1
172.16.128.136 cluster2
172.16.128.123 cluster3
172.16.128.124 cluster4
172.16.128.134 cluster5
172.16.128.133 cluster6
 

5、安装ssh

新安装完ubuntu后。

先执行:sudo apt-get update  更新一下最新的文件。

然后安装ssh:sudo apt-get install openssh-server

下面要做的事情是,ssh生成秘钥,各主机之间可以互相ping通。

进入根目录执行:

ssh-keygen -t rsa

cp id_rsa.pub authorized_keys

所有的机器都执行上面的步骤:然后,gedit  authorized_keys 把每一台机器上的 authorized_keys中的内容拷贝到一个文件中,然后通过scp复制到每一台机器中。例如你有6台机器,把6台中的authorized_keys 的内容复制在写入authorized_keys 中。

例如:下面cluster1、cluster2、cluster3等内容都复制到authorized_keys,目的就是为了各主机之间互相ping通。

 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnTV1H/ldg5njT3+jJlS6SGcidiS9tQ0cesLcN0LONZno/
NVaVNW79MKNj0LWUoDv/OZz7AQ0dDsbos9We8in9WQvVO2t2eoAuWExU5pqcv1tsRjXj43rKFCBJJedlXt+
4sirgQrlrwOCMloSOakncISLxSQ2a7MXUq+NJyVynyjfyykjC+p7Nl0rrnHllzfy28Etf3JzYGKoOhdiDqi
dA8O6xF8VsJOUTaqIc/g0RlHuHPzgaPEmRo+HWJHYda4uERmNSAlhuhBrq2PCNz0WDeHJtF2psDXVIhZeNms+
yJGh501mJCEnKwyediQHeFWc9J3JEGk0UaZdkzbYZ+VoR zz@cluster2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqqbQXmsAIccKCY6VWKhujvyGB88UGfi/v7i407VT9Mnd
CeP2yRUyn+HlZuZPxmCvqXSYDQUswUID8FYXZi3A6uKu2b7k+7juwZFj8tO5l3R4nAWxn1zqBk8sg0ubfBwc
xphoa/KrZq3h4TdfvhDivTdpG5chtWNlu3/JchmLDNYPcOcNYfndI6d/iDArP/cI4RDGbV4xDDOr65eX47KG
7i4zXlYeAJqOQ9IbbsIGkXRve1cfBp79dCNCPElmdWkCnRI3xa0rh3o5a7MLiIDuLHQCN8KPKORy55farme3
5K1bLV7rDmLdZVIY5GKdR7GgR/56wGZXw3CZPVlfDBFDZ zz@cluster1

最后在一台主机中authorized_keys拥有所有主机authorized_keys中的内容。

进入当前路径,执行:

scp authorized_keys cluster1:/home/zz/.ssh

然后不断的变化cluster后面的数字,就可以把文件复制到不同的主机上。

执行:

ssh cluster1或2或3等等。 就可以免密码登录。

总结:

如果,通过配置ssh免密码登录,可以通过ssh cluster1等之间免密码互联。就说明整个工作进展顺利。到了这一步,也说明我们移植工作进展的顺利。下面我们就可以把以前搭建的hadoop整个目录移植到当前用户下,然后通过配置,master和solve节点就可以启动hadoop了。这就是下面的工作。

Hadoop2.2.0分布式安装配置详解[1/3]的更多相关文章

  1. Hadoop2.2.0分布式安装配置详解[2/3]

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

  2. Hadoop2.2.0分布式安装配置详解[3/3]

    测试启动 按照下面的每一步执行,执行完一定要看输出的信息,注意warn或error或fatal的情况.因为这都是可能是问题出现的地方.出现一个问题,不解决,可能就会影响接下来的测试.这才是真正的工作量 ...

  3. vs2017+opencv4.0.1安装配置详解(win10)

    一.说明 笔者之前已经安装过了vs2017,对应的opencv是3.4.0版本的.但现在想体验下opencv4的改变之处,所以下载了最新的opencv4.0.1. vs2017的安装请自行搜索安装,本 ...

  4. Eclipse IDE for C/C++ Developers安装配置详解

    Eclipse IDE for C/C++ Developers安装配置详解(转) 转自:http://hi.baidu.com/ltb6w/item/986532efd712460f570f1ddc ...

  5. Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel

    本文引用自:Cloudera CDH .Impala本地通过Parcel安装配置详解及什么是Parcelhttp://www.aboutyun.com/forum.php?mod=viewthread ...

  6. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  7. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  8. JDK10安装配置详解

    JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包:        地址:http://www.oracle.com/technetwork/java/javase/dow ...

  9. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

随机推荐

  1. PowerDesigner表创建脚本双引号问题

    在使用PowerDesigner表属性的Preview查看创建脚本的时候,发现大多表名和字段名都加上了双引号,而且有引号的都是大小写混合的,导致创建的表里,表名和字段名也都是大小写混合的. 在一番搜索 ...

  2. 【Java】 剑指offer(54) 二叉搜索树的第k个结点

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 给定一棵二叉搜索树,请找出其中的第k小的结点. 思路 设置全局变量 ...

  3. C#资源管理器

    窗体搭建:ContextMenuStrip右键菜单,Treeview树形菜单,Listview控件 新建"我的文件"类: public class MyFile { public ...

  4. Laravel 核心概念

    工欲善其事,必先利其器.在开发Xblog的过程中,稍微领悟了一点Laravel的思想.确实如此,这篇文章读完你可能并不能从无到有写出一个博客,但知道Laravel的核心概念之后,当你再次写起Larav ...

  5. 004.Docker镜像管理

    一 镜像基本操作 镜像是一个包含程序运行必要依赖环境和代码的只读文件,其本质是磁盘上一系列文件的集合.它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 1 ...

  6. Codeforces.297C.Splitting the Uniqueness(构造)

    题目链接 \(Description\) 给定一个长为n的序列A,求两个长为n的序列B,C,对任意的i满足B[i]+C[i]=A[i],且B,C序列分别至少有\(\lfloor\frac{2*n}{3 ...

  7. POJ.2750.Potted Flower(线段树 最大环状子段和)

    题目链接 /* 13904K 532ms 最大 环状 子段和有两种情况,比如对于a1,a2,a3,a4,a5 一是两个端点都取,如a4,a5,a1,a2,那就是所有数的和减去不选的,即可以计算总和减最 ...

  8. 项目出现小红叉,类名上带有 Implicit错误

    Implicit super constructor Object() is undefined for default constructor. Must define an explicit co ...

  9. tableview 选中一行后,不显示选中颜色

    tableview 选中一行后,不显示选中颜色 千万不要将tableview的allowsSelection设置成NO,那样的话可能导致tableview不能响应点击动作. 应该使用:cell.sel ...

  10. css3 flex布局结合transform生成一个3D骰子

    预览地址: https://zhaohh.github.io/flex-dice/index.html 1 Flex 布局 首先聊聊Flex 布局,Flex 布局又称"弹性布局", ...