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. ...
随机推荐
- LINQ基础(二)
本文主要介绍LINQ查询操作符 LINQ查询为最常用的操作符定义了一个声明语法.还有许多查询操作符可用于Enumerable类. 下面的例子需要用到LINQ基础(一)(http://www.cnblo ...
- struts-config.xml的配置
1.<struts-config> 元素 <struts-cofnig> 元素是 Struts 配置文件的根元素.<struts-config> 元素有 8 个子 ...
- React入门---事件与数据的双向绑定-9
上一节中,我们是从父组件给子组件传送数据,要实现事件与数据的双向绑定,我们来看如何从子组件向父组件传送数据; 接触之前,我们看一些里面函数绑定的知识: 例:通过点击事件改变state的age属性值: ...
- 用C#操作文件/文件夹(删除,复制,移动)
操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 //使用file的静态方法进行复制 File.Copy(path, destpath); //使用File的静态 ...
- Sql Server + ADO.NET
MsSql-http://www.cnblogs.com/zhangwei595806165/archive/2012/02/23/2364746.html 协议:Shared Memory :效率最 ...
- js事件小结
首先事件绑定分为2种方法 一种为"DOM0级"方法,这里我理解为事件指定 var oDiv = document.getElementById("div1"); ...
- 《Android进阶》之第一篇 在Java中调用C库函数
在Java代码中通过JNI调用C函数的步骤如下: 第一步:编写Java代码 class HelloJNI{ native void printHello(); native void printStr ...
- TensorFlowSharp入门使用C#编写TensorFlow人工智能应用
TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习. TensorFlow简单介绍 TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,T ...
- 8611 大牛之路I
#include<stdio.h> ]; int main() { int i, n, m, sum, x, y; scanf("%d%d", &n, & ...
- javaWeb学习总结(9)- JSTL标签库之核心标签
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...