Hadoop、Zookeeper、Hbase集群安装配置过程及常见问题(一)准备工作

引言

最近由于科研的需要,从零开始搭建hadoop集群,包括单独的zookeeper以及hbase。

对于linux、hadoop等相关的基础知识掌握比较少,所以这一系列的分享适用于各种小白,想体验hadoop集群的。

同时,提出一些在搭建集群的过程中遇到的问题+解决方法。

主要是针对真正的集群搭建过程,也就是Distributed。

本篇主要介绍前期工作及常见问题,也算是对我最近几天的摸索进行一个总结。

一、搭建环境

本人比较喜欢最新的软件,虽然会存在各种不稳定,但是就是喜欢体验新。
所以搭建配置大致如下:
3个节点,一个Master,两个Slave。
系统环境:Ubuntu 16.04 64位 中文版 下载链接: http://www.ubuntu.org.cn/download/desktop
hadoop版本:2.7.3 下载链接: http://hadoop.apache.org/releases.html
zookeeper版本:3.4.9 下载链接: http://www-us.apache.org/dist/zookeeper/
Hbase版本:1.3.0 下载链接: http://www-us.apache.org/dist/hbase/

注意事项:并不是所有的版本都相互适应的,所以,再选择版本的时候一定要查看官方文档,hadoop、hbase等之间的版本支持关系。

二、给linux设置VNC远程桌面访问

大多数时间,我们使用的分布式节点,都是虚拟机形式的,很少是主机节点,服务器不是你自己可以控制的,所以远程访问比较有用了,远程访问还可以在windows系统里管理各个节点,唯一的缺点就是如果重启或者更换用户,VNC就没办法直接访问了,需要重新在主机或者服务器节点上登陆一下,具体能不能解决我还没找到答案。

远程怎么设置呢?

1、ctrl+alt+t唤出terminal【终端】

在保证节点可以上网的情况下,输入

sudo apt-get install xrdp

代码解释
sudo是在非linux的root用户下使用root权限操作
apt-get install  softwarename是linux下使用代码行安装软件的命令

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访问了,解决方法我还没有找到。

三、网络设置

安装好Linux以后,修改IP地址,可以选择不再同一个网段,只要网络是通的,但是网络速度会影响使用,所以做实验之类的需求最好还是本地机,局域网,同一个网段。

三个节点的IP映射:
172.18.5.4 Master
172.18.5.5 Slave1
172.18.5.6 Slave2

以上命名是为了明显的区分主节点和从节点的区别。

在linux里面自带gedit,可以像windows一样编辑各种文档,但是你想在编程方面进一步成熟的话,可以安装一个VIM,神器,各种不适应你的操作习惯。
这里插一个段子:
问:怎么样能够高效的产生一串随机数
答:让一个不懂编程的人使用vim。

sudo apt-get install vim


安装了这个编辑器以后,可以任意编辑文档,但是不安装也可以用gedit编辑。。。

在你安装linux的过程中,可能不是用master、slave命名,没关系,这个用户名只是为了方便你的记忆以及操作。
如果你想更改用户名执行
sudo vim /etc/hostname
代码解释:
以root用户用vim编辑/etc/hostname文件
进去以后,别乱敲,点 i ,进入插入模式,再修改。
确认修改无误以后,点 esc,退出插入模式,输入 :wq,保存并退出。如果不想修改了,就:q直接退出。

前面的三个节点的IP映射要在/etc/hosts文件修改。

sudo vim /etc/hosts

进入编辑模式后,将IP与对应的用户名放在一行,中间用一个tab间隔,之后使用的时候就可以直接用用户名替代IP。
推出编辑模式,保存。

修改用户名需要重启。重启后VNC无法直接访问了,必须要到主机上登陆一遍才能继续访问。

由此方法分别配置不同的节点。

配置好以后,在终端检验是否成功。

ping Master -c X

就是通过ping命令看看节点之间是否可以ping的通,最后斜体X代表次数,如果没有这个参数就会一直ping下去。虽然可以用 ctrl+z退出当前进程,但是还是设置一下比较好。

有字节返回就表示配置成功。

四、配置ssh无密码登陆节点

linux下的ssh是一个好东西。默认情况下,每次使用ssh命令(登陆远程主机)都需要输入远程主机的密码,一次两次没问题,次数多了输入密码就会很麻烦,所以可以通过这一步实现免密ssh。

因为在集群搭建的过程中,很多配置都是一样的,所以尽量都在master上进行统一化操作,再通过命令拷贝到不同的节点上进行个性化的修改。因此,ssh免密操作主要是Master对Slave的。


1、首先生成本机的公钥

cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa*            # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa       # 一直按回车就可以
代码解释:
cd 目录全路径:转到该目录下
rm 全路径文件:删除该文件
rm -r 全路径文件/文件夹:删除该文件/文件夹
ssh-keygen :生成私钥和公钥
参数-t rsa 表示 表示使用rsa 算法 进行加密,执行后,会在 /home/当前用户/.ssh 目录下找到 id_rsa(私钥) id_rsa.pub(公钥)

此操作生成了Master节点的公钥。

cat ./id_rsa.pub >> ./authorized_keys

此操作实现master节点无密码ssh本机。

可以通过
ssh Master
验证是否免密成功。
如果不成功,则需要重新操作,排查原因。

2、通过ssh将Master节点公钥传输到各个Slave节点


scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

代码解释:
scp 是用来在主机之间传输文件的命令
如果是文件夹的传输,则需要在scp后加上 -r这个参数
上述代码就是将Master生成的公钥(id_rsa.pub)传输到Slave1节点的hadoop用户下的/home/hadoop/文件夹下

此过程需要输入hadoop@Slave1的密码,输入以后显示传输完成。

再到Slave节点的hadoop账户下cat到这个公钥
mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub    # 用完就可以删掉了

和Master一样,需要在Master节点上ssh Slave1验证是否成功。

成功了以后,再用ssh做两个节点之间的通讯就可以免密码了,真的是够方便。

3、该步骤遇到的问题:

不知道什么原因,验证成功以后,使用一段时间,又需要输入密码,我也没有排查出来原因。
报的错是:
sign_and_send_pubkey:signing failed: agent refused operation

每次都重新操作1+2步骤很麻烦,在网上搜到了解决方案:
eval "$(ssh-agent -s)"
ssh-add

就可以重新免密登陆了。
我真不知道原因,希望大神看到了解答一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值