大数据Hadoop介绍(一)


Hadoop来源
来自于Google 三大论文
MapReduce / GFS / BigTable


三大核心
1、Hadoop HDFS (Hadoop Distributed File System)
一个高可靠、高吞吐量的分布式文件系统


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


3、Hadoop YARN (Yet Another Resource Negotiator)
    一个新的MapReduce框架,任务调度及资源管理


架构:
HDFS:
NameNode  主节点
DataNode  从节点
YARN:
ResourceManager 主节点
处理客服端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度


NodeManager 从节点
单节点上的资源管理器
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令


MapReduce计算框架
计算过程分为两个阶段:Map 和 Reduce
Map阶段并行处理输入数据
Reduce阶段对Map阶段进行汇总。


Shuffle链接Map和Reduce两个阶段
Map Task将数据写到本地磁盘
Reduce Task从每个Map Task读取一份数据


仅适合离线处理
具有很好的容错性和扩展性
适合简单的批量任务


缺点:
启动开销大,过多使用磁盘导致磁盘性能降低等











一、Hadoop伪分布式配置
    1.上传压缩包到指定目录


    2.解压到指定目录
    # tar -zxvf hadoop-2.6.0.tar.gz -C /opt/modules/


    Hadoop目录结构
☆bin:执行文件目录
☆etc:Hadoop配置文件都在此目录
include:包含C语言接口开发所需头文件
lib:包含C语言接口开发所需链接库文件
libexec:运行sbin目录中的脚本会调用该目录下的脚本
logs:日志目录,在运行过Hadoop后会生成该目录
☆sbin:仅超级用户能够执行的脚本,包括启动和停止dfs、yarn等
☆share:包括doc和hadoop两个目录
doc目录包含大量的Hadoop帮助文档
hadoop目录包含了运行Hadoop所需的所有jar文件,在开发中用到的jar文件也可在该目录找到


3.根据官方文档进行相应配置 http://hadoop.apache.org
配置etc/hadoop/hadoop-env.sh
使用which java  快速找到JDK安装路径
export JAVA_HOME=/opt/modules/jdk1.7.0_67




4.配置mapred-env.sh
--》在第16行配置JDK
export JAVA_HOME=/opt/modules/jdk1.7.0_67


5.配置yarn-env.sh
--》在第23行配置JDK
export JAVA_HOME=/opt/modules/jdk1.7.0_67


6.配置etc/hadoop/core-site.xml:
--》配置NameNode所在机器位置,以及NameNode和datanode交互的端口号
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://linux.yuntu.com:8020</value>
    </property>


    --》配置Hadoop缓存文件目录
    --》在hadoop家目录下创建目录:# mkdir -p data/tmp
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.6.0/data/tmp</value>
    </property>


    7.配置etc/hadoop/hdfs-site.xml:
    --》指定副本保存几份,伪分布式只能为1,完全分布式可以为多份。默认为3份
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>


8.配置slaves
--》此文件标识从节点所在机器位置
linux.yuntu.com


9.格式化NameNode
bin/hdfs namenode -format


10.启动NameNode
方式一:单独启动方式(目前推荐此种启动方式)
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode


方式二:一起启动方式(在没有配置完全前,不建议使用此方式)
sbin/start-dfs.sh 


11.验证HDFS是否可用
方式一:jps  查看相应进程
2891 NameNode
2977 DataNode


方式二:通过web页面访问HDFS文件系统
--》主机名:端口号
linux.yuntu.com:50070


简单测试使用:
--》在HDFS上创建目录
bin/hdfs dfs -mkdir /input
--》上传文件
bin/hdfs dfs -put README.txt /abc


12.关闭HDFS方式
方式一:单独关闭
sbin/hadoop-daemon.sh stop namenode
sbin/hadoop-daemon.sh stop datanode


方式二:一起关闭
sbin/stop-dfs.sh 


错误查看:
在Hadoop安装目录下 查看logs内的日志文件,排除错误


如果是配置文件出错,那么此时需要重新格式化namenode
首先清空namenode缓存 重新格式化
rm -rf data/tmp/*
bin/hdfs namenode -format




13.配置etc/hadoop/mapred-site.xml:
首先重命名生成mapred-site.xml
# mv mapred-site.xml.template mapred-site.xml
--》让mapreduce运行在YARN
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>


14.配置etc/hadoop/yarn-site.xml:
--》指定map和reduce中间使用shuffle过程进行混洗
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>


15.启动YARN
启动顺序,需要先启动HDFS 才能YARN
sbin/start-dfs.sh 
sbin/start-yarn.sh 




16.验证
使用jps查看相关节点是否启动
[root@linux hadoop-2.6.0]# jps

4196 ResourceManager
4461 NodeManager

通过web页面可以访问YARN
linux.yuntu.com:8088


17.运行第一个wordcount小程序
17.1:创建一个待统计的文件
vi hello.txt
hello china
hello hadoop
hello mapreduce
I like china
I like you


17.2:上传统计文件
bin/hdfs dfs -put /opt/datas/hello.txt /input


17.3:运行
# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output


17.4:查看结果集文件
# bin/hdfs dfs -cat /output/part-r-00000


注意:运行mapreduce任务,输出目录一定不能事先存在,否则任务不能运行

猜你喜欢

转载自blog.csdn.net/wzhyanshen/article/details/80936930