Hadoop集群新增节点实现方案

又是一年毕业季,实验室集群维护工作交接的同时又要将两台超算中心的刀片机(感觉有点大材小用了...)加入到集群,特做一个step by step的安装指南,以备后用。

1、修改新增机器的机器名,根据资料1,分别用hostname命令修改和直接对/etc/hostname、/etc/hosts文件做了修改,其中hosts包含其他各节点IP地址与机器名的对应关系。(hostname是临时修改,重启后失效。而修改hostname和hosts只有重启之后才生效,由于某些原因不能重启电脑,特做两种操作。)

hostname dm6

2、更新软件源列表信息,根据资料2,使用了163的源,将/etc/apt/sources.list文件中的内容删除,替换成一下内容,之后运行 sudo apt-get update 命令(一下内容针对ubuntu 12.04版,其他版本会有所不同,需使用不同的软件源列表信息):

deb http://mirrors.163.com/ubuntu/ precise main restricted
deb-src http://mirrors.163.com/ubuntu/ precise main restricted
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb http://mirrors.163.com/ubuntu/ precise universe
deb-src http://mirrors.163.com/ubuntu/ precise universe
deb http://mirrors.163.com/ubuntu/ precise-updates universe
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe
deb http://mirrors.163.com/ubuntu/ precise multiverse
deb-src http://mirrors.163.com/ubuntu/ precise multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted
deb http://mirrors.163.com/ubuntu/ precise-security universe
deb-src http://mirrors.163.com/ubuntu/ precise-security universe
deb http://mirrors.163.com/ubuntu/ precise-security multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

3、安装jdk,试了一下自动安装,老是出问题,就从oracle官网下载了相关jdk安装文件,文件名:jdk-6u43-linux-x64.bin,将其复制到/usr/lib/jvm文件夹(若没有jvm文件夹,新建之),加压,修改文件等,步骤如下:

1. 下载jdk6.0

下载的应该是64-linux下的bin文件

2. 安装jdk6.0

修改bin文件的权限

chmod u+x  jdk-6u43-linux-x64.bin

在目标安装处新建jvm文件夹

sudo mkdir /usr/lib/jvm

将bin文件拷贝到jvm文件夹下

sudo cp 源文件.bin /usr/lib/jvm

解压bin文件

sudo bin/jdk-6u43-linux-x64.bin生成jdk1.6.0_43文件夹

3. 设置环境变量,用gedit打开/etc/profile文件

sudo gedit /etc/profile

在文件的最后面增加:

    export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_43

    export JRE_HOME=/usr/lib/jvm/jdk1.6.0_43/jre

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

    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

4. 将系统默认的jdk修改过来

    $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_43/bin/java 300

    $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_43/bin/javac 300

    $ sudo update-alternatives --config java 
    $ sudo update-alternatives --config javac


5. 检测,输入java -version


java version "1.6.0_43"

Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

 4、将主节点的hadoop文件夹拷贝到新添加的节点,并作相应修改,在操作中,本人做的操作如下:

1、将hadoop拷贝至新增节点/home目录下
2、修改新增节点conf/hadoop-env.sh文件中的jdk目录为如下内容:export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_43
3、修改hadoop文件夹的使用权限,本人做了如下修改:chmod 777 * -R
4、修改主控节点,将新增节点的IP地址添加至主控节点的slaves文件。并将新加节点的IP 机器名 添加至etc/hosts中。

5、新增节点添加ssh应用,略过。主控节点与新增节点建立ssh连接。各节点执行一下命令:

ssh-keygen -t rsa

之后一直enter,设置为无密码访问。 将主控节点/root/.ssh/下的authorized_keys拷贝到新增节点的/root/.ssh/。

scp /root/.ssh/authorized_keys root@dm6:/root/.ssh/

这里是建立主控节点到从节点的无密码访问。如果不运行上面一行代码,会出现找不到.ssh的情况(这个错误已经遇到)。

如果想添加从节点到主控节点的无密码访问,只需在从节点生成密钥,拷贝到主控节点的.ssh文件夹下,但是要注意文件名字不要重复(对ssh不熟,个人推测,未加验证)。

6、开启hdfs。

7、hbase

hbase-env.sh中修改jdk的地址。修改hbase-site.xml中的hbase.zookeeper.quorum属性。启动,与hdfs相似,这里就省略了。

PS:

中间遇到一些ssh拒绝访问、主节点卡死等情况,没有处理,过一段时间就好了,具体不知道是什么原因,待查...

ubuntu 下tar.gz文件解压缩
tar.gz格式
解压:[*******]$tar -xvzf FileName.tar.gz 

资料1:http://www.2cto.com/os/201108/101585.html

资料2:http://www.acyoo.com/archives/2550.html

原文地址:https://www.cnblogs.com/Deron/p/2953741.html