引言
最近由于科研的需要,从零开始搭建hadoop集群,包括单独的zookeeper以及hbase。
对于linux、hadoop等相关的基础知识掌握比较少,所以这一系列的分享适用于各种小白,想体验hadoop集群的。
同时,提出一些在搭建集群的过程中遇到的问题+解决方法。
主要是针对真正的集群搭建过程,也就是Distributed。
本篇主要介绍前期工作及常见问题,也算是对我最近几天的摸索进行一个总结。
一、搭建环境
二、给linux设置VNC远程桌面访问
大多数时间,我们使用的分布式节点,都是虚拟机形式的,很少是主机节点,服务器不是你自己可以控制的,所以远程访问比较有用了,远程访问还可以在windows系统里管理各个节点,唯一的缺点就是如果重启或者更换用户,VNC就没办法直接访问了,需要重新在主机或者服务器节点上登陆一下,具体能不能解决我还没找到答案。
远程怎么设置呢?
1、ctrl+alt+t唤出terminal【终端】
在保证节点可以上网的情况下,输入
sudo apt-get install xrdp
xrdp可以理解成linux支持远程访问的一个软件。
同样的方法可以安装JDK
sudo apt-get install openjdk-7-jre openjdk-7-jdk
2、安装结束以后,在linux系统左上角找到搜索计算机图标,点击搜索【桌面共享】,在里面进行如下配置:
主要是第一项要勾选。
3、然后去VNC官网下载客户端https://www.realvnc.com/download/vnc/
支持的系统比较多。
启动以后:
输入需要远程的ip,ok以后双击图标就可以访问了。
这里肯定要求是局域网,也就是互相可以通讯。
用此方法设置不同的节点,以后你就可以体会到方便了。
这一步没遇到什么问题,就是必须要登陆后的状态,才可以用VNC远程访问。如果有了重启或者切换用户的操作,就没办法再次VNC访问了,解决方法我还没有找到。
三、网络设置
sudo apt-get install vim
sudo vim /etc/hostname
代码解释:
sudo vim /etc/hosts
进入编辑模式后,将IP与对应的用户名放在一行,中间用一个tab间隔,之后使用的时候就可以直接用用户名替代IP。
由此方法分别配置不同的节点。
ping Master -c X
就是通过ping命令看看节点之间是否可以ping的通,最后斜体X代表次数,如果没有这个参数就会一直ping下去。虽然可以用 ctrl+z退出当前进程,但是还是设置一下比较好。
四、配置ssh无密码登陆节点
linux下的ssh是一个好东西。默认情况下,每次使用ssh命令(登陆远程主机)都需要输入远程主机的密码,一次两次没问题,次数多了输入密码就会很麻烦,所以可以通过这一步实现免密ssh。
1、首先生成本机的公钥
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa* # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回车就可以
代码解释:
cat ./id_rsa.pub >> ./authorized_keys
此操作实现master节点无密码ssh本机。
ssh Master
验证是否免密成功。
2、通过ssh将Master节点公钥传输到各个Slave节点
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
代码解释:
mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就可以删掉了
和Master一样,需要在Master节点上ssh Slave1验证是否成功。
3、该步骤遇到的问题:
sign_and_send_pubkey:signing failed: agent refused operation
每次都重新操作1+2步骤很麻烦,在网上搜到了解决方案:
eval "$(ssh-agent -s)"
ssh-add