大数据行业部署实战1:Hadoop伪分布式部署

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据行业部署实战1:Hadoop伪分布式部署

一、Hadoop 介绍

Apache Hadoop 软件库是一个框架,允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理。Hadoop 被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop 的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。

1. Hadoop 生态系统

主要包含以下几部分:

  • HDFS——Hadoop 生态圈的基本组成部分是 Hadoop 分布式文件系统(HDFS)。
    HDFS是一种分布式文件系统,数据被保存在计算机集群上,HDFS 为 HBase 等工具提供了基础。
  • MapReduce——Hadoop的主要执行框架是 MapReduce,它是一个分布式、并行处理的编程模型,MapReduce 把任务分为map(映射)阶段和 reduce(化简)。由于 MapReduce 工作原理的特性,Hadoop能以并行的方式访问数据,从而实现快速访问数据。
  • Hbase——HBase是一个建立在 HDFS 之上,面向列的 NoSQL 数据库,用于快速读/写大量数据,HBase 使用Zookeeper 进行管理。
  • Zookeeper——用于 Hadoop 的分布式协调服务。Hadoop 的许多组件依赖于 Zookeeper,它运行在计算机集群中,用于管理Hadoop集群。
  • Pig——它是MapReduce编程的复杂性的抽象。Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin),其编译器将Pig Latin翻译成MapReduce程序序列。
  • Hive——Hive类似于SQL高级语言,用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。像Pig一样,Hive作为一个抽象层工具,吸引了很多熟悉SQL而不是Java编程的数据分析师。
  • Sqoop是一个连接工具,用于在关系数据库、数据仓库和Hadoop之间转移数据。Sqoop利用数据库技术描述架构,进行数据的导入/导出;利用MapReduce实现并行化运行和容错技术。
  • Flume提供了分布式、可靠、高效的服务,用于收集、汇总大数据,并将单台计算机的大量数据转移到HDFS。它基于一个简单而灵活的架构,并提供了数据流的流。它利用简单的可扩展的数据模型,将企业中多台计算机上的数据转移到Hadoop中。

2. Apache 版本衍化

Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则NameNode HA等新的重大特性。第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。

二、Hadoop-2.7.3 伪分布安装

Hadoop安装有如下三种方式:

  • 单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途;
  • 伪分布模式:在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、Secondary Namenode等5个进程,模拟分布式运行的各个节点;
  • 完全分布式模式:正常的Hadoop集群,由多个各司其职的节点构成

由于实验环境的限制,本节课程将讲解伪分布模式安装,并在随后的课程中以该环境为基础进行实验。以下为伪分布式环境下在Ubuntu16中配置Hadoop-2.7.3,该配置可以作为其他Linux系统和其他版本的Hadoop部署参考。

1.(配置从这开始)软硬件环境说明

节点使用Ubuntu16系统,创建了一个ubuntu用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。由于该目录用于安装hadoop等组件程序,用户对ubuntu必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为

ubuntu(chown –R ubuntu:ubuntu /app)。
cd /
sudo mkdir /app
sudo chown -R ubuntu:ubuntu /app

2. 环境搭建

虚拟机操作系统:Ubuntu 16

JDK:1.8.0_231 64位

Hadoop:2.7.3

2.1 设置hosts文件映射

1.设置IP地址与机器名的映射,设置信息如下:

配置主机名对应的IP地址(如在ubuntu用户下,需要使用sudo命令)

sudo vim /etc/hosts

设置:<IP地址> <主机名> 例如:10.2.68.12 3c79302cbf8e hadoop

2.使用ping命令验证设置是否成功

ping hadoop

(CTRL C)终止

2.2 设置操作系统环境

2.2.1 本实验环境已经安装java

java -version

2.2.2 SSH无密码验证配置

1.开启ssh服务

sudo /etc/init.d/ssh restart

2.生成密钥对

使用ssh-keygen –t rsa命令生成密钥对(命令行提示可以一直enter下一步)

ssh-keygen -t rsa

切换到~/.ssh目录下

复制到实验机cd ~/.ssh

加入授权

cat ./id_rsa.pub >> ./authorized_keys

3.验证ssh连接

此时ssh localhost(hadoop)时,无需输入密码就可以直接登陆

ssh hadoop

3. Hadoop环境搭建

3.1 在/app下创建hadoop目录

mkdir /app/hadoop

3.2 下载并解压hadoop安装包

cd /app/hadoop

可以从以下地址下载hadoop安装包到/app/hadoop路径下:

wget http://i9000.net:8888/sgn/LMS/hadoop/hadoop/hadoop-2.7.3.tar.gz

使用以下命令解压

tar –xzvf hadoop-2.7.3.tar.gz

将安装路径hadoop-2.7.3改名为hadoop

mv hadoop-2.7.3 hadoop

3.3 在hadoop安装目录下创建子目录

cd /app/hadoop/hadoop
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data

3.4设置环境变量

1.修改hadoop环境变量

sudo vim /etc/bash.bashrc

按照下图修改环境变量

2.使用source命令重新编译

source /etc/bash.bashrc

3.使用hadoop命令测试

hadoop version

3.5 配置hadoop-env.sh

cd /app/hadoop/hadoop/etc/hadoop
vim  hadoop-env.sh

修改JAVA_HOME变量的值

3.6 配置core-site.xml(伪分布式安装)

1.使用如下命令打开core-site.xml配置文件

vim core-site.xml

2.在配置文件中,按照如下内容进行配置

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:8020</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop/hadoop/tmp</value>
  </property>
</configuration>

3.7 配置hdfs-site.xml

1.使用如下命令打开hdfs-site.xml配置文件

vim hdfs-site.xml

2.在配置文件中,按照如下内容进行配置

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>/app/hadoop/hadoop/hdfs/name</value>
  </property>
  <property>
    <name>dfs.data.dir</name>
    <value>/app/hadoop/hadoop/hdfs/data</value>
  </property>
</configuration>

3.8 配置mapred-site.xml

1.使用如下命令打开mapred-site.xml配置文件

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

2.在配置文件中,按照如下内容进行配置

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>hadoop:9001</value>
  </property>
</configuration>

3.9 格式化namenode

使用如下命令进行格式化namenode:

hadoop namenode -format

3.10 启动hadoop

cd /app/hadoop/hadoop/sbin

执行启动脚本

./start-all.sh

3.11 用jps检验各后台进程是否成功启动

使用jps命令查看,显示6个进程正确

jps

至此实验结束。

三、其他

编辑模式,dd删除这一行

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
16天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
48 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
148 6
|
15天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
59 2
|
16天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
56 1
|
7天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
7天前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
1月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
53 1
|
1月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
40 3
|
25天前
|
Oracle 大数据 数据挖掘
企业内训|大数据产品运营实战培训-某电信运营商大数据产品研发中心
本课程是TsingtaoAI专为某电信运营商的大数据产品研发中心的产品支撑组设计,旨在深入探讨大数据在电信运营商领域的应用与运营策略。通过密集的培训,从数据的本质与价值出发,系统解析大数据工具和技术的最新进展,深入剖析行业内外的实践案例。课程涵盖如何理解和评估数据、如何有效运用大数据技术、以及如何在不同业务场景中实现数据的价值转化。
36 0
|
1月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
100 0