centos7 Hadoop集群部署

centos7 Hadoop集群部署

一、Hbase概念剖析

Hbase 是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库,为Hadoop框架当中的结构化数据提供存储服务,是面向列的分布式数据库。这一点与HDFS是不一样的,HDFS是分布式文件系统,管理的是存放在多个硬盘上的数据文件,而Hbase管理的是类似于Key—Value映射的表。
Hbase底层仍然依赖HDFS来作为其物理存储,并且还需要Zookeeper协助提供部分配置服务,包括维护元信息和命名空间等。

Hadoop分布式集群主要包括三个核心部分:

1、FS(Hadoop分布式文件系统),

HDFS:分布式文件系统,在分布式(提供更快的读/写访问)和冗余(提供更好的可用性)方式中存储大量数据 。

2、计算框架(MapReduce)

MapReduce:以分布式和并行方式处理这些巨大的数据。但MapReduce并不仅限于HDFS 。作为FS,HDFS缺乏随机读/写功能,它适用于顺序数据访问,这就是HBase出现的地方。它是一个NoSQL数据库,在Hadoop集群上运行,提供对数据的随机实时读/写访问。

3、管理桥(Yet Another Resource Negotiator)。

是统一资源管理和调度平台。它解决了上一代Hadoop资源利用率低和不能兼容异构的计算框架等多种问题。提供了资源隔离方案和双调度器的实现。

其他重要组件还有:

Hadoop Common、Spark、HBase、Zookeeper、Pig、Impala、Mahout、Flume、Sqoop、Kafka

Hadoop Common

是Hadoop体系最底层的一个模块,为Hadoop各个子模块提供各种工具,比如系统配置工具Configuration、远程调用RPC、序列化机制和日志操作等等,是其他模块的基础。

Spark

是加州伯克利大学AMP实验室开发的新一代计算框架,对迭代计算有很大优势,与MapReduce相比性能提升明显,并且可以和Yarn集成,并且还提供了SparkSQL组件。

HBase

来源于Google的Bigtable论文,HBase是一个分布式的,面向列族的开源数据库。采用了Bigtable的数据模型–列族。HBase擅长大规模数据的随机、实时读写访问。

Zookeeper
作为一个分布式服务框架,是基于Fast Paxos算法实现,解决分布式系统中一致性的问题。提供了配置维护,名字服务,分布式同步,组服务等。

Hive

Hive最早是facebook开发并使用的,是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,提供简单的SQL查询功能。并将SQL转为MapReduce作业运行。其有点就是学习成本低。降低了Hadoop的使用门槛。

Pig

与Hive类似,也是对大数据集进行分析和评估的工具,不同于Hive的是Pig提供了一种高层的,面向领域的抽象语言PigLatin.同样Pig也可以将Pig Latin转化为MapReduce作业。相比与SQL,Pig Latin更加灵活,但学习成本更高。

Impala

是Cloudera公司开发,可以对存储HDFS、HBase的海量数据提供交互查询的SQL接口。除了和Hive使用相同的统一存储平台,Impala也使用相同的元数据,SQL语法,ODBC驱动程序和用户界面。Impala还提供了一个熟悉的面向批量或者实时查询的统一平台。Impala的特点是查询非常迅速,其性能大幅度领先于Hive。Impala并不是基于MapReduce的,它的定位是OLAP,是Google的新三驾马车之一Dremel的开源实现。

Mahout

是一个机器学习和数据挖掘库,它利用MapReduce编程模型实现k-means,Native,Bayes,Collaborative Filtering等经典的机器学习算法,并使其具有良好的可扩展性。

Flume

是Cloudera提供的一个高可用,高可靠,分布式的海量日志采集、聚合和传输系统,Flume支持在日志系统中定制各类数据发送方,用于数据收集,同时Flume提供对数据进行简单处理并写到各个数据接收方的能力。

Sqoop

是SQL to Hadoop的缩写,主要作用在于结构化的数据存储与Hadoop之间进行数据双向交换,也就是说,Sqoop可以将关系型数据库的数据导入到HDFS、Hive、也可以从HDFS、Hive导出到关系型数据库中。Sqoop利用了Hadoop的优点,整个导入导出都是由MapReduce计算框架实现并行化,非常高效。

Kafka

是一种高吞吐量的分布式发布订阅消息系统。具有分布式、高可用的特性,在大数据系统里被广泛使用,如果把大数据系统比作一台机器,那么kafka就是前端总线,它连接了平台中的各个组件。

二、Hadoop环境配置

从0开始构建一套Hadoop大数据平台,CentOS 7.x系统。Hadoop的安装部署都属于java进程,就是启动了JVM进程,运行服务。
HDFS:存储数据,提供分析的数据;
NameNode/DataNode
YARN:提供程序运行的资源;
ResourceManager/NodeManager

Hadoop版本:hadoop-3.2.2
192.168.0.47 namenode、datanode、secondary namenode、resource manager
192.168.0.32 datanode、nodemanager
192.168.0.33 datanode、nodemanager

1、Hosts及防火墙设置

node1、node2、node3节点进行如下配置:

cat >/etc/hosts<<EOF
127.0.0.1  localhost localhost.localdomain
192.168.0.47 node1     
192.168.0.32 node2
192.168.0.33 node3
EOF
sed -i '/SELINUX/s/enforcing/disabled/g'  /etc/sysconfig/selinux
setenforce  0
systemctl   stop     firewalld.service
systemctl   disable   firewalld.service
yum install ntpdate rsync lrzsz -y
ntpdate  pool.ntp
### 构建Hadoop集群并安装配置Hive #### Hadoop集群的构建 为了在CentOS 7环境中建立一个功能性的Hadoop集群,首先需要确保操作系统已经更新至最新状态,并关闭防火墙和服务隔离设置以便于节点间的通信。接着按照标准流程下载、解压缩Hadoop二进制文件到指定位置。 对于Hadoop配置而言,需编辑`core-site.xml`来设定NameNode地址[^4]: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://server1:9000</value> </property> </configuration> ``` 还需调整`hadoop-env.sh`中的JAVA_HOME路径以匹配本地Java安装情况。 启动HDFS之前要格式化Namenode: ```bash hdfs namenode -format ``` 最后通过如下命令初始化整个分布式文件系统服务: ```bash start-dfs.sh start-yarn.sh ``` #### Hive的安装与配置 完成上述准备工作之后可以继续进行Hive组件的部署工作。从Apache官方网站获取稳定版本包后将其放置于合适的位置并创建软链接方便管理[^1]。 针对环境变量部分,在全局配置文件中追加必要的PATH声明使得shell能够识别hive指令集: ```bash export HIVE_HOME=/path/to/hive-3.1.3 export PATH=$PATH:$HIVE_HOME/bin source /etc/profile ``` 考虑到元数据存储需求,建议预先准备好MySQL数据库实例作为外部仓库支持[^2]。这一步骤可通过yum工具快速实现自动化部署过程。 另外值得注意的是,在首次运行前应当利用Hadoop客户端API提前构造好临时目录结构供后续操作使用[^3]: ```bash hadoop fs -mkdir -p /tmp/hive ``` 以上即是在CentOS 7平台上搭建Hadoop集群并与之集成Hive所需遵循的主要步骤概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值