Hadoop学习(一)

1、hadoop简介

         hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。

2、hadoop的优势     

       1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。

       2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

       3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

       4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。

3、hadoop的组成

       1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。

       2)Hadoop MapReduce:一个分布式的离线并行计算框架。

       3)Hadoop YARN:作业调度与集群资源管理的框架。

       4)Hadoop Common:支持其他模块的工具模块。

4、HDFS架构概述

      1)NameNode:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

     2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

     3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

5、MapReduce架构概述

     MapReduce将计算过程分为两个阶段:Map和Reduce

     1)Map阶段并行处理输入数据

     2)Reduce阶段对Map结果进行汇总

6、YARN架构概述

     1)ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;

     2)NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;

     3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。

     4)Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

7、hadoop练习环境搭建

     1)安装虚拟机(使用的是VMware,安装的CenterOS6.5)

     2)修改静态ip:vim /etc/udev/rules.d/70-persistent-net.rules

           复制物理ip地址

           修改ip地址:vim /etc/sysconfig/network-scripts/ifcfg-eth0(或者在setup中修改)

     3)重启网络服务:在控制台执行 service network restart    (如果报错则重启虚拟机)

     4)修改hostname:vim /etc/sysconfig/network

     5)修改hosts: vim /etc/hosts

     6)查看防火墙状态开机启动状态:chkconfig  iptables --list

          关闭防火墙:chkconfig iptables off   (或者在setup中修改)

     7)安装jdk:查询未安装jdk(rpm -qa | grep java),如果未安装解压即可

          配置jdk环境变量:vim /etc/profile

###JAVA_HOME

export JAVA_HOME=(java的安装路径)

export PATH=$PATH:$JAVA_HOME/bin

         让文件生效source /etc/profile

         测试是否安装成功:java -version

     8)安装hadoop:解压文件即可

          配置hadoop环境变量:

#HADOOP 
export HADOOP_HOME=(hadoop安装路径)
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

        让文件生效source /etc/profile

        配置文件修改

配置hadoop-env.sh
export JAVA_HOME=${JAVA_HOME}  >> export JAVA_HOME=/usr/java/jdk1.7.0_71
    

    配置环境变量yarn-env.sh
cd hadoop-2.5.2/etc/hadoop
vim yarn-env.sh
#export JAVA_HOME=/home/y/libexec/jdk1.6.0
     export JAVA_HOME=/usr/java/jdk1.7.0_71

    配置核心组件core-site.xml
vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master1:9000</value>  <!-- master1 is name of main point -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>  <!-- master is name of home_path -->
</property>
</configuration>

    配置文件系统hdfs-site.xml
vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>  <!-- 2 means copy number -->
</property>
</configuration>

    配置文件系统yarn-site.xml
vim yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master1:18040</value> <!-- master1 is name of main point -->
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master1:18030</value> <!-- master1 is name of main point -->
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master1:18025</value> <!-- master1 is name of main point -->
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master1:18141</value> <!-- master1 is name of main point -->
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master1:18088</value> <!-- master1 is name of main point -->
</property>


<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>3072</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1026</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>3072</value>
</property>

</configuration>

     9)配置slaves:填入所有从节点名字,一个一行

    10)测试

启动集群:start-all.sh 或者 hadoop-daemon.sh start/stop 节点名
    查看进程  jps
    主节点有4个进程,分别为  ResourceManager,Jps ,NameNode,SecondaryName
    从节点有3个进程,分别为  NodeManager ,DataNode ,Jps

Web UI查看集群是否成功启动:
 浏览器在地址栏中输入http://master:50070/ 检查namenode 和 datanode是否正常。
 浏览器在地址栏中输入http://master:18088/ 检查yarn是否正常。

运行PI实例检查集群是否成功
hadoop jar hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值