前言
本博客目的在于跟大家分享大数据平台搭建过程,是笔者半年的结晶。在大数据搭建过程中,希望能给大家提过一些帮助,这也是本博客的价值所在。
博客内容分为将五个部分,具体如下:
第一部分 集群平台搭建
第二部分 SSH登录和JDK安装
第三部分 Hadoop-2.6.0+zookeeper-3.4.6集群搭建
第四部分 Spark集群搭建
第五部分 Hive集群搭建
第六部分 Hbase 集群搭建
以下是本集群所需要的软件,大家可按需要进行下载:
Ubuntu14.04
VMware Workstation 12 Pro for Linux
Hadoop-2.6.0
jdk-7u80-linux-x64.gz
Zookeeper-3.4.6
Spark-1.5.0
Hbase-1.1.2
Hive-1.2.0
第一部分 Ubuntu物理机和虚拟机搭建
集群框架,采用一台物理机和两台虚拟机。在PC机上用easyBCD方式安装Win和Ubuntu双系统。
一.安装easyBCD
1.下载
网址:http://172.28.0.26/cache/4/02/crsky.com/f5eedf182f9ae67bdd575d0feaf80406/EasyBCD-v2.2.zip
2.设置引导
安装好easyBCD,打开并点击添加新条目–>安装–>NeoGrub–>配置,如图所示:
点击配置后,会跳出menu.lst文件,删除文件里面的所有内容,并复制以下内容到文件内:
title Install Ubuntu
root (hd0,1)
kernel (hd0,1)/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-14.04-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,1)/initrd.lz
注:如果Win操作系统有系统保留分区,则root处为1,即root(hd0,1);如果没有则为0,即root(hd0,0)。
二.安装Ubuntu
将buntu-14.04-desktop-amd64.iso文件拷贝到C盘。用解压软件打开,在casper文件下有两个文件:initrd.lz、vmlinuz.efi,将它们复制到C盘。
接下来重启PC,在引导界面选择NeoGrub,进入安装界面后,ctril+alt+t打开终端命令,输入以下命令需要使用的命令取消光盘驱动器挂载:
sudo umount -l /isodevice
三.Ubuntu相关配置
1.打开软件中心更改软件更新源,一般选择国内的网易。
2.列举本地更新
sudo apt-get update
3.安装可用更新
sudo apt-get upgrade
4.修改root用户登录
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
添加
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
allow-guest=false
5.设置 root用户密码,,并输入root用户的密码
sudo passwd root
6.卸载防火墙
ufw disable //关闭
sudo apt-get remove ufw //卸载
sudo ufw status //查看
7.安装ssh
安装ssh-server
sudo apt-get install openssh-server
安装ssh-client
sudo apt-get install openssh-client
验证:
ps -e | grep ssh
450 ??00:00:00 sshd //如果出现这个,则安装成功
重启ssh:
/etc/init.d/ssh restart
四.安装Ubuntu虚拟机
1.下载VMware Workstation 12 Pro for Linux
网址:http://www.vmware.com/cn/products/workstation/workstation-evaluation
密钥:
5A02H-AU243-TZJ49-GTC7K-3C61N
2.安装VMware
使用以下命令安装VMware,”/home/huai/桌面/“为我在Ubuntu下文件路径名,大家可跟据自己的做更改。
sudo chmod +x /home/huai/桌面/VMware-Workstation-Full-12.0.0-2985596.x86_64.bundle
sudo /home/huai/桌面/VMware-Workstation-Full-12.0.0-2985596.x86_64.bundle
3.安装虚拟机
注:虚拟机用户名要与物理机的用户名保持一致,如笔者的三台集群的用户名都是“huai”。
用VMware安装虚拟机,采用典型方式安装,操作过程很简单,就不在这叙述了,大家可另行百度。对于刚安装好Ubuntu虚拟机,是可以联网的。按照上面Ubuntu物理机的相关配置对虚拟机Ubuntu进行同样操作。
配置好虚拟机,关闭虚拟机和VMware。复制安装的虚拟机文件,构成两台虚拟机。
4.修改主机名
因为笔者搭建此集群是为了学习spark,故将三台集群主机名命为spark01、spark02和spark03。其中,park01为物理机,充当主节点。spark02和spark03为两台虚拟机的主机名。
修改物理机主机名,使用以下命令将主机名改为spark01:
sudo gedit /etc/hostname
修改虚拟机主机名:同上,分别修改为spark02和spark03。
五.修改IP
集群IP分别设为
192.168.8.101, 192.168.8.102, 192.168.8.103
1.设置虚拟机IP模式
虚拟机网卡设置为host-only模式(具体操作,请百度)
2.设置spark02的IP
通过界面设置IP
系统设置-->网络-->选项 -->IPv4设置--> method选择为manual--> 点击add按钮--添加
IP:192.168.8.102 子网掩码:255.255.255.0 网关:192.168.1.1--> apply
3.设置spark03的IP
通过同样的方式把spark03的IP设置为:192.168.8.103
4.设置物理机spark01的IP
给物理机设置静态IP有点麻烦,因为在学校用的是内网,根据网上很多方法设置后,都无法再上网了。以下这种方式是网上比较常见的修改方式,但是不好使,只作参考,修改方式如下:
1)一种令人不愉快的方式
打开:
sudo gedit /etc/network/interfaces
添加:
auto eth0
iface eth0 inet static
address 192.168.8.101
netmask 255.255.255.0
gateway 192.168.8.1
设置DNS域名解析:
打开:
sudo gedit /etc/resolv.conf
添加:
search nwu.edu.cn
nameserver 202.117.96.5
nameserver 202.117.96.10
nameserver 127.0.1.1
打开:
sudo gedit /etc/resolvconf/resolv.conf.d/tail
添加:
search nwu.edu.cn
nameserver 202.117.96.5
nameserver 202.117.96.10
nameserver 127.0.1.1
重启networking命令:
sudo /etc/init.d/networking restart
sudo /etc/init.d/resolvconf restart
笔者自己找到了两种方式设置一个固定的IP,简单且容易实现,关键在百度上都找不到。一种是采用桥接,第二种是绑定
2)采用桥接
1.点击桌面右上角网络图标栏中的"编辑连接",网络连接中选中"桥接",点击"添加";
2.对跳转出来选择连接类型窗口,选择"虚拟--桥接",点击"新建",
3.在桥接--桥接连接(c)处,点击"添加",选择"以太网",点击新建,在设备MAC地址(D)处.选择"eth0",并"保存"
4.点击IPv4设置,方法处选择为"手动",>点击"添加"设置IP为:192.168.8.101 子网掩码:255.255.255.0 网关:192.168.1.1,"保存"
3)采用绑定
采用绑定的方式与桥接方式操作一样,就是在操作2中,选择“虚拟--绑定”,其他操作一样。
六.修改主机名和IP的映射关系
整个集群的主机名和IP的映射关系的内容设置是一样的,分别在三台机子上操作以下命令:
sudo gedit /etc/hosts
添加:
192.168.8.101 spark01
192.168.8.102 spark02
192.168.8.103 spark03
七.重启
关闭两台虚拟机,并重启Ubuntu物理机
第二部分 SSH登录和JDK安装
一.SSH登录配置
本集群的用户名为”huai”,集群尽量用统一的用户名,用不同的ssh登录时,还要进行一些其他操作,很麻烦。
1.在物理机spark01上,使用以下命令,四个回车,并cd到相关目录,操作如下:
huai@spark01:~$ ssh-keygen -t rsa
huai@spark01:~$ cd /home/huai/.ssh
huai@spark01:~/.ssh$ ls
id_rsa id_rsa.pub
生成两个文件:id_rsa(私钥)、id_rsa.pub(公钥)
2.对两台虚拟机进行同样操作(如上)
3.将虚拟机的id_rsa.pub(公钥)传到spark01,”huai”是我集群的用户名,”huai”应改为你自己设定的用户名。分别在spark02和spark03进行以下操作:
scp id_rsa.pub huai@spark01:/home/huai/.ssh/id_rsa.pub.spark02
scp id_rsa.pub huai@spark01:/home/huai/.ssh/id_rsa.pub.spark03
4.在物理机上,按以下操作:
huai@spark01:~$ cd /home/huai/.ssh
huai@spark01:~/.ssh$ ls
id_rsa.pub id_rsa.pub.spark03
id_rsa id_rsa.pub.spark02
将公钥导入到综合authorized_keys文件中,在目录huai@spark01:~/.ssh$下使用导入命令:
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.spark02 >> authorized_keys
cat id_rsa.pub.spark03 >> authorized_keys
5.将spark01上的authorized_keys复制到spark02和spark03的/home/huai/.ssh/目录下
scp authorized_keys huai@spark02:/home/huai/.ssh/authorized_keys
scp authorized_keys huai@spark03:/home/huai/.ssh/authorized_keys
6.ssh常见错误修改
因为笔者的已经配置好,具体错误就没法再重现了。不过只要按以下操作之后,保证不会再有错误。
1):
sudo gedit /etc/ssh/sshd_config
打开文件后,注释”PermitRootLogin without-password”,使用”#”注释
并在其下面添加: PermitRootLogin yes
2):
打开:
sudo gedit /etc/ssh/ssh_config
添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
3):
如果有Agent admitted failure to sign using the key错误抛出,执行以下命令即可:
ssh-add
4):
如果ssh登录时,在known_hosts报出警告,后面显示一个数字,使用以下命令将其删除,比如显示数字”8”.
sed -i 8d /home/huai/.ssh/known_hosts
7.分别在每台上进行以下ssh登录,使用”exit”退出
ssh spark01
ssh spark02
ssh spark03
二.安装JDK
1.下载jdk,6和8不做考虑,8不支持,6版本太低,下载地址如下:
http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
2.安装
创建java文件夹:
sudo mkdir /usr/java
解压
sudo tar -zxvf /home/huai/桌面/jdk-7u80-linux-x64.gz