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