前言

在寒假前的一段时间,开始调研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. hdu 1253 3维迷宫 在规定时间内能否出迷宫 (3维BFS)

    题意:有一个人要在魔王回来之前逃出城堡.1表示墙,0表示路.魔王将在T分钟后回到城堡 起点可以是墙,但是人能走出.而终点也可以是墙,那自然就走不出了,但是要判断. 剪枝:如果终点是门或者从起点到终点的 ...

  2. 开始写博客,学习Linq(2)

    linq的功能是什么? 它将极大地改变应用程序或组件处理数据的方式.这是第一个功能. LINQ to Objects.LINQ to SQL和LINQ to XML,是LINQ三大主要功能,当然LIN ...

  3. DbCommandInterceptor抓取EF执行时的SQL语句

    EF6.1也出来不少日子了,6.1相比6.0有个很大的特点就是新增了System.Data.Entity.Infrastructure.Interception 命名空间,此命名空间下的对象可以允许我 ...

  4. POJ 3421 X-factor Chains (因式分解+排列组合)

    题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...

  5. Codeforces 460D Little Victor and Set(看题解)

    Little Victor and Set 其他都很好求, 只有k == 3的时候很难受.. 我们找到第一个不大于l的 t, 答案为 l, 3 * t, (3 * t) ^ l 感觉好像是对的, 感觉 ...

  6. CF868 F. Yet Another Minimization Problem 决策单调优化 分治

    目录 题目链接 题解 代码 题目链接 CF868F. Yet Another Minimization Problem 题解 \(f_{i,j}=\min\limits_{k=1}^{i}\{f_{k ...

  7. AGC015 C-Nuske vs Phantom Thnook AtCoder 思路 前缀和

    目录 题目链接 题解 代码 题目链接 AGC015 C-Nuske vs Phantom Thnook AtCoder 题解 树的性质有: 如果每个蓝色连通块都是树,那么连通块个数=总点数−总边数. ...

  8. BZOJ.3450.(JoyOI1952) Easy(期望)

    题目链接 /* 设f[i]为到i的期望得分,c[i]为到i的期望连续长度 则若s[i]=='x',f[i]=f[i-1], c[i]=0 s[i]=='0',f[i]=f[i-1]+2*c[i-1]+ ...

  9. ps怎么撤销的三种方法和ps撤销快捷键以及连续撤销多步快捷键

    内容提要:文章综合介绍ps撤销快捷键相关的一些操作,包括PS怎么撤销.PS撤销多步.ps连续撤销快捷键.历史记录面板操作等等. 关于ps怎么撤销操作,有多种方法:使用PS撤销快捷键.编辑菜单.文件菜单 ...

  10. unity下3d模型的透明处理

    1.若只是改变模型的透明度:点击模型,在Inspector中可以看到很多模型的属性.找到要改变透明度的地方,更改shader渲染的方式选中Transparent(透明度)的diffuse,之后调节Ma ...