文档章节

Hadoop实战读书笔记(4)

祥林会跟你远走高飞
 祥林会跟你远走高飞
发布于 2014/12/05 20:50
字数 1530
阅读 40
收藏 1
点赞 1
评论 0

安装Hadoop集群

1、需要专门制定一个服务器作为主节点。

2、这个节点会驻留NameNodeJobTracker的守护进程。

3、它也将作为一个基站,负责联络并激活所有从节点上的DataNodeTaskTracker守护进程。

4、因此我们需要为主节点定制一种手段,使它能够远程地访问到集群中的每个节点。

 

如何使主节点远程地访问到集群中的每个节点呢?

使用无口令的 (passphraseless) SSH协议。

 

什么是SSH协议?

SSH采用标准的公钥加密来生成一对用户验证密钥-一个公钥、一个私钥。公钥被本地存储在集群的每个节点上,私钥则由主节点在试图访问远端节点时发送过来。结合这两段信息,目标机可以对这次登录尝试进行验证。

 

定义一个公共账号

方便从一个节点的用户账号到目标机上的另一个用户账号。

对于Hadoop,所有节点上的账号应该相同的用户名。

 

如何检查节点上是否安装了SSH

which ssh

which sshd

which ssh-keygen

 

Hadoop的配置文件说明

Hadoop的设置主要包含在XML配置文件中,在0.20版本之前,它们是hadoop-default.xmlhadoop.site.xml。顾名思义,hadoop-default.xml中包含了Hadoop会使用的默认设置,除非这些设置在hadoop-site.xml中被显式地覆盖。因此,在实际操作中你只需要处理hadoop-sitex.xml。在版本0.20中,这个文件被分离成3XML文件:core-site.xmlhdfs-site,xnlmapred-site.xml。这次重构更好地对应了它们所控制的Hadoop子系统。

 

Hadoop配置的三种模式
单机模式

伪分布式模式

完全分布式模式

 

单机模式是指?

单机模式是Hadoop的默认模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3XML文件 (或者0.20版本之前的hadoop-site.xml)均为空。

当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不适用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑,而不会与守护进程交互,避免引起额外的复杂性。

 

伪分布式模式时指?

伪分布模式在 "单节点集群"上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况、HDFS输入输出,以及其他的守护进程交互。

简单配置:

core-site.xml:
<configuration>

       <property>

              <name>fs.default.name</name>

              <value>hdfs://localhost:9000</value>

       </property>

</configuration>

mapred-site.xml
<configuration>

       <property>

              <name>mapred.job.tracker</name>

              <value>localhost:9001</value>

       </property>

</configuration>

hdfs-site.xml
<configuration>

       <property>

              <name>dfs.replication</name>

              <value>1</value>

       </property>

</configuration>

我们在core-site.xmlmapred-site.xml中分别制定了NameNodeJobTracker的主机名与端口。在hdfs-site.xml中指定了HDFS的默认副本数,因为仅运行在一个节点上,这里副本数为1.我们还需要在文件masters中指定SNN的位置,并在文件salves中指定从节点的位置

vi masters

localhost

vi slaves

localhost

虽然所有的守护进程都运行在同一节点上,它们仍然像分布在集群中一样,彼此通过相同的SSH协议进行通信。

 

使用什么装载守护进程呢?

bin/start-all.sh

 

使用什么查看守护进程是否启动?

jps

 

如何关闭Hadoop的守护进程?

bin/stop-all.sh

 

完全分布式模式是指?

真正用于生产环境的Hadoop集群。

集群节点说明:

master-集群的主节点,驻留NameNodeJobTracker守护进程

backup-驻留SNN守护进程的节点

hadoop1hadoop2hadoop3-集群的从节点,驻留DataNodeTaskTracker守护进程。

配置文件:

core-site.xml:
<configuration>

       <property>

              <name>fs.default.name</name>

              <value>hdfs://master:9000</value>

       </property>

</configuration>

mapred-site.xml
<configuration>

       <property>

              <name>mapred.job.tracker</name>

              <value>master:9001</value>

       </property>

</configuration>

hdfs-site.xml
<configuration>

       <property>

              <name>dfs.replication</name>

              <value>3</value>

       </property>

</configuration>

不同于伪分布式的两点:

1、明确地声明了NameNodeJobTracker守护进程所在的主机名

2、增大了HDFS的备份参数以发挥分布式存储的优势,数据通过在HDFS上复制可以提高可用性与可靠性

vi masters

backup

vi slaves

hadoop1

hadoop2

hadoop3

在将这些文件复制到集群上的所有节点之后,一定要格式化HDFS以准备好存储数据

bin/hadoop namenode -format

 

模式之间的切换如何做?

有一个技巧在开始使用Hadoop时是很有用的,就是使用符号链接而不是不断编辑XML文件来切换Hadoop的模式,为了做到这一点,需要为每种模式分别生成一个配置目录,并相应地放入恰当版本的XML文件

然后,就可以使用Linuxln命令 (例如 ln -s conf.cluster conf) 在不同配置之间切换。这个技巧还有助于临时把一个节点从集群中分离出来,从而通过伪分布模式来调试一个MapReduce程序,但需要确保这些模式在HDFS上有不同的文件存储位置,并且在改变配置之前还应该停止所有的守护进程。

 

基于Web的集群用户界面

NameNode通过端口50070提供常规报告,描绘集群上HDFS的状态视图。

通过这个界面,可以通览文件系统,检查集群每个DataNode的状态,并详细查看Hadoop守护进程的日志来判断集群当前运行是否正确。

JobTracker通过端口50030提供视图,包括MapReduce中任务的运行时状态,以及整个作业的详细报告。详细报告指的是:这些日志描述了哪个节点执行了哪个任务,以及需要完成每个任务所需的时间或资源比,还可以获得Hadoop对个作业的配置。


© 著作权归作者所有

共有 人打赏支持
祥林会跟你远走高飞
粉丝 26
博文 49
码字总数 98029
作品 0
昌平
程序员
读书笔记_Index

第1章 Java性能调优概述 第2章 设计优化 第3章 Java程序优化 第4章 并行程序开发及优化 第5章 JVM调优 第6章 Java性能调优工具 第1章 简介 第2章 线程安全性 第3章 对象的共享 第1章 走近Jav...

陶邦仁 ⋅ 2014/03/19 ⋅ 0

Hadoop实战读书笔记(7)

输入数据概要 输入数据通常驻留在较大的文件中,通常几十或者数百GB,甚至更大。MapReduce处理的基本原则之一是将输入数据分割成块。这些块可以在多台计算机上并行处理,在Hadoop的术语中这些...

祥林会跟你远走高飞 ⋅ 2014/12/08 ⋅ 0

敏捷教练成长记:漫漫长路第三周

看到跆拳道的软文,讲到: 学跆拳道的正确顺序: 第一阶段:有兴趣 第二阶段:没兴趣 第三阶段:逼练习 第四阶段:成习惯 第五阶段:有兴趣 第六阶段:真热爱 大部分家长在孩子第二阶段时放弃...

转型实践者 ⋅ 2017/11/17 ⋅ 0

Hadoop实战读书笔记(9)

如何将一个反向引用索引的程序的Reducer输出的类型改为IntWritable public static class Reduce extends MapReduceBase implements Reducer<Text, Text, Text, IntWritable> { public void ......

祥林会跟你远走高飞 ⋅ 2014/12/09 ⋅ 0

Hadoop实战读书笔记(8)

什么是开发数据集? 一个流行的开发策略是为生产环境中的大数据集建立一个较小的、抽样的数据子集,称为开发数据集。这个开发数据集可能只有几百兆字节。当你以单机或者伪分布式模式编写程序...

祥林会跟你远走高飞 ⋅ 2014/12/08 ⋅ 0

Hadoop实战读书笔记(5)

HDFS文件操作 你可以把一个大数据集(100TB)在HDFS中存储为单个文件,而大多数其他的文件系统无力实现这一点。虽然该文件存在多个副本分布在多台机器上来支持并行处理,你也不必考虑这些细节...

祥林会跟你远走高飞 ⋅ 2014/12/08 ⋅ 0

敏捷教练成长记:秋高气爽第四周

不知不觉坚持了四周了,这周很忙,写读书笔记时尽显疲态,有厌倦的感觉了。需要自我调整,继续坚持。 1、敏捷方面读不少于50页的书或者文章。 阅读《持续交付-发布可靠软件的系统方法》第三章...

转型实践者 ⋅ 2017/11/26 ⋅ 0

优秀技术网址收集

Ruthless java多线程,java高级特性,Android基础,Android高级,Android常用控件,j2ee案例,Redis,Spring,javascript,Linux,Oracle,Ext,Hadoop,Jquery,Lucence,Nginx,Dubbo等 孤狼...

HenrySun ⋅ 2015/07/28 ⋅ 0

Hadoop实战读书笔记(6)

putmerge程序的大体流程是? 1、根据用户定义的参数设置本地目录和HDFS的目录文件 2、提取本地输入目录中每个文件的信息 3、创建一个输出流写入到HDF文件 4、遍历本地目录中的每个文件,打开...

祥林会跟你远走高飞 ⋅ 2014/12/08 ⋅ 0

2017年年终总结

前言 不知不觉,2017年又接近尾声了,又到了该写年终总结的时候了,往年这个时候都会熙熙攘攘,各大平台提早预热过年的气氛,而今年显得格外的平静,这可能正如我的现在的心境,波澜而不惊!...

韩俊强 ⋅ 01/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 31分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 39分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 48分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部