1 伪分布模式

伪分布模式是运行在单个节点以及多个Java进程上的模式。相比起本地模式,需要进行更多配置文件的设置以及sshYARN相关设置。

2 Hadoop配置文件

修改Hadoop安装目录下的三个配置文件:

  • etc/hadoop/core-site.xml
  • etc/hadoop/hdfs-site.xml
  • etc/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的文件如下:

文件说明如下:

  • fsimageNameNode元数据在内存满后,持久化保存到的文件
  • fsimage*.md5:校验文件,用于校验fsimage的完整性
  • seen_txid:存放transactionID文件,format之后为0,表示NameNode里面的edits_*文件的尾数
  • VERSION:保存创建时间,namespaceIDblockpoolIDstorageTypecTimeclusterIDlayoutVersion

关于VERSION的说明:

  • namespaceIDHDFS唯一标识符,在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.xml
  • HADOOP/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 参考

Hadoop完整搭建过程(二):伪分布模式的更多相关文章

  1. 本地+分布式Hadoop完整搭建过程

    1 概述 Hadoop在大数据技术体系中极为重要,被誉为是改变世界的7个Java项目之一(剩下6个是Junit.Eclipse.Spring.Solr.HudsonAndJenkins.Android ...

  2. Hadoop完整搭建过程(三):完全分布模式(虚拟机)

    1 完全分布模式 完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍 ...

  3. Hadoop完整搭建过程(四):完全分布模式(服务器)

    1 概述 上一篇文章介绍了如何使用虚拟机搭建集群,到了这篇文章就是实战了,使用真实的三台不同服务器进行Hadoop集群的搭建.具体步骤其实与虚拟机的差不多,但是由于安全组以及端口等等一些列的问题,会与 ...

  4. Hadoop完整搭建过程(一):本地模式

    1 本地模式 本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS. 本地模式主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式. ...

  5. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)

    Hadoop在处理海量数据分析方面具有独天优势.今天花了在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式 ...

  6. 转载——Asp.Net MVC+EF+三层架构的完整搭建过程

    转载http://www.cnblogs.com/zzqvq/p/5816091.html Asp.Net MVC+EF+三层架构的完整搭建过程 架构图: 使用的数据库: 一张公司的员工信息表,测试数 ...

  7. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

    首先要了解一下Hadoop的运行模式: 单机模式(standalone)        单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选 ...

  8. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】

    [转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了 ...

  9. 【Hadoop离线基础总结】伪分布模式环境搭建

    伪分布模式环境搭建 服务规划 适用于学习测试开发集群模式 步骤 第一步:停止单节点集群,删除/export/servers/hadoop-2.7.5/hadoopDatas,重新创建文件夹 停止单节点 ...

随机推荐

  1. Hystrix熔断器的使用步骤

    1.添加熔断器依赖 2.在配置文件中开启熔断器 feign.hystrix.enabled=true 3.写接口的实现类VodFileDegradeFeignClient,在实现类中写如果出错了输出的 ...

  2. ElementUI使用总结

    首先声明,我这总结的官网都有,只是将自己使用时遇到的问题,重新记录一下,官网地址:https://element.eleme.cn/ 1.表格内指定行数给定不同样式(类似于隔行变色,也能叫指定行数不同 ...

  3. 读懂框架设计的灵魂—Java反射机制

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  4. Python和JavaScript在使用上有什么区别?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://www.freecodecamp.org/news/python-vs-javas ...

  5. 学习java之基础语法(一)

    学习java之基础语法(一) 基本语法 编写 Java 程序时,应注意以下几点: 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说 ...

  6. C++的标识符的作用域与可见性

    下面是关于C++的标识符的作用域与可见性学习记录,仅供参考 标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域. 作用域分类 ①函数原型作用域 ②局部作用域(快作用域) ③类作用域 ④文 ...

  7. mysql基本指令2

    pymysql:  - 连接.关闭(游标)  - execute()   -- SQL注入    sss' or 1=1 --   - 增删改: conn.commit()  - fetchone f ...

  8. Java 在PPT中添加文本水印的简易方法(单一/平铺水印)

    [前言] 在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即在幻灯片中心位置水印以单个文本字样显示,但通过一定方法也可以添加多行(平铺)文本水印效果,即在幻灯片中 ...

  9. js toFixed

    为什么(2.55).toFixed(1)等于2.5? 上次遇到了一个奇怪的问题:JS的(2.55).toFixed(1)输出是2.5,而不是四舍五入的2.6,这是为什么呢? 进一步观察: 发现,并不是 ...

  10. 《逆向工程核心原理》Windows消息钩取

    DLL注入--使用SetWindowsHookEx函数实现消息钩取 MSDN: SetWindowsHookEx Function The SetWindowsHookEx function inst ...