1.核心

  HDFS  分布式文件系统   

    主从结构,一个namenoe和多个datanode, 分别对应独立的物理机器

      1) NameNode是主服务器,管理文件系统的命名空间和客户端对文件的访问操作。NameNode执行文件系统的命名空间操作,比如打开关闭重命名文件或者目录等,它也负责数据块到具体DataNode的映射

      2)集群中的DataNode管理存储的数据。负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建删除和复制工作。

      3)NameNode是所有HDFS元数据的管理者,用户数据永远不会经过NameNode

  MapReduce  并行计算框架

    主从结构,一个JobTracker和多个TaskTracker

      1) MapReduce是由一个单独运行在主节点上的JobTacker和运行在每个集群从节点上的TaskTracker共同组成的。JobTacker负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。总结点监控他们的执行情况,

       并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务

      2)  MapReduce模型原理是利用一个输入的key/value对集合来产生一个输出的key/value队集合,使用Map和Reduce函数来计算

      3)  MapReduce将大数据分解为成百上千小数据集,每个数据集分别由集群中的一个节点(一般是一台计算机)并行处理生成中间结果,后然这些中间结果又由大量的节点合并,形成最终结果

2. 基础概念

  1)hadoop集群三种模式:本地模式(单机模式),伪分布模式,全分布式模式

    单机模式:没有守护进程,所有东西运行在jvm上,使用的是本地文件系统, 没有dfs,使用开发过程中运行mapreduce程序,是使用最少的一种模式

    伪分布模式:在一台服务器上模拟集群安装环境, 即多个进程运行在一个服务器上;使用与开发和测试环境,所有 守护进程在同一台机子上

    全分布式模式:N台主机组成一个Hadoop集群,Hadoop守护进程运行在每一台主机上;分布式模式中,主节点和从节点会分开

  

  2) 网络连接方式

    host-only:宿主机(windows)与客户机(虚拟机中的客户机)单独组网,与主机当前的网络是隔离的

    bridge:宿主机和客户机网络是连接的,在同一个局域网中,可以相互访问

    NAT(network address translation): 虚拟机不占用主机所在局域网ip,通过使用主机的NAT功能访问区域网和互联网,此种方式虚拟机不用设置静态ip,只需要使用DHCP功能自动获取ip即可(绝大多数上网使用此种方式)

  3)SSH  使用ssh进行免密码登陆

      产生秘钥: ssh-keygen -t rsa   

      目录:~/.ssh

      公钥拷贝:cp id_rsa.pub authorized_keys

3. 伪分布式安装

  准备:  ----关闭防火墙(内网中,安全性问题较小)

         查看状态:service iptables status

         关闭: service iptables stop

         关闭防火墙的自动启动: chkconfig -list | grep iptables(查看)

                     chkconfig iptables off(关闭)

      ----修改ip  (修改后 让其生效:server network restart, 然后使用ifconfig查看)

      ----修改hostname(/etc/sysconfig/network  更改主机名;  etc/hosts  将主机名与ip地址绑定; )

      ----设置ssh自动登录(查看上面章节)

        ssh-keygen -t rsa

        cp id_rsa.pub authorized_keys

        验证 ssh localhost

  1. 安装jdk -----配置环境变量(/etc/profile    java_home和path)----生效(source /etc/profile)---验证(java -version)

  2. 安装hadoop(tar -zxvf hadoop-1.1.2.tar.gz)---重名名(mv hadoop-1.1.2 hadoop)----配置环境变量(hadoop_home和path)----生效(source /etc/profile)

  3. 伪分布式集群:

    修改hadoop_home/conf下配置文件 hadoop-env.sh   core-site.cml  hdfs-site.xml mapred-site.xml

    

1.hadoop-env.sh
export JAVA_HOME=/usr/local/jdk/ 2.core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop:9000</value></property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration> 3.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value></property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration> 4.mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value></property>
</configuration>

    

    4. 启动

      hadoop namenode -format(格式化)

      start-all.sh

      使用jps查看进程

        JobTracker、DateNode、TaskTracker、SecondaryNameNode、NameNode

      网址栏中输入 hostname:50070 查看namenode信息

          输入 hostname:50030 产看mapreduce信息

      关闭: stop-all.sh

           

    

    

4. 分布式安装

  1.规划集群各节点的功能

    两台主机 主机1 hadoop0 namenode ;  主机2 hadoop1 datanode

  2. 检查如下配置(同伪分布式安装):1)防火墙是否关闭 2)ip是否设置 3)主机名是否设置  4)/etc/hosts是否配置 5)自己主机的ssh免密码登录是否设置

  3. 集群间ssh免密码登录配置

    在hadoop0上执行:ssh-copy-id -l ~/.ssh/id_rsa.pub hadoop1 (当本机已经产生rsa authorization时, 通过ssh-copy-id 可以将认证传送到宿端主机)

    在hadoop1上执行:ssh-copy-id -l ~/.ssh/id_rsa.pub hadoop0

    使用ssh hadoop1验证

  4. 配置/etc/hosts文件

   例如在hadoop0的/etc/hosts文件中添加: 192.168.1.169 hadoop0

                        192.168.1.21 hadoop1

  5. 其他节点上jdk和hadoop的安装

   在hadoop0上执行:

   scp -rq /usr/local/jdk hadoop1:/usr/local   (-r递归复制整个目录, -q不显示进度条)

   scp -rq /usr/local/hadoop hadoop1:/usr/local

   scp -rq /etc/profile hadoop1:/etc

   scp -rq /etc/hosts hadoop1:/etc

   source /etc/profile

  6. 配置集群

    hadoop0下 修改hadoop_home/conf/slaves(存储datanode和tasktracker节点名称),将localhost改为hadoop1

  7. 启动集群

    在hadoop0中执行hadoop namenode -format

             start-all.sh

             (关闭: stop-all.sh)

  8. jps查看进程

   hadoop0上 NameNode 、SecondarayNameNode、JobTracker进程

   hadoop1上 DataNode、TaskTracker

  9. 常见启动错误

   unknownHostException :设置主机名错误(查看/etc/sysconfig/network)

   BindException:ip设置错误(查看/etc/hosts)

    Name Node is in safe mode 文件系统在安全模式(分布式文件系统启动时,开始会有 安全模式,出于安全模式时文件系统中的内容不允许修改和删除,直至安全模式结束,安全模式是系统启动时检查各个datanode上数据块的有效性,可以等待一会或者关闭安全模式  hadoop dfsadmin -safemode leave)

    

hadoop学习笔记——基础知识及安装的更多相关文章

  1. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  2. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  3. SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数

    Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下:   ...

  4. 吴裕雄--天生自然HADOOP学习笔记:使用yum安装更新软件

    实验目的 了解yum的原理及配置 学习软件的更新与安装 学习源代码编译安装 实验原理 1.编译安装 前面我们讲到了安装软件的方式,因为linux是开放源码的,我们可以直接获得源码,自己编译安装.例如: ...

  5. GO Lang学习笔记 - 基础知识

    Go lang Learn Note 标签(空格分隔): Go Go安装和Go目录 设置环境变量GOROOT和GOPATH,前者是go的安装目录,后者是开发工作目录.go get包只会将包下载到第一个 ...

  6. Java Script 学习笔记 -- 基础知识

    Java script 概述 java Script 的简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...

  7. [原创] hadoop学习笔记:卸载和安装jdk

    一,卸载jdk 1.确定jdk版本 #rpm -qa  | grep jak 可能的结果: java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64 java- ...

  8. java虚拟机JVM学习笔记-基础知识

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--java虚拟机 媒介:JVM是每一位从事Java开发工程师必须翻越的一座大山! JVM(Java Virtual Machine)JRE ...

  9. php学习笔记——基础知识(2)

    9.PHP语句 if 语句 - 如果指定条件为真,则执行代码 if...else 语句 - 如果条件为 true,则执行代码:如果条件为 false,则执行另一端代码 if...else if.... ...

随机推荐

  1. HTMLImageElement类型的简便利用

    这个是我在复习书籍的时候看见的,当时一个同学想通过页面发送请求,但是数据量不是太大,所以用的get方式,但是页面用表单提交请求的话会让页面进行跳转,当时我在网上查了一点资料,发现基本上都是通过ajax ...

  2. jQuery按钮复制文本内容

    这种方法能保证文本内容被复制到windows剪切板,代码示例是复制url <!doctype html> <html> <head> <meta charse ...

  3. 三种读写XML的方法

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  4. 重学C语言 -- printf,scanf

     printf();    用来显示格式串的内容          注意: 参数不可以换行,否则会出一个警告.       格式串中占位符比表达式数量多     会显示一个无意义值 格式串中占位符比表 ...

  5. ubuntu 12 64 桌面版Oracle11g 安装

    1.Creating the Oracle Inventory Group sudo groupadd oinstall sudo groupadd dba sudo groupadd oper su ...

  6. hdu 1358 period KMP入门

    Period 题意:一个长为N (2 <= N <= 1 000 000) 的字符串,问前缀串长度为k(k > 1)是否是一个周期串,即k = A...A;若是则按k从小到大的顺序输 ...

  7. uvision4 ide已停止工作

    情景描述: 笔者安装了新系统WIN8.1,装上了MDKV4.72.MDK编译程序可以正常工作,可是只要当我“下载程序”或者“调试程序”的时候就提示“uvision4 ide已停止工作”,迫不得已只能关 ...

  8. windows下使用eclipse调试C程序

    一.环境描述 Eclipse IDE for C/C++ Developers version 4.4.0 MinGW  gcc/g++ version 4.8.1;gdb version 7.6.1 ...

  9. 一步步学习NHibernate(5)——多对一,一对多,懒加载(2)

    请注明转载地址:http://www.cnblogs.com/arhat 通过上一章的学习,我们建立了Student和Clazz之间的关联属性,并从Student(many)的一方查看了Clazz的信 ...

  10. gradient css

    <!DOCTYPE html> <html> <head> <title></title> <script src="js/ ...