Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
2017-03-16 11:54
791 查看
转载地址:http://blog.csdn.net/u013327467/article/details/45675705
本博客目的在于跟大家分享大数据平台搭建过程,是笔者半年的结晶。在大数据搭建过程中,希望能给大家提过一些帮助,这也是本博客的价值所在。
博客内容分为将五个部分,具体如下:
第一部分 集群平台搭建
第二部分 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
集群框架,采用一台物理机和两台虚拟机。在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文件,删除文件里面的所有内容,并复制以下内容到文件内:
2
3
4
5
6
7
[/code]
注:如果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打开终端命令,输入以下命令需要使用的命令取消光盘驱动器挂载:
[/code]
三.Ubuntu相关配置
1.打开软件中心更改软件更新源,一般选择国内的网易。
2.列举本地更新
[/code]
3.安装可用更新
[/code]
4.修改root用户登录
[/code]
添加
2
3
4
5
[/code]
5.设置 root用户密码,,并输入root用户的密码
[/code]
6.卸载防火墙
2
3
[/code]
7.安装ssh
安装ssh-server
[/code]
安装ssh-client
[/code]
2
3
4
5
6
7
[/code]
四.安装Ubuntu虚拟机
1.下载VMware Workstation 12 Pro for Linux
网址:http://www.vmware.com/cn/products/workstation/workstation-evaluation
密钥:
[/code]
2.安装VMware
使用以下命令安装VMware,”/home/huai/桌面/“为我在Ubuntu下文件路径名,大家可跟据自己的做更改。
2
3
[/code]
3.安装虚拟机
注:虚拟机用户名要与物理机的用户名保持一致,如笔者的三台集群的用户名都是“huai”。
用VMware安装虚拟机,采用典型方式安装,操作过程很简单,就不在这叙述了,大家可另行百度。对于刚安装好Ubuntu虚拟机,是可以联网的。按照上面Ubuntu物理机的相关配置对虚拟机Ubuntu进行同样操作。
配置好虚拟机,关闭虚拟机和VMware。复制安装的虚拟机文件,构成两台虚拟机。
4.修改主机名
因为笔者搭建此集群是为了学习spark,故将三台集群主机名命为spark01、spark02和spark03。其中,park01为物理机,充当主节点。spark02和spark03为两台虚拟机的主机名。
修改物理机主机名,使用以下命令将主机名改为spark01:
[/code]
修改虚拟机主机名:同上,分别修改为spark02和spark03。
五.修改IP
集群IP分别设为
[/code]
1.设置虚拟机IP模式
2.设置spark02的IP
通过界面设置IP
2
[/code]
3.设置spark03的IP
通过同样的方式把spark03的IP设置为:192.168.8.103
4.设置物理机spark01的IP
给物理机设置静态IP有点麻烦,因为在学校用的是内网,根据网上很多方法设置后,都无法再上网了。以下这种方式是网上比较常见的修改方式,但是不好使,只作参考,修改方式如下:
1)一种令人不愉快的方式
2
3
4
5
6
7
8
9
[/code]
设置DNS域名解析:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[/code]
笔者自己找到了两种方式设置一个固定的IP,简单且容易实现,关键在百度上都找不到。一种是采用桥接,第二种是绑定
2)采用桥接
2
3
4
[/code]
3)采用绑定
[/code]
六.修改主机名和IP的映射关系
整个集群的主机名和IP的映射关系的内容设置是一样的,分别在三台机子上操作以下命令:
2
3
4
5
6
7
[/code]
七.重启
[/code]
一.SSH登录配置
本集群的用户名为”huai”,集群尽量用统一的用户名,用不同的ssh登录时,还要进行一些其他操作,很麻烦。
1.在物理机spark01上,使用以下命令,四个回车,并cd到相关目录,操作如下:
2
3
4
[/code]
生成两个文件:id_rsa(私钥)、id_rsa.pub(公钥)
2.对两台虚拟机进行同样操作(如上)
3.将虚拟机的id_rsa.pub(公钥)传到spark01,”huai”是我集群的用户名,”huai”应改为你自己设定的用户名。分别在spark02和spark03进行以下操作:
2
[/code]
4.在物理机上,按以下操作:
2
3
4
[/code]
将公钥导入到综合authorized_keys文件中,在目录huai@spark01:~/.ssh$下使用导入命令:
2
3
[/code]
5.将spark01上的authorized_keys复制到spark02和spark03的/home/huai/.ssh/目录下
2
[/code]
6.ssh常见错误修改
因为笔者的已经配置好,具体错误就没法再重现了。不过只要按以下操作之后,保证不会再有错误。
1):
[/code]
打开文件后,注释”PermitRootLogin without-password”,使用”#”注释
并在其下面添加: PermitRootLogin yes
2):
2
3
4
5
6
7
[/code]
3):
如果有Agent admitted failure to sign using the key错误抛出,执行以下命令即可:
[/code]
4):
如果ssh登录时,在known_hosts报出警告,后面显示一个数字,使用以下命令将其删除,比如显示数字”8”.
[/code]
7.分别在每台上进行以下ssh登录,使用”exit”退出
2
3
[/code]
二.安装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文件夹:
[/code]
解压
[/code]
修改文件权限
[/code]
3.修改环境变量
因为笔者集群已经搭建好了,为了让大家不要经常修改环境变量,笔者在此处把所有安装包的环境变量都列出来,供大家参考。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[/code]
刷新
[/code]
4.验证
使用命令java -version,如果出现java version “1.7.0_80”,则安装成功
5.设置jdk默认
如果Ubuntu上已经安装过openjdk纳闷需要设置默认jdk。若以上验证成功,可以跳过设置默认jdk。依次操作以下命令:
2
3
4
5
6
[/code]
一.集群规划
文字描述:本集群仅有三台机子:spark01、spark02和spark03。三台都安装hadoop-2.6.0,zookeeper-3.4.6。spark01和spark02共运行了两个namenode,两个datanode运行spark02和spark03上。
二.zooekeeper配置
1.建立spark文件夹
2
3
[/code]
2.解压
[/code]
3.修改zoo.cfg文件
2
3
[/code]
4.配置zoo.cfg
2
3
4
5
6
7
8
9
10
11
12
[/code]
5.建立文件夹
2
[/code]
6.设置myid
在5)中建立的tmp文件夹下创建一个空文件,并在其中写入”1“。
2
3
4
5
[/code]
7.修改环境变量
虽然前面已经把所有的环境变量都设置好了,但这个步骤是环境配置必须的操作,所以在此处重复一遍
2
3
4
5
6
7
[/code]
8.将配置好的zookeeper拷贝到其他节点
2
[/code]
9.修改虚拟机的myid
2
3
4
5
6
7
[/code]
10.修改虚拟机的环境变量
按7中的操作分别修改虚拟机spark02和spark03的环境变量。
三.搭建hadoop集群
1.下载hadoop
网址:http://mirror.bit.edu.cn/apache/hadoop/core/
2.解压
2
3
[/code]
3.配置hadoop环境文件
注:在操作hadoop-env.sh,注释以下内容
2
[/code]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[/code]
按以下操作依次修改hadoop其它配置文件,可以直接复制到配置文件。相关文件属性以及细节,可以查阅其他资料。
4.gedit core-site.xml
2
3
4
5
6
7
8
9
10
11
12
13
[/code]
5.gedit hdfs-site.xml
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
[/code]
6.mv mapred-site.xml.template mapred-site.xml
gedit mapred-site.xml
2
3
4
5
6
[/code]
7.gedit yarn-site.xml
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[/code]
8.gedit slaves
2
[/code]
10.复制到其他节点
2
[/code]
11.修改环境变量,可略过
2
3
4
5
6
7
[/code]
12.验证
输入以下命令,如果出现hadoop对应的版本,则hadoop配置成功。
[/code]
三.集群启动(严格按照下面的步骤)
1.启动zookeeper集群(分别在spark01、spark02、spark03上启动zk)
2
3
4
5
[/code]
2.启动journalnode(分别在spark01、spark02、spark03上启动journalnode)
2
3
4
[/code]
运行jps命令检验,spark01、spark02、spark03上多了JournalNode进程
3.格式化HDFS
在主节点spark01上执行命令
[/code]
格式化成功会生成tmp文件,其路径为core-site.xml中的hadoop.tmp.dir配置路径
4.将tmp拷到其他节点
注意tmp的路径:
2
3
[/code]
5.格式化ZK
2
[/code]
6.启动HDFS
2
3
[/code]
7.启动YARN.resourcemanager
[/code]
8.验证
通过以下IP用浏览器访问,一个处于active,一个处于standby,说明集群启动成功。
2
3
4
[/code]
9.验证HDFS HA
2
3
[/code]
2
3
4
5
[/code]
2
3
[/code]
2
3
4
5
6
7
[/code]
到这,hadoop集群相当于已经成功搭建,剩下的就是要搭建基于hadoop的其他组件,如spark,hive,hbase。相信通过自学搭建hadoop集群的人儿,一定受了不少折腾。作为不是技术大牛的人儿,唯有屡败屡战,才能祭奠内心那份对技术的热血澎湃。
因为spark 源代码是使用Scala语言,所以需要安装Scala环境。
一.安装 Scala
1.下载
网址:http://www.scala-lang.org/download/
2.解压
[/code]
3.修改环境变量
2
3
4
5
6
7
[/code]
4.显示版本
2
3
[/code]
测试
输入”scala”命令,进入scala交互界面
2
3
[/code]
6.将scala复制到其他节点
2
[/code]
7.重复 3修改其他节点的环境变量
二.spark集群搭建
1.下载
网址:http://mirror.bit.edu.cn/apache/spark/
2.解压
[/code]
3.文件名修改为:spark-1.5.0
[/code]
4.修改环境变量
2
3
4
5
6
7
[/code]
5.配置spark-env.sh
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[/code]
6.配置slaves
2
3
4
5
6
7
8
9
10
[/code]
7.把spark复制到其他节点
2
3
[/code]
8.修改虚拟阶环境变量
2
3
4
5
6
7
8
[/code]
三.启动集群
1.启动zookeeper
2
[/code]
2.启动hadoop集群,在hadoop的sbin目录下执行:
[/code]
3.启动spark集群
[/code]
5.Web管理界面
[/code]
Spark有好几个模块,如SparkSQL,Graphx,MLlib。因为Mapreduce处理速率不如Spark快,Spark将成为Mapreduce的替代品。对于Spark,我主要学习了机器学习MLlib和SparkSQL。如果你对大数据感兴趣,那么建议好好研究一下Spark。
一.概述
hive安装可分为四部分:
2
3
4
[/code]
搭建分布:mysql,Metastore安装配置在主节点spark01上, HiveClient客户端安装在spark02上。注:HiveClient客户端也可以不配置。
三.安装mysql
mysql只需在物理机spark01上安装,Ubuntu软件中心下载安装mysql服务器
1.配置mysql
2
3
4
5
6
7
8
9
10
[/code]
2.登陆mysql
[/code]
3.建立hive数据库,并对其授权,注’huai’为你设立的登录密码
2
3
4
[/code]
4.修改hive数据库字符
一定要修改,不然hive建表时会报错。
[/code]
5.修改允许远程登录mysql
2
3
[/code]
三.安装Hive
1.下载
网址:http://mirrors.cnnic.cn/apache/hive/
2.解压
2
3
4
[/code]
3.修改配置文件名
在hive-1.2.0/conf下
2
3
4
[/code]
4.gedit hive-env.sh
2
[/code]
5.gedit hive-log4j.properties
添加
[/code]
6.新建logs文件
[/code]
7.gedit hive-site.xml
删除所有内容,添加如下内容.注意配置文件中的’huai’为mysql登录密码,记得修改
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[/code]
8.配置环境变量
2
3
4
5
6
7
8
[/code]
9.在hive/lib下有个jline的jar,将hadoop内的这个jar包换成一致的,否则会启动hive会报错。
10.hive和mysq安装完成后,将mysql-connector-java-5.1.25-bin.jar连接jar拷贝到hive-1.2.0/lib目录下,在hive-1.2.0/bin下,运行:
[/code]
11.访问 http://192.168.8.101:50070
查看hadoop文件系统,多了个hive文件,证明安装成功。
12.修改hive文件权限
[/code]
四.配置hiveserver
gedit hive-site.xml
添加:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[/code]
五.Hive客户端配置
1.将hive从Master节点(spark01)拷贝到Slave节点(spark02)上
[/code]
2.配置Metastore的连接信息
在hive-1.2.0/conf下
2
3
4
5
6
[/code]
3.修改环境变量
2
3
4
[/code]
一.配置hbase
1.下载
网址:http://mirrors.hust.edu.cn/apache/hbase/
2.解压
[/code]
使用外部zk,配置hbase集群
3.gedit hbase-env.sh
2
3
4
5
6
[/code]
3.gedit hbase-site.xml
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[/code]
4.gedit regionservers
2
[/code]
5.把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
6.拷贝hbase到其他节点
2
[/code]
7.修改环境变量
2
3
4
[/code]
8.将配置好的hbase拷贝到每一个节点并同步时间和修改环境变量
二.启动hbase
1.启动zk
[/code]
2.启动hadoop集群
[/code]
3.启动hbase,在主节点上hbase-1.1.0/bin运行
[/code]
3.通过浏览器访问hbase Web页面
HMaster Web页面
[/code]
HRegionServer Web页面
[/code]
4.shell 验证
进入hbase bin目录下:
[/code]
1)使用list验证:
2
3
4
5
6
[/code]
2) 建表验证
[/code]
如果list和建表都没出现错误的话,就意味着Hbase 安装成功
三.搭建错误排除
1.当Hbase shell时出现这样的错误
[/code]
这是因为hadoop和hbase的slf4j-log4j12 jar包冲突,将HBase中的slf4j-log4j12-1.7.5移除
2.Hbase运行要在hadoop非安全模式下使用,使用以下命令查看hadoop安全模式和退出安全模式.
2
[/code]
3.安装失败后,要删除hadoop文件系统下的Hbase文件,使用命令
[/code]
4.这是最关键的。hosts文件中localhost的IP为127.0.0.1,如果有127.0.1.1的话,要将其改为127.0.0.1,以下是笔者hosts文件中的内容:
sudo gedit /etc/hosts
2
3
4
5
6
7
8
9
10
11
12
13
[/code]
注:spark01,spark02,spark03为集群主机名
5.修改hbase文件目录权限
[/code]
6.如果你多次安装过不同版本的hbase且使用外部zookeeper,记得清理zookeeper中Hbase中文件,笔者就是因为这个问题,苦苦折磨了一周.
关闭hbase,在zookeeper的bin目录运行zkCli.sh
终端最后显示:
2
3
[/code]
按以下操作删除Hbase
2
[/code]
如果有hbase则进行下一步
[/code]
重启hbase
[/code]
7.单独启动HMaster,Hregionserve命令
2
3
4
[/code]
四.hbase安装总结
1.Hbase与hadoop有版本兼容要求,一般的解决方式都是把Hbase中与hadoop相关的jar包,替换成hadoop版本的jar包。
2.集群时间记得要同步,同步方式界面操作调整时区和格式。
3.安装会因为环境不同,而出现不同的错误,但整个安装过程应该有这样的心态:屡败屡战,经折腾。
作者后言:
满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味。第一篇博客到此结束,如果你看到,集群也配到这,证明你配置成功了,恭喜你了。由于是第一次写博客,加上学习时间也比较紧,文章或多或少有些瑕疵,还望见谅。
前言
本博客目的在于跟大家分享大数据平台搭建过程,是笔者半年的结晶。在大数据搭建过程中,希望能给大家提过一些帮助,这也是本博客的价值所在。
博客内容分为将五个部分,具体如下:
第一部分 集群平台搭建
第二部分 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.lz1
2
3
4
5
6
7
[/code]
注:如果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 /isodevice1
[/code]
三.Ubuntu相关配置
1.打开软件中心更改软件更新源,一般选择国内的网易。
2.列举本地更新
sudo apt-get update1
[/code]
3.安装可用更新
sudo apt-get upgrade1
[/code]
4.修改root用户登录
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf1
[/code]
添加
[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true allow-guest=false1
2
3
4
5
[/code]
5.设置 root用户密码,,并输入root用户的密码
sudo passwd root1
[/code]
6.卸载防火墙
ufw disable //关闭 sudo apt-get remove ufw //卸载 sudo ufw status //查看1
2
3
[/code]
7.安装ssh
安装ssh-server
sudo apt-get install openssh-server1
[/code]
安装ssh-client
sudo apt-get install openssh-client1
[/code]
验证: ps -e | grep ssh 450 ??00:00:00 sshd //如果出现这个,则安装成功 重启ssh: /etc/init.d/ssh restart1
2
3
4
5
6
7
[/code]
四.安装Ubuntu虚拟机
1.下载VMware Workstation 12 Pro for Linux
网址:http://www.vmware.com/cn/products/workstation/workstation-evaluation
密钥:
5A02H-AU243-TZJ49-GTC7K-3C61N1
[/code]
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.bundle1
2
3
[/code]
3.安装虚拟机
注:虚拟机用户名要与物理机的用户名保持一致,如笔者的三台集群的用户名都是“huai”。
用VMware安装虚拟机,采用典型方式安装,操作过程很简单,就不在这叙述了,大家可另行百度。对于刚安装好Ubuntu虚拟机,是可以联网的。按照上面Ubuntu物理机的相关配置对虚拟机Ubuntu进行同样操作。
配置好虚拟机,关闭虚拟机和VMware。复制安装的虚拟机文件,构成两台虚拟机。
4.修改主机名
因为笔者搭建此集群是为了学习spark,故将三台集群主机名命为spark01、spark02和spark03。其中,park01为物理机,充当主节点。spark02和spark03为两台虚拟机的主机名。
修改物理机主机名,使用以下命令将主机名改为spark01:
sudo gedit /etc/hostname1
[/code]
修改虚拟机主机名:同上,分别修改为spark02和spark03。
五.修改IP
集群IP分别设为
192.168.8.101, 192.168.8.102, 192.168.8.1031
[/code]
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--> apply1
2
[/code]
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.11
2
3
4
5
6
7
8
9
[/code]
设置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 restart1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[/code]
笔者自己找到了两种方式设置一个固定的IP,简单且容易实现,关键在百度上都找不到。一种是采用桥接,第二种是绑定
2)采用桥接
1.点击桌面右上角网络图标栏中的"编辑连接",网络连接中选中"桥接",点击"添加"; 2.对跳转出来选择连接类型窗口,选择"虚拟--桥接",点击"新建", 3.在桥接--桥接连接(c)处,点击"添加",选择"以太网",点击新建,在设备MAC地址(D)处.选择"eth0",并"保存" 4.点击IPv4设置,方法处选择为"手动",>点击"添加"设置IP为:192.168.8.101 子网掩码:255.255.255.0 网关:192.168.1.1,"保存"1
2
3
4
[/code]
3)采用绑定
采用绑定的方式与桥接方式操作一样,就是在操作2中,选择“虚拟--绑定”,其他操作一样。1
[/code]
六.修改主机名和IP的映射关系
整个集群的主机名和IP的映射关系的内容设置是一样的,分别在三台机子上操作以下命令:
sudo gedit /etc/hosts 添加: 192.168.8.101 spark01 192.168.8.102 spark02 192.168.8.103 spark031
2
3
4
5
6
7
[/code]
七.重启
关闭两台虚拟机,并重启Ubuntu物理机1
[/code]
第二部分 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.pub1
2
3
4
[/code]
生成两个文件: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.spark031
2
[/code]
4.在物理机上,按以下操作:
huai@spark01:~$ cd /home/huai/.ssh huai@spark01:~/.ssh$ ls id_rsa.pub id_rsa.pub.spark03 id_rsa id_rsa.pub.spark021
2
3
4
[/code]
将公钥导入到综合authorized_keys文件中,在目录huai@spark01:~/.ssh$下使用导入命令:
cat id_rsa.pub >> authorized_keys cat id_rsa.pub.spark02 >> authorized_keys cat id_rsa.pub.spark03 >> authorized_keys1
2
3
[/code]
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_keys1
2
[/code]
6.ssh常见错误修改
因为笔者的已经配置好,具体错误就没法再重现了。不过只要按以下操作之后,保证不会再有错误。
1):
sudo gedit /etc/ssh/sshd_config1
[/code]
打开文件后,注释”PermitRootLogin without-password”,使用”#”注释
并在其下面添加: PermitRootLogin yes
2):
打开: sudo gedit /etc/ssh/ssh_config 添加: StrictHostKeyChecking no UserKnownHostsFile /dev/null1
2
3
4
5
6
7
[/code]
3):
如果有Agent admitted failure to sign using the key错误抛出,执行以下命令即可:
ssh-add1
[/code]
4):
如果ssh登录时,在known_hosts报出警告,后面显示一个数字,使用以下命令将其删除,比如显示数字”8”.
sed -i 8d /home/huai/.ssh/known_hosts1
[/code]
7.分别在每台上进行以下ssh登录,使用”exit”退出
ssh spark01 ssh spark02 ssh spark031
2
3
[/code]
二.安装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/java1
[/code]
解压
sudo tar -zxvf /home/huai/桌面/jdk-7u80-linux-x64.gz -C /usr/java/1
[/code]
修改文件权限
sudo chmod -R 777 /usr/java/1
[/code]
3.修改环境变量
因为笔者集群已经搭建好了,为了让大家不要经常修改环境变量,笔者在此处把所有安装包的环境变量都列出来,供大家参考。
操作: sudo gedit /etc/profile 在文件最后添加: export JAVA_HOME=/usr/java/jdk1.7.0_80 export JRE_HOME=/usr/java/jdk1.7.0_80/jre export SCALA_HOME=/spark/scala-2.11.6 export SPARK_HOME=/spark/spark-1.5.0 export HADOOP_HOME=/spark/hadoop-2.6.0 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native" export HIVE_HOME=/spark/hive-1.2.0 export IDEA_HOME=/usr/idea/idea-IC-141.178.9 export HBASE_HOME=/spark/hbase-1.1.2 export ZOOKEEPER_HOME=/spark/zookeeper-3.4.6 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$IDEA_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[/code]
刷新
source /etc/profile1
[/code]
4.验证
使用命令java -version,如果出现java version “1.7.0_80”,则安装成功
5.设置jdk默认
如果Ubuntu上已经安装过openjdk纳闷需要设置默认jdk。若以上验证成功,可以跳过设置默认jdk。依次操作以下命令:
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_80/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_80/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.7.0_80/bin/jar 300 sudo update-alternatives --install /usr/bin/javah javah /usr/java/jdk1.7.0_80/bin/javah 300 sudo update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.7.0_80/bin/javap 300 sudo update-alternatives --config java1
2
3
4
5
6
[/code]
第三部分 Hadoop-2.6.0+zookeeper-3.4.6集群搭建
一.集群规划
文字描述:本集群仅有三台机子:spark01、spark02和spark03。三台都安装hadoop-2.6.0,zookeeper-3.4.6。spark01和spark02共运行了两个namenode,两个datanode运行spark02和spark03上。
二.zooekeeper配置
1.建立spark文件夹
sudo mkdir /spark 修改权限: sudo chmod -R 777 /spark1
2
3
[/code]
2.解压
sudo tar -zxvf /home/huai/桌面/zookeeper-3.4.6.tar.gz -C /spark/1
[/code]
3.修改zoo.cfg文件
cd /spark/zookeeper-3.4.6/conf/ mv zoo_sample.cfg zoo.cfg1
2
3
[/code]
4.配置zoo.cfg
gedit zoo.cfg 修改: dataDir=/spark/zookeeper-3.4.6/tmp 添加: dataLogDir=/spark/zookeeper-3.4.6/logs 在最后添加: server.1=spark01:2888:3888 server.2=spark02:2888:3888 server.3=spark03:2888:3888 保存退出1
2
3
4
5
6
7
8
9
10
11
12
[/code]
5.建立文件夹
mkdir /spark/zookeeper-3.4.6/tmp mkdir /spark/zookeeper-3.4.6/logs1
2
[/code]
6.设置myid
在5)中建立的tmp文件夹下创建一个空文件,并在其中写入”1“。
创建文件: touch myid 写入"1": gedit myid1
2
3
4
5
[/code]
7.修改环境变量
虽然前面已经把所有的环境变量都设置好了,但这个步骤是环境配置必须的操作,所以在此处重复一遍
打开: sudo gedit /etc/profile 添加: export ZOOKEEPER_HOME=/spark/zookeeper-3.4.6 export PATH=:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf 刷新: source /etc/profile1
2
3
4
5
6
7
[/code]
8.将配置好的zookeeper拷贝到其他节点
scp -r /spark/zookeeper-3.4.6/ huai@spark02:/spark/ scp -r /spark/zookeeper-3.4.6/ huai@spark03:/spark/1
2
[/code]
9.修改虚拟机的myid
执行: cd /spark/zookeeper-3.4.6/tmp 打开: gedit myid 其中: 在spark02 中写入"2" 在spark03 中写入"3"1
2
3
4
5
6
7
[/code]
10.修改虚拟机的环境变量
按7中的操作分别修改虚拟机spark02和spark03的环境变量。
三.搭建hadoop集群
1.下载hadoop
网址:http://mirror.bit.edu.cn/apache/hadoop/core/
2.解压
sudo tar -zxvf /home/huai/桌面/hadoop-2.6.0.tar.gz -C /spark 修改权限: sudo chmod -R 777 /spark1
2
3
[/code]
3.配置hadoop环境文件
注:在操作hadoop-env.sh,注释以下内容
#export HADOOP_OPTS="$HADOOP_OPTS - Djava.net.preferIPv4Stack=true"1
2
[/code]
cd到配置文件目录下: cd /spark/hadoop-2.6.0/etc/hadoop/ 依次操作: gedit hadoop-env.sh gedit yarn-env.sh gedit mapred-env.sh 依次添加: export JAVA_HOME=/usr/java/jdk1.7.0_80 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native" 依次保存退出1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[/code]
按以下操作依次修改hadoop其它配置文件,可以直接复制到配置文件。相关文件属性以及细节,可以查阅其他资料。
4.gedit core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/spark/hadoop-2.6.0/tmp</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>spark01:2181,spark02:2181,spark03:2181</value> </property> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
[/code]
5.gedit hdfs-site.xml
<configuration> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <property> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>spark01:9000</value> </property> <property> <name>dfs.namenode.http-address.ns1.nn1</name> <value>spark01:50070</value> </property> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>spark02:9000</value> </property> <property> <name>dfs.namenode.http-address.ns1.nn2</name> <value>spark02:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://spark01:8485;spark02:8485;spark03:8485/ns1</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/spark/hadoop-2.6.0/journal</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <property> <name>dfs.client.failover.proxy.provider.ns1</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value> sshfence shell(/bin/true) </value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/huai/.ssh/id_rsa</value> </property> <property> <name>dfs.ha.fencing.ssh.connect-timeout</name> <value>30000</value> </property> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
[/code]
6.mv mapred-site.xml.template mapred-site.xml
gedit mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>1
2
3
4
5
6
[/code]
7.gedit yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>yrc</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>spark01</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>spark02</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>spark01:2181,spark02:2181,spark03:2181</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[/code]
8.gedit slaves
spark02 spark031
2
[/code]
10.复制到其他节点
scp -r /spark/hadoop-2.6.0 huai@spark02:/spark scp -r /spark/hadoop-2.6.0 huai@spark03:/spark1
2
[/code]
11.修改环境变量,可略过
打开: sudo gedit /etc/profile 添加: export HADOOP_HOME=/spark/hadoop-2.6.0 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 刷新: source /etc/profile1
2
3
4
5
6
7
[/code]
12.验证
输入以下命令,如果出现hadoop对应的版本,则hadoop配置成功。
hadoop version1
[/code]
三.集群启动(严格按照下面的步骤)
1.启动zookeeper集群(分别在spark01、spark02、spark03上启动zk)
cd /spark/zookeeper-3.4.6/bin/ ./zkServer.sh start 查看状态:一个leader,两个follower zkServer.sh status1
2
3
4
5
[/code]
2.启动journalnode(分别在spark01、spark02、spark03上启动journalnode)
在三台机子上执行: cd /spark/hadoop-2.6.0/sbin hadoop-daemon.sh start journalnode1
2
3
4
[/code]
运行jps命令检验,spark01、spark02、spark03上多了JournalNode进程
3.格式化HDFS
在主节点spark01上执行命令
hdfs namenode -format1
[/code]
格式化成功会生成tmp文件,其路径为core-site.xml中的hadoop.tmp.dir配置路径
4.将tmp拷到其他节点
注意tmp的路径:
scp -r tmp huai@spark02:/spark/hadoop-2.6.0/ scp -r tmp huai@spark03:/spark/hadoop-2.6.0/1
2
3
[/code]
5.格式化ZK
在spark01上执行: hdfs zkfc -formatZK1
2
[/code]
6.启动HDFS
在spark01上执行: start-dfs.sh1
2
3
[/code]
7.启动YARN.resourcemanager
start-yarn.sh1
[/code]
8.验证
通过以下IP用浏览器访问,一个处于active,一个处于standby,说明集群启动成功。
http://192.168.8.101:50070 NameNode 'spark01:9000' (active) http://192.168.8.102:50070 NameNode 'spark02:9000' (standby)1
2
3
4
[/code]
9.验证HDFS HA
向hdfs上传一个文件: hadoop fs -put /etc/profile /profile hadoop fs -ls /1
2
3
[/code]
kill掉active的NameNode kill -9 <pid of NN> 访问:http://192.168.8.101:50070 无法打开 访问:http://192.168.8.102:50070 NameNode 'spark02:9000' (active)1
2
3
4
5
[/code]
执行: hadoop fs -ls / -rw-r--r-- 3 root supergroup 1926 2015-05-024 15:36 /profile1
2
3
[/code]
手动启动挂掉的那个NameNode,在spark01上执行 hadoop-daemon.sh start namenode 访问:http://192.168.8.101:50070 显示:NameNode 'spark01:9000' (standby) 删除上传文件: hadoop fs -rm -r /profile1
2
3
4
5
6
7
[/code]
到这,hadoop集群相当于已经成功搭建,剩下的就是要搭建基于hadoop的其他组件,如spark,hive,hbase。相信通过自学搭建hadoop集群的人儿,一定受了不少折腾。作为不是技术大牛的人儿,唯有屡败屡战,才能祭奠内心那份对技术的热血澎湃。
第四部分 Spark集群搭建
因为spark 源代码是使用Scala语言,所以需要安装Scala环境。
一.安装 Scala
1.下载
网址:http://www.scala-lang.org/download/
2.解压
sudo tar -zxf sudo tar -zxvf /home/huai/桌面/scala-2.11.6.tgz -C /spark1
[/code]
3.修改环境变量
打开: sudo gedit /etc/profile 添加: export SCALA_HOME=/spark/scala-2.11.6 export PATH=PATH:$SCALA_HOME/bin 刷新: source /etc/profile1
2
3
4
5
6
7
[/code]
4.显示版本
huai@spark01:~$ scala -version Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL1
2
3
[/code]
测试
输入”scala”命令,进入scala交互界面
huai@spark01:~$ scala scala> 8*8 res0: Int = 641
2
3
[/code]
6.将scala复制到其他节点
scp -r /spark/scala-2.11.6/ huai@spark02:/spark/ scp -r /spark/scala-2.11.6/ huai@spark03:/spark/1
2
[/code]
7.重复 3修改其他节点的环境变量
二.spark集群搭建
1.下载
网址:http://mirror.bit.edu.cn/apache/spark/
2.解压
tar -zxf /home/huai/桌面/spark-1.5.0-bin-hadoop2.6.tgz -C /spark1
[/code]
3.文件名修改为:spark-1.5.0
mv /spark/spark-1.5.0-bin-hadoop2.6 spark-1.5.01
[/code]
4.修改环境变量
打开: sudo gedit /etc/profile 添加: export SPARK_HOME=/spark/spark-1.5.0 export PATH=PATH:$SPARK_HOME/bin 刷新: source /etc/profile1
2
3
4
5
6
7
[/code]
5.配置spark-env.sh
进入spark的conf目录: cd /spark/spark-1.5.0/conf/ mv spark-env.sh.template spark-env.sh 打开: sudo gedit spark-env.sh 添加: export JAVA_HOME=/usr/java/jdk1.7.0_80 export SCALA_HOME=/spark/scala-2.11.6 export SPARK_MASTER_IP=192.168.8.101 export SPARK_WORKER_MEMORY=1g export HADOOP_CONF_DIR=/spark/hadoop-2.6.0/etc/hadoop export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[/code]
6.配置slaves
在spark的conf目录下:1
mv slaves.template slaves
打开:
sudo gedit slaves
添加:
spark01
spark02 spark03
2
3
4
5
6
7
8
9
10
[/code]
7.把spark复制到其他节点
scp -r spark-1.5.0 huai@spark02:/spark/ scp -r spark-1.5.0 huai@spark03:/spark/1
2
3
[/code]
8.修改虚拟阶环境变量
sudo gedit /etc/profile 添加: export SPARK_HOME=/spark/spark-1.5.0 export PATH=PATH:$SPARK_HOME/bin export SCALA_HOME=/spark/scala-2.11.6 export PATH=PATH:$SCALA_HOME/bin 刷新: source /etc/profile1
2
3
4
5
6
7
8
[/code]
三.启动集群
1.启动zookeeper
在每台运行: zkServer.sh start1
2
[/code]
2.启动hadoop集群,在hadoop的sbin目录下执行:
start-all.sh1
[/code]
3.启动spark集群
/spark/spark-1.5.0/bin$./start-all.sh1
[/code]
5.Web管理界面
http://192.168.8.101:8080/1
[/code]
Spark有好几个模块,如SparkSQL,Graphx,MLlib。因为Mapreduce处理速率不如Spark快,Spark将成为Mapreduce的替代品。对于Spark,我主要学习了机器学习MLlib和SparkSQL。如果你对大数据感兴趣,那么建议好好研究一下Spark。
第五部分 Hive集群搭建
一.概述
hive安装可分为四部分:
1)安装mysql 2)配置 Metastore 3)配置HiveClient 4)配置hiveserver1
2
3
4
[/code]
搭建分布:mysql,Metastore安装配置在主节点spark01上, HiveClient客户端安装在spark02上。注:HiveClient客户端也可以不配置。
三.安装mysql
mysql只需在物理机spark01上安装,Ubuntu软件中心下载安装mysql服务器
1.配置mysql
运行: /usr/bin/mysql_secure_installation 输入密码: 删除匿名用户: Remove anonymous users? [Y/n] Y 允许用户远程连接: Disallow root login remotely? [Y/n]n 移除test数据库: Remove test database and access to it? [Y/n] Y1
2
3
4
5
6
7
8
9
10
[/code]
2.登陆mysql
mysql -u root -p1
[/code]
3.建立hive数据库,并对其授权,注’huai’为你设立的登录密码
mysql>create database hive; mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'huai' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES;1
2
3
4
[/code]
4.修改hive数据库字符
一定要修改,不然hive建表时会报错。
mysql>alter database hive character set latin11
[/code]
5.修改允许远程登录mysql
sudo gedit /etc/mysql/my.cnf 注释: #bind-address=127.0.0.11
2
3
[/code]
三.安装Hive
1.下载
网址:http://mirrors.cnnic.cn/apache/hive/
2.解压
sudo tar -zxvf /home/huai/桌面apache-hive-1.2.0.tar.gz -C /spark/ 文件名修改为hive-1.2.0 mv apache-hive-1.2.0 hive-1.2.01
2
3
4
[/code]
3.修改配置文件名
在hive-1.2.0/conf下
mv hive-default.xml.template hive-site.xml mv hive-log4j.properties.template hive-log4j.properties mv hive-exec-log4j.properties.template hive-exec-log4j.properties mv hive-env.sh.template hive-env.sh1
2
3
4
[/code]
4.gedit hive-env.sh
export HADOOP_HOME=/spark/hadoop-2.6.0 export HIVE_CONF_DIR=/spark/hive-1.2.0/conf1
2
[/code]
5.gedit hive-log4j.properties
添加
hive.log.dir=/spark/hive-1.2.0/logs1
[/code]
6.新建logs文件
mkdir /spark/hive-1.2.0/logs1
[/code]
7.gedit hive-site.xml
删除所有内容,添加如下内容.注意配置文件中的’huai’为mysql登录密码,记得修改
<configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>hdfs://ns1/hive/warehouse</value> </property> <property> <name>hive.exec.scratchdir</name> <value>hdfs://ns1/hive/scratchdir</value> </property> <property> <name>hive.querylog.location</name> <value>/spark/hive-1.2.0/logs</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>huai</value> </property> <property> <name>hive.zookeeper.quorum</name> <value>spark01,spark02,spark03</value> </property> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[/code]
8.配置环境变量
打开: sudo gedit /etc/profile 添加: export HIVE_HOME=/spark/hive-1.2.0 export PATH=:$HIVE_HOME/bin 刷新: source /etc/profile1
2
3
4
5
6
7
8
[/code]
9.在hive/lib下有个jline的jar,将hadoop内的这个jar包换成一致的,否则会启动hive会报错。
10.hive和mysq安装完成后,将mysql-connector-java-5.1.25-bin.jar连接jar拷贝到hive-1.2.0/lib目录下,在hive-1.2.0/bin下,运行:
./hive1
[/code]
11.访问 http://192.168.8.101:50070
查看hadoop文件系统,多了个hive文件,证明安装成功。
12.修改hive文件权限
hadoop fs -chmod -R 777 /hive1
[/code]
四.配置hiveserver
gedit hive-site.xml
添加:
<property> <name>hive.server2.thrift.min.worker.threads</name> <value>1</value> <description>Minimum number of Thrift worker threads</description> </property> <property> <name>hive.server2.thrift.max.worker.threads</name> <value>100</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>spark01</value> </property>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[/code]
五.Hive客户端配置
1.将hive从Master节点(spark01)拷贝到Slave节点(spark02)上
scp -r /spark/hive-1.2.0 huai@spark02:/spark/1
[/code]
2.配置Metastore的连接信息
在hive-1.2.0/conf下
gedit hive-site.xml 添加: <property> <name>hive.metastore.uris</name> <value>thrift://spark01:9083</value> </property>1
2
3
4
5
6
[/code]
3.修改环境变量
sudo gedit /etc/profile export HIVE_HOME=/spark/hive-1.2.0 export PATH=:$HIVE_HOME/bin source /etc/profile1
2
3
4
[/code]
第五部分 Hbase集群搭建
一.配置hbase
1.下载
网址:http://mirrors.hust.edu.cn/apache/hbase/
2.解压
tar -zxf /home/huai/桌面/hbase-1.1.2.tgz -C /spark1
[/code]
使用外部zk,配置hbase集群
3.gedit hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_80 export HBASE_MANAGES_ZK=false export HBASE_PID_DIR=/spark/hbase-1.1.2/pids export HBASE_CLASSPATH=/spark/hadoop-2.6.0/etc/hadoop export HBASE_HOME=/spark/hbase-1.1.21
2
3
4
5
6
[/code]
3.gedit hbase-site.xml
<configuration> <property> <name>hbase.tmp.dir</name> <value>/spark/hbase-1.1.2/tmp</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://ns1/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>zookeeper.session.timeout</name> <value>120000</value> </property> <property> <name>hbase.zookeeper.property.tickTime</name> <value>6000</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>spark01,spark02,spark03</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/spark/zookeeper-3.4.6/tmp</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>hbase.master.maxclockskew</name> <value>180000</value> </property> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[/code]
4.gedit regionservers
spark02 spark031
2
[/code]
5.把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
6.拷贝hbase到其他节点
scp -r /spark/hbase-1.1.0 huai@spark02:/spark/ scp -r /spark/hbase-1.1.0 huai@spark03:/spark/1
2
[/code]
7.修改环境变量
sudo gedit /etc/profile export HBASE_HOME=/spark/hbase-1.1.0 export PATH=$HBASE_HOME/bin:$PATH source /etc/profile1
2
3
4
[/code]
8.将配置好的hbase拷贝到每一个节点并同步时间和修改环境变量
二.启动hbase
1.启动zk
zkServer.sh start1
[/code]
2.启动hadoop集群
start-dfs.sh1
[/code]
3.启动hbase,在主节点上hbase-1.1.0/bin运行
start-hbase.sh1
[/code]
3.通过浏览器访问hbase Web页面
HMaster Web页面
http://192.168.8.101:160101
[/code]
HRegionServer Web页面
http://192.168.8.101:160301
[/code]
4.shell 验证
进入hbase bin目录下:
huai@spark01:/spark/hbase-1.1.0/bin$ ./hbase shell1
[/code]
1)使用list验证:
hbase(main):001:0> list TABLE user 1 row(s) in 1.4940 seconds => ["user"] hbase(main):002:0>1
2
3
4
5
6
[/code]
2) 建表验证
create 'user','name','sex'1
[/code]
如果list和建表都没出现错误的话,就意味着Hbase 安装成功
三.搭建错误排除
1.当Hbase shell时出现这样的错误
SLF4J: Found binding in [jar:file:/usr/local/hbase-1.1.0/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class1
[/code]
这是因为hadoop和hbase的slf4j-log4j12 jar包冲突,将HBase中的slf4j-log4j12-1.7.5移除
2.Hbase运行要在hadoop非安全模式下使用,使用以下命令查看hadoop安全模式和退出安全模式.
hdfs dfsadmin -safemode get //查看 hdfs dfsadmin -safemode leave //退出1
2
[/code]
3.安装失败后,要删除hadoop文件系统下的Hbase文件,使用命令
hadoop fs -rm -r -f /hbase1
[/code]
4.这是最关键的。hosts文件中localhost的IP为127.0.0.1,如果有127.0.1.1的话,要将其改为127.0.0.1,以下是笔者hosts文件中的内容:
sudo gedit /etc/hosts
127.0.0.1 localhost 192.168.8.101 spark01 192.168.8.102 spark02 192.168.8.103 spark03 #The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters1
2
3
4
5
6
7
8
9
10
11
12
13
[/code]
注:spark01,spark02,spark03为集群主机名
5.修改hbase文件目录权限
hadoop fs -chmod -R 777 /hbase1
[/code]
6.如果你多次安装过不同版本的hbase且使用外部zookeeper,记得清理zookeeper中Hbase中文件,笔者就是因为这个问题,苦苦折磨了一周.
关闭hbase,在zookeeper的bin目录运行zkCli.sh
终端最后显示:
WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0]1
2
3
[/code]
按以下操作删除Hbase
[zk: localhost:2181(CONNECTED) 1] ls / [hbase, hadoop-ha, yarn-leader-election, zookeeper]1
2
[/code]
如果有hbase则进行下一步
[zk: localhost:2181(CONNECTED) 2] rmr /Hbase1
[/code]
重启hbase
start-hbase.sh1
[/code]
7.单独启动HMaster,Hregionserve命令
hbase-daemon.sh start regionserver hbase-daemon.sh stop master hbase-daemon.sh start regionserver hbase-daemon.sh stop regionserver1
2
3
4
[/code]
四.hbase安装总结
1.Hbase与hadoop有版本兼容要求,一般的解决方式都是把Hbase中与hadoop相关的jar包,替换成hadoop版本的jar包。
2.集群时间记得要同步,同步方式界面操作调整时区和格式。
3.安装会因为环境不同,而出现不同的错误,但整个安装过程应该有这样的心态:屡败屡战,经折腾。
作者后言:
满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味。第一篇博客到此结束,如果你看到,集群也配到这,证明你配置成功了,恭喜你了。由于是第一次写博客,加上学习时间也比较紧,文章或多或少有些瑕疵,还望见谅。
相关文章推荐
- Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
- Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
- hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布式集群HA部署
- [置顶] 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
- 集群RedHat6.5+JDK1.8+Hadoop2.7.3+Spark2.1.1+zookeeper3.4.6+kafka2.11+flume1.6环境搭建步骤
- hadoop、zookeeper、hbase、spark集群环境搭建
- hadoop、zookeeper、hbase、spark集群环境搭建
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建
- hadoop-hbase-hive-zookeeper的cdh4.6.0和spark-0.9.0-incubating-bin-cdh4集群
- hadoop、spark、zookeeper、hive集群搭建脚本
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建2
- [置顶] hadoop、zookeeper、hbase、spark集群环境搭建
- hadoop完全分布式环境搭建,整合zookeeper,hbase,spark,hive,hue
- hadoop、zookeeper、hbase、spark集群环境搭建
- Hadoop2.2.0 HA高可用分布式集群搭建(hbase,hive,sqoop,spark)
- 大数据1-hadoop、zookeeper、hbase、spark集群环境搭建
- Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结
- Hadoop、ZooKeeper、Hive、HBase 七节点分布式集群搭建
- Hadoop2.6.4、zookeeper3.4.6、HBase1.2.2、Hive1.2.1、sqoop1.99.7、spark1.6.2安装