Hadoop 笔记1 (原理和HDFS分布式搭建)
1. hadoop 是什么 以及解决的问题 (自行百度)
2.基本概念的讲解
1. NodeName master 节点(NN)
主节点 保存了metaData(元数据信息) 包括文件的owener和permission ,文件包换哪些block,block保存在哪个DataNode
NameNode的metaData信息在启动时会加载 到内存
,操作文件的日志信息,edit文件,同时不断合并edit和fsimage 这两个文件就可以记录 HDFS 上所有文件的信息
2.secondary NameNode (从节点)
主要工作是帮助naneNode合并editslog,减少NN启动时间,原理如下

3. dataNode
实际保存存储的文件信息(Block)
启动时dataNode线程会向NameNode汇报block信息
像nameNode 发送心跳 如果namenode 10分钟没有收到则任务 datanode 挂了,并且copy block到其他DataNode
4 hdfs
文件按大小切分成固定大小的block块 存储到不同的datanode上 最少每个block块 会保存3个副本 防止数据丢失

如下 红色色数据 分别存储待不同的机器上 保证数据不丢失
分布式部署如下(centos 6.6 jdk 1.7 hadoop 2.5.1 )
节点如下,四台机器
NN SNN DN
node1 1
node2 1 1
node3 1
node4 1
1. 主机名,防火墙,网络配置
编辑 vi /etc/hosts 文件(保证4台机器可以通信),以下为配置域名
192.168.109.113 node1
192.168.109.114 node2
192.168.109.222 node3
192.168.109.121 node4
关闭防火墙service iptable stop
2 node1访问node2,3,4秘钥(不输入密码)
Node1 ssh-keygen -t rsa 一路回车,node2,node3 node4 同样, 在家目录下执行创建秘钥对的命令,会生成.ssh目录
scp authorized_keys root@node2:/root/.ssh/ 将node1 的秘钥拷复制到 node2,node2,node4 的/root/.ssh下即可实现免登陆
scp authorized_keys root@node3:/root/.ssh/
scp authorized_keys root@node4:/root/.ssh/
ssh node2 就不用再输入密码了
3 时间同步(保证四台机器时间一样,会有心跳检测)
Ntp 安装 yum install ntp
ntpdate s1a.time.edu.cn //北京大学的ntp 地址 用ntpdate选择时间服务即可
实际中报错没有解决 ,最终在xhell中 选择全部会话 执行date –s 12:10:10 时间做了一个同步
4 安装jdk
Rpm –ivh jdk的rpm包,安装后默认在 /usr/java 下
配置jdk环境的变量
Vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_45
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
保存 java –version 查看是否安装成功
5 hadoop 安装和配置
tar –zxvf hadoop xx tar .gz
配置文件位置/usr/local/hadoop-2.5.1/etc/hadoop
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoopHDFS</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!—下面已经制定snn>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
</configuration>
配置hadoop_env.sh 修改java_home
export JAVA_HOME=/usr/java/jdk1.7.0_45
配合hadoop环境变量
export HADOOP_HOME=/usr/local/hadoop-2.5.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置master 和slaves
vi /usr/local/hadoop-2.5.1/etc/hadoop/masters 写入node1,master 就是nameNode
vi /usr/local/hadoop-2.5.1/etc/hadoop/slaves 写入node2,node3,node4
统一拷贝配置文件保证每台都一样
scp -r hadoop/ root@node4:/usr/local/hadoop-2.5.1/etc/
scp -r hadoop/ root@node3:/usr/local/hadoop-2.5.1/etc/
scp -r hadoop/ root@node2:/usr/local/hadoop-2.5.1/etc/
6 格式化NN(bin下面)
hdfs namenode –format
7 启动
start-dfs.sh
查看每台的进程jps
NN(node1)
SNN(node2)
DN(node2,node3,node4)
Web 页面 http://192.168.109.113:50070/ nodeName的50070访问
Hadoop 笔记1 (原理和HDFS分布式搭建)的更多相关文章
- hadoop3自学入门笔记(2)—— HDFS分布式搭建
一些介绍 Hadoop 2和Hadoop 3的端口区别 Hadoop 3 HDFS集群架构 我的集群规划 name ip role 61 192.168.3.61 namenode,datanode ...
- 2.hadoop基本配置,本地模式,伪分布式搭建
2. Hadoop三种集群方式 1. 三种集群方式 本地模式 hdfs dfs -ls / 不需要启动任何进程 伪分布式 所有进程跑在一个机器上 完全分布式 每个机器运行不同的进程 2. 服务器基本配 ...
- Hadoop,master和slave简单的分布式搭建
搭建过程中配置免密钥登录为了以后方便使用 [提醒]安装Hadoop中会遇到新建文件夹,配置路径等问题,这个不能生搬硬套,要使用自己配置的路径,灵活使用. Hadoop的部署配置文件在http://bl ...
- 【转】Hadoop HDFS分布式环境搭建
原文地址 http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...
- hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用
一.HDFS的相关基本概念 1.数据块 1.在HDFS中,文件诶切分成固定大小的数据块,默认大小为64MB(hadoop2.x以后是128M),也可以自己配置. 2.为何数据块如此大,因为数据传输时间 ...
- 超详细解说Hadoop伪分布式搭建--实战验证【转】
超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...
- Hadoop完全分布式搭建过程中遇到的问题小结
前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...
- hadoop分布式搭建
1.新建三台机器,分别为: hadoop分布式搭建至少需要三台机器: master extension1 extension2 本文利用在VMware Workstation下安装Linux cent ...
- Spark环境搭建(一)-----------HDFS分布式文件系统搭建
下载的压缩文件放在~/software/ 解压安装在~/app/ 一:分布式文件系统搭建HDFS 1,下载Hadoop HDFS环境搭建 使用版本:hadoop-2.6.0-cdh5.7. ...
随机推荐
- Docker - 容器互联
容器互联 通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互. 参数格式:--link name:alias ,name是要链接的容器名称, alias ...
- C#超简单方法实现两个richtextbox控件滚动条同步滚动
此文章属于作者原创,转载请注明,谢谢 有时候我们需要实现对照文章等,往往将文本放到两个richtextbox控件中,但是,如果我们需要同步滚动查看,来达到更好的观看效果. 当然,传统的方法重载控件或者 ...
- Node.js入门以及第一个helloworld程序
1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的. ...
- liunx命令2
查看系统和bios硬件时间 [root@localhost ~]# date '+%y- %m- %d %H:%M' 17- 05- 15 02:57[root@localhost ~]# date ...
- struts2.3.23升级到struts2.3.32
新的漏洞 3月8号去审计厅培训系统的使用,那边计算机中心的负责人递过来一张如下图所示的文档,意思是发现了struts2的漏洞,需要进行修复. 在培训前,我登录到服务器中,看到了项目中,所有的服务器中应 ...
- on方法使用注意事项
on(eventType,[childSelector],[data],fn) 采用事件委托机制绑定事件,好处是子元素动态加入时无需再次绑定. on方法可以传入childSelector指定添加事件处 ...
- VUE依赖webpack分别给开发环境和生产环境配置不同的常量值并在项目中动态引用
当在开发和产品上线的时候,我们经常会遇到在同一个地方由于环境的不同而地址也不同的情况,这时候如果在代码中将该地址写死,那势必会造成上线时手动改动,多人开发及多处使用该地址难以维护等一系列问题,为避免这 ...
- java.util.Properties工具类
import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import ...
- 浅谈 Java 主流开源类库解析 XML
在大型项目编码推进中,涉及到 XML 解析问题时,大多数程序员都不太会选用底层的解析方式直接编码. 主要存在编码复杂性.难扩展.难复用....,但如果你是 super 程序员或是一个人的项目,也不妨一 ...
- 深入解析java String中getBytes()的编码问题
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6900536.html Java服务器后台在和Android端App通信时,遇到了两端关于用MD5加密同一包含 ...