Hadoop完整搭建过程(二):伪分布模式
1 伪分布模式
伪分布模式是运行在单个节点以及多个Java进程上的模式。相比起本地模式,需要进行更多配置文件的设置以及ssh、YARN相关设置。
2 Hadoop配置文件
修改Hadoop安装目录下的三个配置文件:
etc/hadoop/core-site.xmletc/hadoop/hdfs-site.xmletc/hadoop/hadoop-env.sh
2.1 core-site.xml
首先修改core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
fs.defaultFS设置的是HDFS的地址,设置运行在本地的9000端口上hadoop.tmp.dir设置的是临时目录,如果没有设置的话默认在/tmp/hadoop-${user.name}中,系统重启后会导致数据丢失,因此修改这个临时目录的路径
接着创建该临时目录:
mkdir -p /usr/local/hadoop/tmp
2.2 hdfs-site.xml
接着修改hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
dfs.replication设置的是HDFS存储的临时备份数量,因为伪分布模式中只有一个节点,所以设置为1。
2.3 hadoop-env.sh
修改该文件添加JAVA_HOME环境变量,就算JAVA_HOME在
~/.bashrc~/.bash_profile/etc/profile
等中设置了,运行时也是会提示找不到JAVA_HOME,因此需要手动在hadoop-env.sh中设置JAVA_HOME:

3 本地无密码ssh连接
下一步需要设置本地无密码ssh连接,首先先检查确保开启sshd服务:
systemctl status sshd
开启后可以直接localhost连接:
ssh localhost
输入自己的用户密码后就可以访问了,但是这里需要的是无密码连接,因此配置密钥认证连接的方式:
ssh-keygen -t ed25519 -a 100
cat ~/.ssh/id_25519.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
这里生成公私钥后把公钥添加到authorized_keys中,并且修改权限,需要注意600权限,只能本用户有写权限。
然后直接ssh localhost就可以连接本地主机了。
4 运行
4.1 格式化HDFS
这里以单一节点的模式运行,首先格式化HDFS:
# HADOOP为Hadoop安装目录
HADOOP/bin/hdfs namenode -format
格式化是对HDFS中的DataNode进行分块,统计所有分块后的初始元数据,存储在NameNode中。
格式化成功后会在上面配置文件中设置的临时目录中生成dfs目录,如下所示:

里面只有一个目录:dfs/name/current,其中tmp/dfs/name/current的文件如下:

文件说明如下:
fsimage:NameNode元数据在内存满后,持久化保存到的文件fsimage*.md5:校验文件,用于校验fsimage的完整性seen_txid:存放transactionID文件,format之后为0,表示NameNode里面的edits_*文件的尾数VERSION:保存创建时间,namespaceID、blockpoolID、storageType、cTime、clusterID、layoutVersion
关于VERSION的说明:
namespaceID:HDFS唯一标识符,在HDFS首次格式化后生成blockpoolID:标识一个block pool,跨集群全局唯一storageType:存储什么进程的数据结构信息cTime:创建时间clusterID:系统生成或指定的集群ID,可以使用-clusterid指定layoutVersion:表示HDFS永久性数据结构版本的信息
4.2 启动NameNode
HADOOP/sbin/start-dfs.sh
然后可以通过
localhost:9870
访问NameNode:

4.3 测试
生成输入目录,并使用配置文件作为输入:
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/USER_NAME # USER_NAME为您的用户名
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
测试:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output 'dfs[a-z.]+'
获取输出:
bin/hdfs dfs -get output output # 复制输出到output目录
cat output/*

停止:
sbin/stop-hdfs.sh
5 使用YARN配置
除了可以将单个节点以伪分布模式启动,还可以通过YARN统一调度,只需要适当修改配置文件。
5.1 配置文件
修改以下文件:
HADOOP/etc/hadoop/mapred-site.xmlHADOOP/etc/hadoop/yarn-site.xml
5.1.1 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
mapreduce.framework.name指定了MapReduce运行在YARN上mapreduce.application.classpath指定了类路径
5.1.2 yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
yarn.nodemanager.aux-services:运行在NodeManager上运行的附属服务yarn.nodemanager.env-whitelist:环境变量通过从NodeManagers的容器继承的环境属性
5.2 运行
sbin/start-yarn.sh
运行后就可以通过
localhost:8088
访问:

停止:
sbin/stop-yarn.sh
6 参考
- Hadoop3.3.0官方文档
- CSDN-GitChat·大数据 | 史上最详细的Hadoop环境搭建
- CSDN-Hadoop Namenode元数据文件 Fsimage、editlog、seen_txid说明
Hadoop完整搭建过程(二):伪分布模式的更多相关文章
- 本地+分布式Hadoop完整搭建过程
1 概述 Hadoop在大数据技术体系中极为重要,被誉为是改变世界的7个Java项目之一(剩下6个是Junit.Eclipse.Spring.Solr.HudsonAndJenkins.Android ...
- Hadoop完整搭建过程(三):完全分布模式(虚拟机)
1 完全分布模式 完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍 ...
- Hadoop完整搭建过程(四):完全分布模式(服务器)
1 概述 上一篇文章介绍了如何使用虚拟机搭建集群,到了这篇文章就是实战了,使用真实的三台不同服务器进行Hadoop集群的搭建.具体步骤其实与虚拟机的差不多,但是由于安全组以及端口等等一些列的问题,会与 ...
- Hadoop完整搭建过程(一):本地模式
1 本地模式 本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS. 本地模式主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式. ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)
Hadoop在处理海量数据分析方面具有独天优势.今天花了在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式 ...
- 转载——Asp.Net MVC+EF+三层架构的完整搭建过程
转载http://www.cnblogs.com/zzqvq/p/5816091.html Asp.Net MVC+EF+三层架构的完整搭建过程 架构图: 使用的数据库: 一张公司的员工信息表,测试数 ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
首先要了解一下Hadoop的运行模式: 单机模式(standalone) 单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选 ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】
[转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了 ...
- 【Hadoop离线基础总结】伪分布模式环境搭建
伪分布模式环境搭建 服务规划 适用于学习测试开发集群模式 步骤 第一步:停止单节点集群,删除/export/servers/hadoop-2.7.5/hadoopDatas,重新创建文件夹 停止单节点 ...
随机推荐
- git log的常用命令
git config --global alias.lg "log --graph --oneline --pretty='%Cred%h%Creset -%C(yellow)%d%Cblu ...
- Windows定时重新启动(适用于server 2012 r2)
直接看链接吧:https://jingyan.baidu.com/article/2d5afd69dd8e9d85a2e28eb7.html 开始菜单,找到"计划任务程序"; 2 ...
- Redis基本数据结构之ZSet
1.1Zset(有序集合) Zset保留了集合不能有重复成员的特性,但不同的是,有序集合中的元素可以排序.但是它和列表使用索引下标作为排序依据不同的是,它给每个元素设置一个分数(score)作为排序的 ...
- Mysql通过binlog恢复误update的数据
事件: 在生产库执行update时只添加了STATUS(状态)条件,将所有状态为'E'的数据全部改为了'D' 思路: 操作步骤主要参考自文章:https://blog.csdn.net/weixin_ ...
- 后端程序员之路 38、Scala入门
Scala 是 Scalable Language 的简写,是一门多范式的编程语言. 语言特性:1.面向对象,所有值都是对象,类可以继承和组合:2.函数式,支持闭包,支持柯里化等等:3.静态类型,支持 ...
- JVM-对象及对象内存布局
目录 前言 类与对象 对象类二分模型 对象 对象内存布局 JOL工具 对象头 Mark Word 类型句柄 对象头与锁膨胀 无锁 偏向锁 轻量级锁 重量级锁 重量级锁降级 实例数据 填充 对象生命周期 ...
- Java 开发工具
开发工具·Eclipse 常见开发工具介绍 * A:操作系统自带的记事本软件 * B:高级记事本软件 * C:集成开发环境 IDE * (Integrated Development Envi ...
- php伪协议分析与CTF例题讲解
本文大量转载于:https://blog.csdn.net/qq_41289254/article/details/81388343 (感谢博主) 一,php:// 访问输入 ...
- MindSpore:基于本地差分隐私的 Bandit 算法
摘要:本文将先简单介绍Bandit 问题和本地差分隐私的相关背景,然后介绍基于本地差分隐私的 Bandit 算法,最后通过一个简单的电影推荐场景来验证 LDP LinUCB 算法. Bandit问题是 ...
- Oracle数据库搬家牵扯出的一些知识点记录
Oracle数据库迁移过程中的一些记录 工作原因,对开发服务器的数据库进行了迁移,实际执行操作之前查了一下迁移oracle数据库的可行方案,最后用了 exp/imp 进行导出导入(这个比较简单),以及 ...