大数据系统搭建Hadoop+HBase+Spark

本文介绍了如何搭建大数据处理系统,包括Hadoop、HBase和Spark的配置。从前期准备如配置hosts和免密登录,到ZooKeeper、Hadoop、HBase和Spark的详细配置过程,再到集群的启动和测试,为读者提供了一个完整的集群搭建指南。
摘要由CSDN通过智能技术生成

1.1 框架介绍

Hadoop是一个开源的框架,可编写和运行分不是应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元。 HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。 HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。 简单来说,在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在HBase中没有表与表之间关联查询。只需要告诉数据存储到Hbase的那个column families 就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是需要注意HBase中不包含事务此类的功能。 Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。 Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法

2.1 前期准备

在搭建集群开始前,要先做好以下操作
1.更改每个节点的hosts文件并配置免密登录,便于集群节点互相通信
2.下载好相应的jar包
3.配置每个节点的环境变量
4.更改相关文件的权限

2.1.1 配置hosts

#在每个节点/etc/hosts中加入本机ip和其他节点ip
vim /etc/hosts




#添加以下内容: 127.0.0.1 localhost 192.168.2.11 master 192.168.2.12 slave1 192.168.2.13 slave2

2.1.2 配置免密登录

#在master节点
cd .ssh/
ssh-keygen -t rsa -P ‘’ #一路回车




#在.ssh/文件夹中运行shell命令 cat id_rsa.pub >> authorized_keys ssh-copy-id –i id_rsa.pub vagrant@slave1  ssh-copy-id –i id_rsa.pub vagrant@slave2

2.1.3 下载资源

1.下载JDK http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html 2.下载Hadoop https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.6.5/ 3.下载 HBase https://mirrors.tuna.tsinghua.edu.cn/ apache/hbase/1.3.1/ 4.下载Zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/ 5.下载Spark https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.1/

2.1.4 解压文件

解压命令:tar –zxvf ****.gz –C /opt/文件夹 将jdk1.8.0_144文件夹更名为jdk 将hadoop-2.6.5 文件夹更名为hadoop 将hbase-1.3.1 文件夹更名为hbase 将zookeeper-3.4.11 文件夹更名为 zookeeper 将spark-2.2.1-bin-hadoop2.7文件夹更名为spark

2.1.5 配置环境变量

在每个节点配置环境变量
vim /etc/profile
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export ZOOKEEPER_HOME=/opt/zookeeper
export HBASE_HOME=/opt/hbase
export SPARK_HOME=/opt/spark
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
#使环境变量生效
source /etc/profile

2.1.6 更改目录权限

#更改所属用户和组
sudo chown -R vagrant:vagrant /opt/

2.2 配置ZooKeeper

2.2.1 创建数据存放目录和日志存放目录

#在每个节点创建数据存放目录和日志存放目录
sudo mkdir -p /usr/local/zkData
mkdir -p /opt/zookeeper/logs




#更改文件夹权限 sudo chown -R vagrant:vagrant /usr/local/zkData #在master节点运行shell命令 echo 1 >> /usr/local/zkData/myid #在slave1 节点运行shell命令 echo 2 >> /usr/local/zkData/myid #在slave2 节点运行shell命令 echo 3 >> /usr/local/zkData/myid

2.2.2 配置zoo.cfg

vim /opt/zookeeper/conf/zoo.cfg
……




# the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. # 将此处改为原先创建好的目录 dataDir=/usr/local/zkData # the port at which the clients will connect clientPort=2181 server.1=0.0.0.0:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888 #注意此处(3个虚拟机要分别配置) # 在slave1节点,将此处配置为 server.1=master:2888:3888 server.2=0.0.0.0:2888:3888 server.3=slave2:2888:3888 # 在slave2节点,将此处配置为 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=0.0.0.0:2888:3888 # the maximum number of client connections. ……

2.2.3 配置zkEnv.sh

vim /opt/zookeeper/bin/zkEnv.sh




#找到 if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="/var/log " fi #将ZOO_LOG_DIR的值改为/opt/zookeeper/logs

2.2.4 将配置文件发送到其他节点

scp –r /opt/zookeeper/ vagrant@slave1:/opt
 scp –r /opt/zookeeper/ vagrant@slave2:/opt

2.2.5 启动Zookeeper集群

#在每个节点运行shell命令
zkServer.sh start




#节点会随机选举leader #用zkServer.sh status查看

2.3 配置Hadoop

2.3.1 创建Hadoop相关文件夹并添加相应的jar包

#在每个节点执行以下操作:




#该文件夹存放Hadoop的元数据信息和临时文件 sudo mkdir -p /us
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值