分布式计算平台Hadoop

Hadoop简介

Hadoop 是Apache基金会下一个开源的分布式计算平台,它以分布式文件系统HDFS和MapReduce算法为核心,为用户提供了系统底层细节透明的分布式基础架构。
Github地址:https://github.com/apache/hadoop
官方网站:https://hadoop.apache.org/
官方文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
中文社区:http://chinahadoop.com/

Hadoop的两个核心组成:

1.HDFS:分布式文件系统,存储海量的数据。是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。
2.MapReduce:并行处理框架,实现任务分解和调度。包含map(映射)和 reduce(归约)过程,负责在 HDFS 上进行计算。

Hadoop特点

1.高扩展:能可靠地存储和处理千兆字节的数据,理论上是无限的
2.低成本:借鉴谷歌,可以通过普通机器组成的服务器群来分发以及处理数据,这些服务器群总计可达数千个
3.高效率:通过分发数据,Hadoop可以在数据所在的节点上并行地处理他们,这使得处理的非常迅速
4.可靠性:Hadoop能自动地维护数据的多份副本,并且在任务失败后能自动的重新部署计算任务

Hadoop用途

搭建大型数据仓库,PB级数据存储、处理、分析及统计,用于搜索引擎、BI、日志分析及数据挖掘等

Hadoop生态圈

Hadoop 已经成长为一个庞大的生态体系,只要和大数据相关的领域,都有 Hadoop 的身影。下图是一个 Hadoop 生态系统的图谱,详细列举了在 Hadoop 这个生态系统中出现的各种数据工具。
image

在window中使用Hadoop

1.Hadoop下载

推荐通过镜像下载
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

image.png
选择最新的3.2.0,下载tar.gz文件
image.png

2.Hadoop安装

下载完后直接解压

解压过程中可能遇到的问题

image.png

解决方法,在cmd中使用解压命令start winrar x -y hadoop-3.2.0.tar.gz

解压完成如下:

image.png
关键目录说明:

bin:存放Hadoop的操作命令
etc:存放Hadoop的配置文件
sbin:Hadoop的管理命令
share:包括Hadoop的文档和组件包

3.配置Hadoop相关的环境变量

新建系统变量

变量名:HADOOP_HOME
变量值:Hadoop解压路径

image.png

添加path属性,

%HADOOP_HOME%\bin%HADOOP_HOME%\sbin添加到path环境变量中

检验是否安装Hadoop成功

cmd中输入hadoop version,显示安装的版本号即可

image.png

4.Hadoop配置文件的修改

主要在/etc/hadoop中修改
4.1.配置默认hdfs的访问端口,主要修改core-site.xml

9000端口是通过http协议连接Hadoop使用的端口

<property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
</property>  

修改后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://localhost:9000</value>
    </property>  
</configuration>
4.2.设置复制数为1,即不进行复制。以及加入namenode文件路径以及datanode数据路径。主要修改hdfs-site.xml

需要先在Hadoop安装目录下新建两个文件夹namenodedatanode,用来做名字节点和数据节点的数据存储,根据自己的所在路径去设置

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:///E:/hadoop/hadoop-3.2.0/namenode</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:///E:/hadoop/hadoop-3.2.0/datanode</value>  
    </property>

修改后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>1</value>
    </property>
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:///E:/hadoop/hadoop-3.2.0/namenode</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:///E:/hadoop/hadoop-3.2.0/datanode</value>  
    </property>
</configuration>
4.3.设置mr使用的框架为yarn,主要修改mapred-site.xml
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

修改后mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
4.4.设置yarn使用mr混洗,主要修改yarn-site.xml
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

修改后yarn-site.xml

<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

5.启动Hadoop服务

5.1.格式化 HDFS,在cmd中执行hdfs namenode -format
前提:在windows中启动需要在bin目录中加入hadoop.dllwinutils.exe

否则会报异常

java.io.FileNotFoundException: Could not locate Hadoop executable: 
E:\hadoop\hadoop-3.2.0\bin\winutils.exe 
-see https://wiki.apache.org/hadoop/WindowsProblems

获取hadoop.dllwinutils.exe

Hadoop2.6.0到Hadoop3.0.0版本(如更新了新版本可以使用):
官方推荐:https://github.com/steveloughran/winutils
版本最好对应起来,更新到3.0.0版本,在上面直接下载即可,下载完后引入到bin目录

image.png

注:由于用的是Hadoop3.2.0版本

需要在https://github.com/s911415/apache-hadoop-3.1.0-winutils上获取

格式化成功如下
image.png
格式化之后,namenode里会自动生成一个current文件夹,则格式化成功
image.png
5.2.在sbin中执行start-all.cmd,可以用命令或者直接双击
同时启动了如下4个服务:

Hadoop Namenode
Hadoop datanode
YARN Resourc Manager
YARN Node Manager

image.png

可能存在的问题

5.2.1.其中Hadoop NamenodeYARN Resourc Manager启动会报异常
java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/server/timelineservice/collector/TimelineCollectorManager
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.yarn.server.timelineservice.collector.TimelineCollectorManager

原因:缺少timelineservice.jar
解决方法:
share\hadoop\yarn\timelineservice\hadoop-yarn-server-timelineservice-3.2.0.jar复制到share\hadoop\yarn\lib文件夹

5.2.2.hadoop.dll引入错误,或者版本不对应,Hadoop datanodeYARN Node Manager启动会报异常

java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat(Ljava/lang/String;I)Z
org.apache.hadoop.util.DiskChecker$DiskErrorException: 
Too many failed volumes - current valid volumes: 0, volumes configured: 1, volumes failed: 1, volume failures tolerated: 0

报的异常是getStat出了问题,也就是说SHELL.WINDOWSfalse了,应该是hadoop.dll的问题
解决方法:更换成对应版本的hadoop.dll

6.1通过YRAN网站查看Hadoop查看所有节点状态。默认地址为:http://localhost:8088/

image.png

6.2文件管理页面默认地址为:http://localhost:9870/

在3.0.0之前的版本中文件管理的端口是50070,在3.0.0中替换成9870端口

image.png

这里需要注意的是操作权限问题

权限不足会提示Permission denied: user=dr.who, access=WRITE, inode="/":sportsbenpeng:supergroup:drwxr-xr-x

可以在hdfs-site.xml中过滤权限验证
<property> 
    <name>dfs.permissions</name> 
    <value>false</value> 
</property>

需要深入了解Hadoop3.2.0

可以参考官方文档:https://hadoop.apache.org/docs/r3.2.0/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容