hadoop 订阅
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 [1]  。 展开全文
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 [1]  。
信息
核心设计
HDFS和MapReduce
外文名
Hadoop
类    别
电脑程序
中文名
海杜普
学    科
信息科学
全    称
Hadoop Distributed File System
Hadoop起源
Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一 [2]  。2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法 [2]  。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,hadoop已成为Apache的顶级项目,包含众多子项目,被应用到包括Yahoo在内的很多互联网公司 [2]  。
收起全文
精华内容
下载资源
问答
  • hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载

    热门讨论 2018-05-17 15:42:49
    hadoop-2.7.3.tar.gz 下载 目前相对比较稳定的版本 hadoop tar 包下载hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载
  • Hadoop

    千次阅读 多人点赞 2018-09-17 23:47:00
    HADOOP介绍 1、 什么是HADOOP (1)HADOOP是apache旗下的一套开源软件平台 (2)HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 (3)HADOOP的核心组件有:  HDFS...

    HADOOP介绍

    1、 什么是HADOOP

    (1)HADOOP是apache旗下的一套开源软件平台

    (2)HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理

    (3)HADOOP的核心组件有:

    •  HDFS(分布式文件系统)
    • YARN(运算资源调度系统)
    • MAPREDUCE(分布式运算编程框架)

    (4)广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈

    2、 HADOOP产生背景

    (1)HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

    (2)2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案

    ——分布式文件系统(GFS),可用于处理海量网页的存储

    ——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。

    (3)Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

    3、 HADOOP在大数据、云计算中的位置和关系

    1. 云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。
    2. 现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术
    3. 而HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。

    4 、HADOOP应用案例

    1、HADOOP应用于数据服务基础平台建设

    2、HADOOP用于用户画像

    3、HADOOP用于网站点击流日志数据挖掘

    金融行业: 个人征信分析

    证券行业: 投资模型分析

    交通行业: 车辆、路况监控分析

    电信行业:用户上网行为分析

    ......

    总之:hadoop并不会跟某种具体的行业或者某个具体的业务挂钩,它只是一种用来做海量数据分析处理的工具

    展开全文
  • hadoop2.7.3 在windows下需要的hadoop.dll winutils.exe等文件 拷贝到bin目录下覆盖
  • hadoop-2.7.0.tar.gz( 64位)

    热门讨论 2015-05-28 11:18:03
    因为官网下载下来的Hadoop安装包是x86,32位的,64位需要自己编译。 现提供64位hadoop-2.7.0.tar.gz Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发...
  • Hadoop.The.Definitive.Guide.4th.Edition.1491901632

    千次下载 热门讨论 2015-04-02 18:28:39
    Title: Hadoop: The Definitive Guide, 4th Edition Author: Tom White Length: 768 pages Edition: 4 Language: English Publisher: O'Reilly Media Publication Date: 2015-04-10 ISBN-10: 1491901632 ISBN-13: ...
  • hadoop-windows下配置文件

    热门讨论 2016-12-09 11:50:26
    hadoop-windows下配置文件,用于在windows环境下安装hadoop使用,直接可以使用,省去自己编译的麻烦,支持当前最新的2.7.3版本。
  • hadoop-2.6.0编译好的64bit的native库

    千次下载 热门讨论 2015-03-23 10:45:10
    在64位系统上运行Hadoop 2.6.0会出现以下提示: 用缺省的32位native库(/opt/hadoop-2.6.0/lib/native)会出现下面的错误: 14/01/27 10:52:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for ...
  • hadoop-eclipse-plugin-2.6.0.jar程序文件

    千次下载 热门讨论 2014-12-20 17:39:40
    It takes me two days to find the root cause for the exceptions and finally generate this jar file for hadoop 2.6.0. 1.use hadoop 2.6.0. 2.change the hadoop_home and path to point to hadoop 2.6.0 3....
  • windows64位平台的hadoop2.6插件包(hadoop.dll,winutils.exe)

    千次下载 热门讨论 2015-01-24 21:05:59
    在windows8 64位系统安装时自己编译的,基于hadoop2.6的源码,版本低的请慎用。 包含 hadoop.dll hadoop.pdb hadoop.lib hadoop.exp winutils.exe winutils.pdb libwinutils.lib 测试可用。
  • hadoop-eclipse-plugin-2.7.3.jar

    千次下载 热门讨论 2016-10-30 18:21:18
    Tested with Eclipse Java EE IDE for Web Developers. Version: Neon.1a Release (4.6.1) Build id: 20161007-1200
  • hadoop-eclipse-plugin-2.7.2.jar

    千次下载 热门讨论 2016-02-15 21:43:32
    Tested with following eclipse version for hadoop2.7.2(http://pan.baidu.com/s/1i4plIfF): Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1) Build id: 20150924-1200
  • 花了N久时间在win10_x64下编译的hadoop2.7.1版本的hadoop.dll和winutils.exe,ECLIPSE下集成开发使用,供大家下载。
  • ubuntu安装hadoop详细步骤

    万次阅读 2017-03-11 14:29:39
    ubuntu下安装hadoop详细步骤

    Hadoop官方网站对其安装配置hadoop的步骤太粗略,在这篇博客中,我会详细介绍在ubuntu中如何安装hadoop,并处理可能出现的一些问题。这里介绍的方法是用一台机器虚拟多个节点,这个方法已在如下环境中测试通过:
    OS: Ubuntu 13.10
    Hadoop: 2.2.0 (2.x.x)
    个人认为在其他版本上安装Hadoop 2.x.x的方法基本相同,因此如果严格按照我给的步骤,应该不会有问题。

    前提

    安装 jdk 和 openssh
    $ sudo apt-get install openjdk-7-jdk
    $ java -version
    java version "1.7.0_55"
    OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1)
    OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
    $ sudo apt-get install openssh-server
    openjdk的默认路径是 /usr/lib/jvm/java-7-openjdk-amd64. 如果你的默认路径和我的不同,请再后面的操作中替换此路径。

    添加Hadoop用户组和用户

    $ sudo addgroup hadoop
    $ sudo adduser --ingroup hadoop hduser
    $ sudo adduser hduser sudo
    然后切换到hduser账户

    配置SSH

    现在你在hduser账户中。 请注意下面命令中 '' 是两个单引号 ‘
    $ ssh-keygen -t rsa -P ''
    将public key加入到authorized_keys中,这样hadoop在运行ssh时就不需要输入密码了
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    现在我们测试一下ssh
    $ ssh localhost
    如果你被询问是否确认连接,输入yes。如果你发现在即不需要输密码,cool -- 至少到目前位置你是正确的。否则,请debug。
    $ exit

    下载Hadoop 2.2.0 (2.x.x)

    $ cd ~
    $ wget http://www.trieuvan.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
    $ sudo tar -xzvf hadoop-2.2.0.tar.gz -C /usr/local
    $ cd /usr/local
    $ sudo mv hadoop-2.2.0 hadoop
    $ sudo chown -R hduser:hadoop hadoop

    配置Hadoop环境

    $ cd ~
    $ vim .bashrc

    将下面的内容复制到.bashrc中
    #Hadoop variables
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    export HADOOP_INSTALL=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_INSTALL/bin
    export PATH=$PATH:$HADOOP_INSTALL/sbin
    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    export YARN_HOME=$HADOOP_INSTALL
    ###end of paste

    退出.bashrc
    $ cd /usr/local/hadoop/etc/hadoop
    $ vim hadoop-env.sh

    将下面的三行加入到hadoop-env.sh中,删除原来的 "export JAVA_HOME"那行
    # begin of paste
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
    export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"
    export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/"
    ### end of paste

    退出terminal再重新打开

    配置Hadoop

    $ cd /usr/local/hadoop/etc/hadoop
    $ vim core-site.xml
    将下面的内容复制到 <configuration> 标签内
    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <property>  
    2.    <name>fs.default.name</name>  
    3.    <value>hdfs://localhost:9000</value>  
    4. </property>  
    $ vim yarn-site.xml
    将下面的内容复制到 <configuration> 标签内
    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <property>  
    2.    <name>yarn.nodemanager.aux-services</name>  
    3.    <value>mapreduce_shuffle</value>  
    4. </property>  
    5. <property>  
    6.    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
    7.    <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
    8. </property>  
    $ mv mapred-site.xml.template mapred-site.xml
    $ vim mapred-site.xml
    将下面的内容复制到 <configuration> 标签内
    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <property>  
    2.    <name>mapreduce.framework.name</name>  
    3.    <value>yarn</value>  
    4. </property>  
    $ mkdir -p ~/mydata/hdfs/namenode
    $ mkdir -p ~/mydata/hdfs/datanode
    $ vim hdfs-site.xml
    将下面的内容复制到 <configuration> 标签内
    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <property>  
    2.    <name>dfs.replication</name>  
    3.    <value>1</value>  
    4.  </property>  
    5.  <property>  
    6.    <name>dfs.namenode.name.dir</name>  
    7.    <value>file:/home/hduser/mydata/hdfs/namenode</value>  
    8.  </property>  
    9.  <property>  
    10.    <name>dfs.datanode.data.dir</name>  
    11.    <value>file:/home/hduser/mydata/hdfs/datanode</value>  
    12.  </property>  

    格式化 namenode

    第一次启动hadoop服务之前,必须执行格式化namenode
    $ hdfs namenode -format

    启动服务

    $ start-dfs.sh && start-yarn.sh
    使用jps查看服务
    $ jps
    如果一切顺利,你会看到:
    17785 SecondaryNameNode
    17436 NameNode
    17591 DataNode
    18096 NodeManager
    17952 ResourceManager
    23635 Jps

    当执行start-dfs.sh的时候,你可能会看到
      WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable ,不用担心,其实可以正常使用,我们会在trouble shooting那一节谈到这个问题。 

    测试并运行示例

    $ cd /usr/local/hadoop
    $ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar TestDFSIO -write -nrFiles 20 -fileSize 10
    $ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar TestDFSIO -clean
    $ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 2 5

    网页界面

    Cluster status: http://localhost:8088
    HDFS status: http://localhost:50070
    Secondary NameNode status: http://localhost:50090

    Trouble-shooting

    1. Unable to load native-hadoop library for your platform.

    这是一个警告,基本不会影响hadoop的使用,但是在之后我们还是给予解决这个warning的方法。通常来讲,出现这个warning的原因是你在64位的系统上,但是hadoop的package是为32位的机器编译的。在这种情况下,确认你不要忘记在hadoop-env.sh中加入这几行:
    export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"
    export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/"
    否则你的hadoop不能正常工作。如果你用的系统和hadoop的package相符(32位),这两行是不必要的。

    我们不希望有warning,如何解决?方法是自己重新编译源代码。重新编译其实很简单:
    安装 maven
    $ sudo apt-get install maven

    安装 protobuf-2.5.0 or later
    $ curl -# -O https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
    $ tar -xzvf protobuf-2.5.0.tar.gz
    $ cd protobuf-2.5.0
    $ ./configure --prefix=/usr
    $ make
    $ sudo make install
    $ cd ..

    现在并编译hadoop源代码,注意编译之前需要先给源代码打个补丁
    $ wget http://www.eu.apache.org/dist/hadoop/common/stable/hadoop-2.2.0-src.tar.gz
    $ tar -xzvf hadoop-2.2.0-src.tar.gz
    $ cd hadoop-2.2.0-src
    $ wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch
    $ patch -p0 < HADOOP-10110.patch
    $ mvn package -Pdist,native -DskipTests -Dtar

    现在到 hadoop-dist/target/ 目录下, 你会看到 hadoop-2.2.0.tar.gz or hadoop-2.2.0, 他们就是编译后的hadoop包。 你可以使用自己编译的包,同样按照之前的步骤安装64位的hadoop。如果你已经安装了32位的hadoop,只需要替换 /usr/local/hadoop/lib/native 目录,然后将如下两行从hadoop-env.sh中移除即可:
    export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"
    export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/"

    2. datanode 不能被启动

    一个常用的方法是先删掉datanode对应的文件夹试试,注意这样做可能会丢失你的数据。另一种方法是到 /usr/local/hadoop/logs/hadoop-hduser-datanode-*.log 中检查原因并对症下药。

    转自:http://blog.csdn.net/feixia586/article/details/24950111
    展开全文
  • hadoop 2.6.0 64位安装包

    千次下载 热门讨论 2014-12-23 13:37:52
    最新版hadoop 64位安装包 centos 6.4 64位机器上编译 由于超过100MB,所以给的网盘链接地址
  • Hadoop源码分析(完整版)

    热门讨论 2015-06-06 18:53:50
    Hadoop源码分析(完整版),详细分析了Hadoop源码程序,为学习Hadoop的人提供很好的入门指导
  • hadoop 2.4.1 64位安装包

    千次下载 热门讨论 2014-08-01 14:43:40
    最新版hadoop 64位安装包 centos 6.4 64位机器上编译 由于超过100MB,所以给的网盘链接地址 之前2.4的安装包地址错误,在这里一并补上
  • Mac安装Hadoop

    万次阅读 多人点赞 2019-03-05 16:56:48
    JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME value > property > configuration > 六: 参考文章 Mac OS ...

    一:简介

    Hadoop是一个用Java开发的开源框架,它允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。特别适合写一次,读多次的场景。

    Hadoop一般用于对大量数据执行完整统计分析的应用程序。

    Hadoop架构图:
    在这里插入图片描述

    • HDFS:分布式文件系统 Hadoop Distributed File System
    • YARN:分布式资源管理和作业调度
    • MapReduce:分布式计算

    Hadoop的搭建有三种方式,本文章安装的是单机版

    • 单机版:适合开发调试。
    • 伪分布式版:适合模拟集群学习。
    • 完全分布式:生产使用的模式。

    二:安装步骤

    1. 修改主机名

    sudo scutil --set HostName localhost
    

    2. ssh免密登录

    具体配置方法:

    (1)ssh-keygen -t rsa      (一路回车直到完成)
    (2)cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    (3)chmod og-wx ~/.ssh/authorized_keys
    

    然后重启终端,在命令行下输入>ssh localhost 如果不需要输密码即可进入,证明设置成功。如果仍需要输入密码,那可能是文件权限的问题,尝试执行 chmod 755 ~/.ssh

    3. 安装hadoop

    这里安装的是目前最新版本3.1.1

    brew install hadoop
    

    4. 修改配置文件 libexec/etc/hadoop/core-site.xml

    在修改配置文件时注意不要有中文字符,如中文空格之类的

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
    	<property>
         <name>hadoop.tmp.dir</name>
         <value>file:/usr/local/Cellar/hadoop/3.1.1/libexec/tmp</value>
      </property>
      <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:8020</value>
      </property>
    </configuration>
    

    5. 修改配置文件 libexec/etc/hadoop/hdfs-site.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
    	<property>
    		<name>dfs.permissions.enabled</name>
    		<value>false</value>
    	</property>
    	<property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property> 
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/local/Cellar/hadoop/3.1.1/libexec/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.namenode.data.dir</name>
             <value>file:/usr/local/Cellar/hadoop/3.1.1/libexec/tmp/dfs/data</value>
        </property>
    </configuration>
    

    6. 配置hadoop的环境变量

    vi ~/.bash_profile

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
    
    export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec
    export HADOOP_ROOT_LOGGER=DEBUG,console
    export PATH=$PATH:${HADOOP_HOME}/bin
    

    source ~/.bash_profile

    7. 拷贝lib/native库 libexec目录

    注意:在mac环境中,通过brew install hadoop安装时在/usr/local/Cellar/hadoop/3.1.1/libexec目录下是没有/lib/native目录的,如果没有这目录在启动hadoop时会有警告的日志 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。
    解决办法有两种:

    1. 下载hadoop的源码自己通过maven编译出lib/native。自己编码麻烦,耗时长,不一定能编译成功。
    2. 在网上找一些别人编译好的,直接放到hadoop中即可。下载lib/native然后放到/usr/local/Cellar/hadoop/3.1.1/libexec目录下,然后再重启。

    下载lib/native

    修改/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop/hadoop-env.sh

    # 配置Hadoop使用的JDK版本,注意不要使用jdk1.9, 高版本会有问题
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
    
     # 增加导出
    export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native" 
    

    相关文章:mac下编译hadoop3.0.*版本的native lib

    在这里插入图片描述

    8. 格式化HDFS

    注意:格式化一次就可以了

    cd /usr/local/Cellar/hadoop/3.1.1/bin
    ./hdfs namenode -format
    

    9. 启动Hadoop

    cd /usr/local/Cellar/hadoop/3.1.1/sbin
    # 使用start-dfs.sh或者start-all.sh来启动hadoop
    # 停止 sbin/stop-dfs.sh 或者 sbin/stop-all.sh
    ./start-dfs.sh
    

    10. 查看Hadoop是否启动成功

     # 查看启动的服务,如果有下面的服务则启动hadoop成功
    jps
    
    DataNode
    NameNode  
    SecondaryNameNode 
    

    在这里插入图片描述

    NameNode: http://localhost:9870/
    在这里插入图片描述

    三:启动yarn

    1. 修改配置文件 libexec/etc/hadoop/mapred-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    </configuration>
    

    2. 修改配置文件 libexec/etc/hadoop/yarn-site.xml

    <?xml version="1.0"?>
    <configuration>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    	<property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    

    3. 启动yarn

    # 启动ResourceManager 和 NodeManager,启动成功后可以访问http://localhost:8088/cluster
    # 停止 sbin/stop-yarn.sh
    # 可以通过start-all.sh 来同时启动start-dfs.sh和start-yarn.sh
    sbin/start-yarn.sh
    

    http://localhost:8088/
    在这里插入图片描述

    四:运行Hadoop自带的MapReduce程序(wordcount)

    wordcount: 用于统计每个单词出现的次数

    # 在HDFS中创建层级目录
    bin/hadoop fs -mkdir -p /wordcount/input
    
    # 将hadoop中的LICENSE.txt文件上传到层级目录中
    bin/hdfs dfs -put README.txt /wordcount/input
    
    # 查看某个层级目录下面的内容
    bin/hdfs dfs -ls /wordcount/input
    
    # 运行hadoop自带的示例程序hadoop-mapreduce-examples-3.1.1.jar 该jar中有多个示例,wordcount是其中一个示例,用于统计每个单词出现的次数,
    # /wordcount/input/LICENSE.txt 表示要统计的文件
    # /wordcount/output 存放统计结果存放的目录,注意/wordcount/output目录不能存在
    bin/hadoop jar /usr/local/Cellar/hadoop/3.1.1/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount /wordcount/input/README.txt /wordcount/output
    
    # 查看目录内容,运行完wordcount程序,输出目录下会有一个文件叫part-r-00000,这个就是统计的结果
    bin/hdfs dfs -ls /wordcount/output 
    
    # 查看统计结果
    bin/hadoop fs -cat /wordcount/output/part-r-00000 
    
    # 将hdfs指定的目录内容拉到自己机器上
    bin/hadoop fs -get /wordcount/output /Users/mengday/Desktop/wordcount
    

    在这里插入图片描述
    在这里插入图片描述
    统计结果part-r-00000

    在这里插入图片描述
    http://localhost:9870/ Utilities -> Browse the file system
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    五:hadoop 安装启动问题

    1. There are 0 datanode(s) running and no node(s) are excluded in this operation.

    有的时候在启动hadoop的时候使用jps查看如果没有启动datanode

    原因

    当我们使用hadoop namenode -format格式化namenode时,会在namenode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径)中保存一个current/VERSION文件,记录clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,这样,datanode和namenode之间的ID不一致。

    解决方法

    • 第一种:如果dfs文件夹中没有重要的数据,那么删除dfs文件夹(dfs目录在core-site.xml中hadoop.tmp.dir配置),再重新格式化和启动hadoop即可。此种方式会将数据清空!

      hadoop namenode -format
      sbin/start-dfs.sh
      
    • 第二种:如果dfs文件中有重要的数据,那么在dfs/name目录下找到一个current/VERSION文件,记录clusterID并复制。然后dfs/data目录下找到一个current/VERSION文件,将其中clustreID的值替换成刚刚复制的clusterID的值即可;

    2. mkdir: Cannot create directory /user. Name node is in safe mode. 可通过执行下面命令执行。

    # 离开安全模式
    bin/hadoop dfsadmin -safemode leave
    

    3. 运行wordcount示例程序一直循环打印日志updateStatus

    ipc.Client: IPC Client (389993238) connection to /0.0.0.0:8032 from mengday got value #80
    ipc.ProtobufRpcEngine: Call: getApplicationReport took 1ms
    security.UserGroupInformation: PrivilegedAction as:mengday (auth:SIMPLE) from:org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:328)
    

    mapred-site.xml去掉mapreduce.framework.name配置,并重启hadoop: sbin/stop-all.sh 和 sbin/start-all.sh。

    <configuration>
      <!-- 
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
      -->
      <property>
        <name>mapreduce.job.tracker</name>
        <value>hdfs://127.0.0.1:8001</value>
        <final>true</final>
      </property>
      <property>
        <name>mapreduce.map.memory.mb</name>
        <value>200</value>
      </property>
      <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>200</value>
      </property>
    </configuration>
    

    yarn-site.xml 中增加yarn.resourcemanager.address、yarn.app.mapreduce.am.resource.mb、yarn.scheduler.minimum-allocation-mb配置

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>127.0.0.1:8032</value>
      </property>
      <property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>200</value>
      </property>
      <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>50</value>
      </property>
    	<property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    

    六: 参考文章

    展开全文
  • hadoop 2.5.1 64位安装包

    热门讨论 2014-09-16 13:35:25
    最新版hadoop 64位安装包 centos 6.4 64位机器上编译 由于超过100MB,所以给的网盘链接地址
  • Hadoop入门和大数据应用

    万人学习 2015-09-01 17:01:44
    Hadoop入门和大数据应用视频教程,该课程主要分享Hadoop基础及大数据方面的基础知识。 讲师介绍:翟周伟,就职于百度,Hadoop技术讲师,专注于Hadoop&大数据、数据挖掘、自然语言处理等领域。2009年便开始利用...
  • 一、 服务器规划 ...搭建Hadoop集群环境之前,需要为搭建Hadoop集群环境做一些相关的准备工作,以达到正确安装Hadoop集群的目的。 1.添加hadoop用户身份 以root身份登录每台虚拟机服务器,在每台服务器...

    转载请注明出处:https://blog.csdn.net/l1028386804/article/details/93892479

    一、  服务器规划

    二、Hadoop集群环境的准备

    搭建Hadoop集群环境之前,需要为搭建Hadoop集群环境做一些相关的准备工作,以达到正确安装Hadoop集群的目的。

    1.添加hadoop用户身份

    以root身份登录每台虚拟机服务器,在每台服务器上执行如下操作。

    groupadd hadoop
    useradd -r -g hadoop hadoop
    passwd hadoop
    Changing password for user hadoop.
    New password: 新密码
    Retype new password: 确认新密码
    passwd: all authentication tokens updated successfully.
    chown -R hadoop.hadoop /usr/local/
    chown -R hadoop.hadoop /tmp/
    chown -R hadoop.hadoop /home/
    vim /etc/sudoers
    找到
    root    ALL=(ALL)       ALL
    下面添加
    hadoop    ALL=(ALL)       ALL

    2.关闭防火墙

    以root身份登录虚拟机服务器,在每台服务器上执行如下命令:

    #查看防火墙状态
    service iptables status
    #关闭防火墙
    service iptables stop
    #关闭防火墙开机启动
    chkconfig iptables off
    #查看防火墙状态
    service iptables status

    3.设置静态IP

    为每台服务器设置静态IP,这里以服务器binghe201(192.168.175.201)为例,修改配置文件“/etc/sysconfig/network-scripts/ifcfg-eth0”文件,如下:

    DEVICE=eth0
    TYPE=Ethernet
    UUID=11e3b288-72da-4cc6-898d-ee2bf0b44d77
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=static
    IPADDR=192.168.175.201
    NETMASK=255.255.255.0
    BROADCAST=192.168.175.255
    GATEWAY=192.168.175.2
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="System eth0"
    HWADDR=00:0C:29:7F:45:21
    PEERDNS=yes
    PEERROUTES=yes
    LAST_CONNECT=1561336045

    下面,分别列出每台服务器上“/etc/sysconfig/network-scripts/ifcfg-eth0”文件修改过的部分。

    • binghe202(192.168.175.202)
    BOOTPROTO=static
    IPADDR=192.168.175.202
    NETMASK=255.255.255.0
    BROADCAST=192.168.175.255
    GATEWAY=192.168.175.2
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    • binghe203(192.168.175.203)
    BOOTPROTO=static
    IPADDR=192.168.175.203
    NETMASK=255.255.255.0
    BROADCAST=192.168.175.255
    GATEWAY=192.168.175.2
    DNS1=114.114.114.114
    DNS2=8.8.8.8

    设置完静态IP之后,在每台服务器上执行如下命令重启网络。

    service network restart

    4.设置主机名

    设置主机名需要在文件“/etc/sysconfig/network”中进行配置。如果需要修改当前会话的主机名需要使用命令“hostname 主机名”的方式进行设置。

    下面,分别列出每台服务器上“/etc/sysconfig/network”文件的配置和执行的命令。

    • binghe201(192.168.175.201)
    hostname binghe201
    vim /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=binghe201
    • binghe202(192.168.175.202)
    hostname binghe202
    vim /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=binghe202
    • binghe203(192.168.175.203)
    hostname binghe203
    vim /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=binghe203

    5.设置主机名与IP地址的映射关系

    在每台服务器上修改“/etc/hosts”文件,添加如下配置:

    192.168.175.201   binghe201
    192.168.175.202   binghe202
    192.168.175.203   binghe203

    6.集群环境下配置SSH免密码登录

    注意:配置SSH免密码登录,使用hadoop身份登录虚拟机服务器,进行相关的操作。

    (1)生成SSH免密码登录公钥和私钥

    在每台虚拟机服务器上执行如下命令,在每台服务器上分别生成SSH免密码登录的公钥和私钥。

    ssh-keygen -t rsa
    cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

    (2)设置目录和文件权限

    在每台虚拟机服务器上执行如下命令,设置相应目录和文件的权限。

    chmod 700 /home/hadoop/ 
    chmod 700 /home/hadoop/.ssh 
    chmod 644 /home/hadoop/.ssh/authorized_keys 
    chmod 600 /home/hadoop/.ssh/id_rsa

    (3)将公钥拷贝到每台服务器

    在每台虚拟机服务器上执行如下命令,将生成的公钥拷贝到每台虚拟机服务器上。

    ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub  binghe201
    ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub  binghe202
    ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub  binghe203

    执行完上面的命令之后,每台服务器之间都可以通过“ssh 服务器主机名”进行免密码登录了。

    注意:执行每条命令的时候,都会提示类似如下信息。

    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'binghe101,192.168.175.101' (RSA) to the list of known hosts.
    hadoop@binghe101's password:

    在“是否确认继续连接”的地方输入“yes”,提示输入密码的地方输入相应服务器的登录密码即可,后续使用“ssh 主机名”登录相应服务器就不用再输入密码了。

    三、集群环境下的JDK安装

    (1)安装JDK并配置系统环境便令

    在每台服务器上执行安装JDK的操作,同样是将JDK安装在CentOS虚拟机的“/usr/local”目录下,即JAVA_HOME安装目录为“/usr/local/jdk1.8.0_212”。在文件“/etc/profile”中配置的系统环境变量如下:

    JAVA_HOME=/usr/local/jdk1.8.0_212
    CLASS_PATH=.:$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME CLASS_PATH PATH

    (2)使系统环境变量生效

    在每台服务器上执行如下命令使JDK系统环境变量生效。

    source /etc/profile

    (3)验证JDK是否安装配置

    具体验证方式如下:

    -bash-4.1$ java -version
    java version "1.8.0_212"
    Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
    Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

    可以看到输出了Java版本,说明JDK安装配置成功。

    四、搭建并配置Zookeeper集群

    安装配置完JDK后,就需要搭建Zookeeper集群了,根据对服务器的规划,现将Zookeeper集群搭建在“binghe201”、“binghe202”、“binghe203”三台服务器上。

    注意:步骤1-4是在“binghe201”服务器上进行的操作。

    1.下载Zookeeper

    在“binghe201”上执行如下命令下载Zookeeper。

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

    2.安装并配置Zookeeper系统环境变量

    这里,将Zookeeper安装在虚拟机的“/usr/local”目录下,即ZOOKEEPER_HOME安装目录为“/usr/local/zookeeper-3.5.5”。

    结合配置JDK后,文件“/etc/profile”文件中添加的内容如下:

    JAVA_HOME=/usr/local/jdk1.8.0_212
    ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5
    CLASS_PATH=.:$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
    export JAVA_HOME ZOOKEEPER_HOME CLASS_PATH PATH

    3.配置Zookeeper

    首先,需要将“$ZOOKEEPER_HOME/conf”(“$ZOOKEEPER_HOME”为Zookeeper的安装目录)目录下的zoo_sample.cfg文件修改为zoo.cfg文件。具体命令如下:

    cd /usr/local/zookeeper-3.5.5/conf/
    mv zoo_sample.cfg zoo.cfg

    接下来修改zoo.cfg文件,修改后的具体内容如下:

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/usr/local/zookeeper-3.5.5/data
    dataLogDir=/usr/local/zookeeper-3.5.5/dataLog
    clientPort=2181
    server.1=binghe201:2888:3888
    server.2=binghe202:2888:3888
    server.3=binghe203:2888:3888

    在Zookeeper的安装目录下创建“data”和“dataLog”两个文件夹。

    mkdir -p /usr/local/zookeeper-3.5.5/data
    mkdir -p /usr/local/zookeeper-3.5.5/dataLog

    切换到新建的data目录下,创建myid文件,具体内容为数字“1”,如下所示:

    echo "1" >> /usr/local/zookeeper-3.5.5/data/myid

    将数字“1”写入到文件myid。

    4.复制Zookeeper和系统环境变量到其他服务器

    将“binghe201”上安装的Zookeeper和系统环境变量文件拷贝到“binghe202”和“binghe203”服务器,具体操作如下:

    scp -r /usr/local/zookeeper-3.5.5/ binghe202:/usr/local/
    scp -r /usr/local/zookeeper-3.5.5/ binghe203:/usr/local/
    sudo scp /etc/profile binghe202:/etc
    sudo scp /etc/profile binghe203:/etc

    注意:拷贝系统环境变量文件“/et/profile”文件的时候,如果提示要求输入密码,根据相应的提示输入密码即可。

    5.修改myid文件内容

    • 将“binghe202”服务器上Zookeeper的myid文件内容修改为数字2。

    在“binghe202”上执行如下命令:

    -bash-4.1$ echo "2" > /usr/local/zookeeper-3.5.5/data/myid
    -bash-4.1$ cat /usr/local/zookeeper-3.5.5/data/myid
    2

    可以看到Zookeeper文件的内容被成功修改为数字2了。

    • 将“binghe203”服务器上Zookeeper的myid文件内容修改为数字3。

    在“binghe203”服务器上执行如下命令:

    -bash-4.1$ echo "3" > /usr/local/zookeeper-3.5.5/data/myid 
    -bash-4.1$ cat /usr/local/zookeeper-3.5.5/data/myid
    3

    可以看到Zookeeper文件的内容被成功修改为数字3了。

    6.使环境变量生效

    分别在“binghe201”、“binghe202”和“binghe203”上执行如下操作,使系统环境变量生效。

    source /etc/profile

    五、搭建并配置Hadoop集群

    注意:1-5步是在“binghe201”服务器上执行的操作。

    1.下载Hadoop

    在“binghe201”上执行如下命令下载Hadoop。

    wget mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz

    2.解压并配置系统环境变量

    (1)解压Hadoop

    输入如下命令对Hadoop进行解压。

    tar -zxvf hadoop-3.2.0.tar.gz

    (2)配置Hadoop系统环境变量

    同样,Hadoop的系统环境变量也需要在“/etc/profile”文件中进行相应的配置,通过如下命令打开“/etc/profile”文件并进行相关设置。

    sudo vim /etc/profile

    上述命令可能要求输入密码,根据提示输入密码即可。

    在“/etc/profile”文件中添加如下配置:

    HADOOP_HOME=/usr/local/hadoop-3.2.0
    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export HADOOP_HOME PATH
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

    结合之前配置的JDK和Zookeeper系统环境变量,整体配置信息如下:

    JAVA_HOME=/usr/local/jdk1.8.0_212
    ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5
    HADOOP_HOME=/usr/local/hadoop-3.2.0
    CLASS_PATH=.:$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export JAVA_HOME ZOOKEEPER_HOME HADOOP_HOME CLASS_PATH PATH
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

    (3)使系统环境变量生效

    source /etc/profile

    (4)验证Hadoop系统环境变量是否配置成功

    具体验证方式如下所示:

    hadoop version       
    Hadoop 3.2.0
    Source code repository https://github.com/apache/hadoop.git -r e97acb3bd8f3befd27418996fa5d4b50bf2e17bf
    Compiled by sunilg on 2019-01-08T06:08Z
    Compiled with protoc 2.5.0
    From source with checksum d3f0795ed0d9dc378e2c785d3668f39
    This command was run using /usr/local/hadoop-3.2.0/share/hadoop/common/hadoop-common-3.2.0.jar

    也就是在命令行输入“hadoop version”命令,可以看到输出了Hadoop的版本号“Hadoop 3.2.0”,说明Hadoop系统环境变量配置成功。

    3.修改Hadoop配置文件

    Hadoop集群环境的搭建流程基本和Zookeeper集群的搭建流程相同,除了要解压安装包和配置系统环境变量外,还需要对自身框架进行相关的配置。

    (1)配置hadoop-env.sh

    在hadoop-env.sh文件中,需要指定JAVA_HOME的安装目录,具体如下:

    cd /usr/local/hadoop-3.2.0/etc/hadoop/
    vim hadoop-env.sh
    export JAVA_HOME=/usr/local/jdk1.8.0_212

    (2)配置core-site.xml

    具体配置信息如下:

    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://ns/</value>
    	</property>
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/usr/local/hadoop-3.2.0/tmp</value>
    	</property>
    	<property>
    		<name>ha.zookeeper.quorum</name>
    		<value>binghe201:2181,binghe202:2181,binghe203:2181</value>
    	</property>
    </configuration>

    (3)配置hdfs-site.xml

    具体配置信息如下:

    <configuration>
    	<property>
    		<name>dfs.nameservices</name>
    		<value>ns</value>
    	</property>
    	<property>
    		<name>dfs.ha.namenodes.ns</name>
    		<value>nn1,nn2</value>
    	</property>
    	<property>
    		<name>dfs.namenode.rpc-address.ns.nn1</name>
    		<value>binghe201:9000</value>
    	</property>
    	<property>
    		<name>dfs.namenode.http-address.ns.nn1</name>
    		<value>binghe201:9870</value>
    	</property>
    	<property>
    		<name>dfs.namenode.rpc-address.ns.nn2</name>
    		<value>binghe202:9000</value>
    	</property>
    	<property>
    		<name>dfs.namenode.http-address.ns.nn2</name>
    		<value>binghe202:9870</value>
    	</property>
    	<property>
    		<name>dfs.namenode.shared.edits.dir</name>
    		<value>qjournal://binghe201:8485;binghe202:8485;binghe203:8485/ns</value>
    	</property>
    	<property>
    		<name>dfs.journalnode.edits.dir</name>
    		<value>/usr/local/hadoop-3.2.0/journaldata</value>
    	</property>
    	<property>
    		<name>dfs.ha.automatic-failover.enabled</name>
    		<value>true</value>
    	</property>
    	<property>
    		<name>dfs.client.failover.proxy.provider.ns</name>
    		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    	</property>
    	<property>
    		<name>dfs.ha.fencing.methods</name>
    		<value>
    			sshfence
    			shell(/bin/true)
    		</value>
    	</property>
    	<property>
    		<name>dfs.ha.fencing.ssh.private-key-files</name>
    		<value>/home/hadoop/.ssh/id_rsa</value>
    	</property>
    	<property>
    		<name>dfs.ha.fencing.ssh.connect-timeout</name>
    		<value>30000</value>
    	</property>
    </configuration>
    

    (4)配置mapred-site.xml

    具体配置信息如下:

    <configuration>
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    	<property>
    	  <name>yarn.app.mapreduce.am.env</name>
    	  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    	</property>
    	<property>
    	  <name>mapreduce.map.env</name>
    	  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    	</property>
    	<property>
    	  <name>mapreduce.reduce.env</name>
    	  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    	</property>
    </configuration>

    (5)配置yarn-site.xml

    具体配置信息如下:

    <configuration>
    	<property>    
    		<name>yarn.nodemanager.aux-services</name>    
    		<value>mapreduce_shuffle</value>    
        </property>  
        <property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>binghe203</value>
          </property>
    </configuration>

    (6)修改workers文件

    这个文件主要是用来存放DataNode节点用的。在Hadoop3.0之前的版本中,这个文件叫作“slaves”。

    具体配置信息如下:

    binghe201
    binghe202
    binghe203

    4.将配置好的Hadoop拷贝到其他节点

    将在“binghe101”上安装并配置好的Hadoop复制到其他服务器上,具体操作如下:

    scp -r /usr/local/hadoop-3.2.0/ binghe202:/usr/local/
    scp -r /usr/local/hadoop-3.2.0/ binghe203:/usr/local/

    5.将配置好的Hadoop系统环境变量拷贝到其他节点

    sudo scp /etc/profile binghe202:/etc/
    sudo scp /etc/profile binghe203:/etc/

    6.使系统环境变量生效

    在所有服务器上执行如下命令,使系统环境变量生效,并验证Hadoop系统环境变量是否配置成功。

    source /etc/profile
    hadoop version

    可以看到,输入“hadoop version”命令之后,命令行输出了如下信息:

    Hadoop 3.2.0
    Source code repository https://github.com/apache/hadoop.git -r e97acb3bd8f3befd27418996fa5d4b50bf2e17bf
    Compiled by sunilg on 2019-01-08T06:08Z
    Compiled with protoc 2.5.0
    From source with checksum d3f0795ed0d9dc378e2c785d3668f39
    This command was run using /usr/local/hadoop-3.2.0/share/hadoop/common/hadoop-common-3.2.0.jar

    说明,Hadoop系统环境变量配置成功。

    六、启动Zookeeper集群

    在三台服务器上分别执行如下命令启动Zookeeper进程。

    zkServer.sh start

    在每台服务器上查看是否存在Zookeeper进程。

    • “binghe201”服务器
    -bash-4.1$ jps
    1476 QuorumPeerMain
    1514 Jps
    • “binghe202”服务器
    -bash-4.1$ jps
    1507 Jps
    1462 QuorumPeerMain
    • “binghe203”服务器
    -bash-4.1$ jps
    1460 QuorumPeerMain
    1498 Jps

    可以看到每天服务器上都启动了Zookeeper进程。

    查看每台服务器上Zookeeper的运行模式,具体如下所示。

    • “binghe201”服务器
    -bash-4.1$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.5.5/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower
    • “binghe202”服务器
    -bash-4.1$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.5.5/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: leader
    • “binghe203”服务器
    -bash-4.1$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.5.5/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower

    可以看到,在“binghe202”服务器上运行的Zookeeper为“leader”,在“binghe201”和“binghe203”服务器上运行的Zookeeper为“follower”,说明:Zookeeper集群搭建并启动成功。

    七、启动Hadoop集群

    启动搭建的精简版的Hadoop集群,同样需要启动journalnode进程、格式化HDFS、格式化ZKFC、启动HDFS和启动YARN。具体操作步骤如下(注意:需要严格按照以下步骤启动Hadoop集群)。

    1.启动并验证journalnode进程

    (1)启动journalnode进程

    在“binghe201”服务器上执行如下命令启动journalnode进程。

    hdfs --workers --daemon start journalnode

    注意:在Hadoop 3.0以前是输入如下命令启动journalnode进程。

    hadoop-daemons.sh start journalnode

    (2)验证journalnode进程是否启动成功

    在三台服务器上分别执行“jps”命令查看是否存在journalnode进程,以此确认journalnode进程是否启动成功。

    • “binghe201”服务器
    -bash-4.1$ jps
    1476 QuorumPeerMain
    1669 Jps
    1640 JournalNode
    • “binghe202”服务器
    -bash-4.1$ jps
    1633 Jps
    1462 QuorumPeerMain
    1594 JournalNode
    • “binghe203”服务器
    -bash-4.1$ jps
    1585 JournalNode
    1460 QuorumPeerMain
    1624 Jps

    可以看到,三台服务器均启动了journalnode进程,说明journalnode进程启动成功。

    2.格式化HDFS

    在“binghe201”服务器上执行如下命令格式化HDFS。

    hdfs namenode -format

    格式化成功之后,会输出“common.Storage: Storage directory /usr/local/hadoop-3.2.0/tmp/dfs/name has been successfully formatted.”信息,并在HADOOP_HOME(/usr/local/hadoop-3.2.0/)目录下自动创建tmp目录。具体如图所示。

    3.格式化ZKFC

    在“binghe201”服务器上执行如下命令格式化ZKFC。

    hdfs zkfc -formatZK

    格式化成功之后,会输出“ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns in ZK.”信息。具体如图所示。

    4.启动NameNode并验证

    (1)启动NameNode

    在“binghe201”服务器上执行如下命令启动NameNode。

    hdfs --daemon start namenode

    注意:在Hadoop3.0以前的版本启动NameNode是输入如下的命令:

    hadoop-daemon.sh start namenode

    (2)验证NameNode是否启动成功

    在“binghe201”服务器上输入“jps”命令查看是否存在NameNode进程,以此确认NameNode是否启动成功,具体如下:

    -bash-4.1$ jps
    1892 Jps
    1476 QuorumPeerMain
    1640 JournalNode
    1852 NameNode

    从输出结果可以看出,存在“NameNode”进程,说明NameNode启动成功。

    5.同步元数据信息

    在“binghe202”服务器上执行如下命令进行元数据信息的同步操作。

    hdfs namenode -bootstrapStandby

    同步元数据信息的时候输出了“common.Storage: Storage directory /usr/local/hadoop-3.2.0/tmp/dfs/name has been successfully formatted.”信息,说明同步元数据信息成功。

    6.启动并验证备用NameNode

    (1)启动备用NameNode

    在“binghe202”服务器上执行如下命令启动备用NameNode。

    hdfs --daemon start namenode
    注意:在Hadoop3.0以前的版本启动NameNode是输入如下的命令:
    hadoop-daemon.sh start namenode

    (2)验证备用NameNode是否启动成功

    在“binghe202”服务器上输入“jps”命令查看是否存在NameNode进程,以此确认备用NameNode是否启动成功,具体如下:

    -bash-4.1$ jps
    1750 NameNode
    1462 QuorumPeerMain
    1816 Jps
    1594 JournalNode

    从输出结果可以看出,存在“NameNode”进程,说明备用NameNode启动成功。

    7.启动并验证DataNode

    (1)启动DataNode

    在“binghe201”服务器上执行如下命令启动DataNode。

    hdfs --workers --daemon start datanode
    注意:在Hadoop3.0以前的版本启动DataNode是输入如下的命令:
    hadoop-daemons.sh start datanode

    (2)验证DataNode是否启动成功

    在三台服务器分别输入“jps”命令,查看是否存在“DataNode”进程,以此确认DataNode是否启动成功。

    • “binghe201”服务器
    -bash-4.1$ jps
    2145 DataNode
    1476 QuorumPeerMain
    2231 Jps
    1640 JournalNode
    1852 NameNode
    • “binghe202”服务器
    -bash-4.1$ jps
    1750 NameNode
    1462 QuorumPeerMain
    1962 DataNode
    1594 JournalNode
    2063 Jps
    • “binghe203”服务器
    -bash-4.1$ jps
    1585 JournalNode
    1460 QuorumPeerMain
    1703 DataNode
    1771 Jps

    由输出结果可以看出,三台服务器中均启动了“DataNode”进程,说明DataNode启动成功。

    8.启动并验证YARN

    (1)启动YARN

    在“binghe203”服务器上执行如下命令启动YARN。

    start-yarn.sh

    (2)验证YARN是否启动成功

    在三台服务器上执行“jps”命令来验证YARN是否启动成功。

    • “binghe201”服务器
    -bash-4.1$ jps
    2464 Jps
    2145 DataNode
    1476 QuorumPeerMain
    1640 JournalNode
    2329 NodeManager
    1852 NameNode
    • “binghe202”服务器
    -bash-4.1$ jps
    2147 NodeManager
    1750 NameNode
    1462 QuorumPeerMain
    1962 DataNode
    1594 JournalNode
    2284 Jps
    • “binghe203”服务器
    -bash-4.1$ jps
    1585 JournalNode
    2354 Jps
    1460 QuorumPeerMain
    1989 NodeManager
    1703 DataNode
    1883 ResourceManager

    由输出结果可以看出“ResourceManager”进程存在于“binghe203”服务器上;“NodeManager”进程存在于“binghe201”、“binghe202”和“binghe203”服务器上。说明YARN启动成功。

    9.启动并验证ZKFC

    (1)启动ZKFC

    在“binghe201”服务器上执行如下命令启动ZKFC。

    hdfs --workers --daemon start zkfc
    注意:在Hadoop3.0以前的版本中,启动ZKFC需要使用如下命令:
    hadoop-daemons.sh start zkfc 

    (2)验证ZKFC是否启动成功

    在“binghe201”和“binghe202”服务器上分别执行“jps”命令,查看是否存在“DFSZKFailoverController”进程。

    • “binghe201”服务器
    -bash-4.1$ jps
    2145 DataNode
    1476 QuorumPeerMain
    1640 JournalNode
    2329 NodeManager
    1852 NameNode
    2734 Jps
    2670 DFSZKFailoverController
    • “binghe202”服务器
    -bash-4.1$ jps
    2147 NodeManager
    2484 Jps
    1750 NameNode
    1462 QuorumPeerMain
    2439 DFSZKFailoverController
    1962 DataNode
    1594 JournalNode

    由输出结果可以看出,两台服务器均启动了“DFSZKFailoverController”进程,说明ZKFC启动成功。

    八、启动Hadoop集群的另一种方式

    这种方式要比每次启动单个进程并进行验证方便的多,只需要进行如下操作:

    1.格式化HDFS

    在“binghe201”服务器上执行如下命令格式化HDFS。

    hdfs namenode -format

    2.复制元数据信息

    将“binghe201”服务器上的“/usr/local/hadoop-3.2.0/tmp/”目录复制到服务器“binghe202”服务上的“/usr/local/hadoop-3.2.0”目录下。

    在“binghe201”服务器上执行如下命令进行复制:

    scp -r /usr/local/hadoop-3.2.0/tmp/ binghe202:/usr/local/hadoop-3.2.0/

    3.格式化ZKFC

    在“binghe201”服务器上执行如下命令格式化ZKFC。

    hdfs zkfc -formatZK

    4.启动HDFS

    在“binghe201”服务器上执行启动HDFS的命令,具体如下所示:

    start-dfs.sh

    5.启动YARN

    在“binghe203”服务器上执行启动YARN的命令,具体如下所示:

    start-yarn.sh

    九、 测试Hadoop HA的高可用性

    使用浏览器方式验证和程序方式验证两种方式来验证Hadoop HA的高可用性。

    1.浏览器方式验证

    (1)浏览器访问NameNode

    • 访问“binghe201”服务器上的NameNode

    在浏览器中输入链接:http://192.168.175.201:9870 访问“binghe201”服务器上的NameNode

    此时,“binghe201”服务器上的NameNode处于“active”状态。

    • 访问“binghe202”服务器上的NameNode

    在浏览器中输入链接:http://192.168.175.202:9870 访问“binghe202”服务器上的NameNode

    此时,“binghe202”服务器上的NameNode处于“standby”状态。

    (2)停止“binghe201”上的NameNode后访问

    • 停止“binghe201”上的NameNode进程

    在“binghe201”服务器上执行如下命令停止NameNode进程。

    hdfs --daemon stop namenode
    注意:在Hadoop3.0之前的版本停止NameNode进程需要输入以下命令:
    hadoop-daemon.sh stop namenode
    • 浏览器访问“binghe201”服务器上的NameNode

    在浏览器中输入链接:http://192.168.175.201:9870 访问“binghe201”服务器上的NameNode

    可以看到,由于停止了“binghe201”服务器上的NameNode进程,导致此服务器上的NameNode已无法访问。

    • 浏览器访问“binghe202”服务器上的NameNode

    在浏览器中输入链接:http://192.168.175.202:9870 访问“binghe202”服务器上的NameNode

    可以看到,由于“binghe201”服务器上的NameNode无法访问,“binghe202”服务器上的NameNode自动切换为“active”状态。

    (3)重启“binghe201”上的NameNode访问

    首先,在“binghe201”服务器上执行如下命令启动NameNode进程。

    hdfs --daemon start namenode
    注意:在Hadoop3.0之前的版本启动NameNode进程需要输入以下命令:
    hadoop-daemon.sh stop namenode

    接下来访问“binghe201”服务器上的NameNode

    总结:正常启动NameNode进程后,“binghe201”服务器上的NameNode处于“active”状态,“binghe202”服务器上的NameNode处于“standby”状态;当停止“binghe201”服务器上的NameNode时,“binghe202”服务器上的NameNode自动切换为“active”状态,而重启“binghe201”服务器上的NameNode后,“binghe201”服务器上的NameNode此时会处于“standby”状态。说明:Hadoop HA搭建并配置成功了。

    2.程序方式验证

    以程序方式验证,还是运行Hadoop自带的wordcount程序,对文件中的单词进行计数,并输出统计结果。

    (1)准备数据文件

    在“binghe201”服务器上准备数据文件data.input,并写入测试的单词。具体如下:

    vim data.input
    hadoop mapreduce hive flume
    hbase spark storm flume 
    sqoop hadoop hive kafka
    spark hadoop storm

    (2)上传数据文件到HDFS

    首先,在HDFS上创建目录“/data /input”,具体命令如下:

    hadoop fs -mkdir -p /data/input

    在“binghe201”上执行如下命令将data.input文件上传到HDFS分布式文件系统中的“/data/hadoop/input”目录下,具体命令如下:

    hadoop fs -put data.input /data/input

    接下来查看文件data.input是否上传成功,具体命令如下:

    -bash-4.1$ hadoop fs -ls /data/input
    Found 1 items
    -rw-r--r--   3 hadoop supergroup         96 2019-06-27 17:04 /data/input/data.input

    可以看到,data.input文件已经成功上传到HDFS分布式文件系统的“/data/hadoop/input”目录下。

    (3)运行Hadoop MapReduce程序

    具体执行命令如下:

    hadoop jar /usr/local/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /data/input/data.input /data/output201

    注意:这里的输出目录是HDFS上的“/data/output201”目录。

    (4)查看执行结果

    首先,利用如下命令查看HDFS中是否产生了输出结果。

    -bash-4.1$ hadoop fs -ls /data/output201
    Found 2 items
    -rw-r--r--   3 hadoop supergroup          0 2019-06-27 17:16 /data/output201/_SUCCESS
    -rw-r--r--   3 hadoop supergroup         76 2019-06-27 17:16 /data/output201/part-r-00000

    可以看到在HDFS的“/data/output101”目录下产生了执行结果,接下来查看“part-r-00000”文件的内容,具体如下:

    -bash-4.1$ hadoop fs -cat /data/output201/part-r-00000
    flume   2
    hadoop  3
    hbase   1
    hive    2
    kafka   1
    mapreduce       1
    spark   2
    sqoop   1
    storm   2

    可以看到,正确地输出了每个单词和单词对应的数量。

    (5)停止“binghe201”服务器上的NameNode进程

    hdfs --daemon stop namenode
    注意:在Hadoop3.0之前的版本停止NameNode进程需要输入以下命令:
    hadoop-daemon.sh stop namenode

    (6)再次运行MapReduce程序

    hadoop jar /usr/local/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /data/input/data.input /data/output202

    注意:这里的输出目录是HDFS上的“/data/output202”目录。

    (7)再次查看执行结果

    首先,利用如下命令查看HDFS中是否产生了输出结果。

    -bash-4.1$ hadoop fs -ls /data/output202
    Found 2 items
    -rw-r--r--   3 hadoop supergroup          0 2019-06-27 17:20 /data/output202/_SUCCESS
    -rw-r--r--   3 hadoop supergroup         76 2019-06-27 17:20 /data/output202/part-r-00000

    可以看到在HDFS的“/data/output102”目录下产生了执行结果,接下来查看“part-r-00000”文件的内容,具体如下:

    -bash-4.1$ hadoop fs -cat /data/output202/part-r-00000
    flume   2
    hadoop  3
    hbase   1
    hive    2
    kafka   1
    mapreduce       1
    spark   2
    sqoop   1
    storm   2

    说明集群搭建成功。

     

    展开全文
  • hadoop web项目

    热门讨论 2013-06-16 15:53:54
    hadoop web项目的改进版,新增ajax技术。ajax主要是在浏览器中输入hdfs路径时的后台检查和在监控任务执行状态时使用ajax去和后台交互,获取job信息。
  • Hadoop+Zookeeper实现hadoop高可用

    千次阅读 2019-05-23 20:25:20
    一、zookeeper高可用 ...[hadoop@server1 hadoop]$ sbin/stop-dfs.sh [hadoop@server1 hadoop]$ jps 2244 Jps [hadoop@server1 hadoop]$ rm -fr /tmp/* [hadoop@server2 hadoop]$ rm -fr /tmp/* [h...
  • Hadoop的安装和使用

    万次阅读 2020-05-11 23:10:58
    Hadoop的安装和使用 本文是基于CentOS 7.3系统环境,进行Hadoop的安装和使用 CentOS 7.3 hadoop-2.7.2 一、Hadoop简介 (1) 什么是Hadoop RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向...
  • hadoop-2.7.3+zookeeper-3.4.8+hadoop-2.7.3分布式环境搭建整理(王三旗亲试成功安装)
  • 安装好CentOS Linux 8 并升级完内核和软件包之后再进行Hadoop的安装。 参考: 1、大数据处理和软件开发第一步:VMware下安装CentOS 8 Linux操作系统 2、怎么给CentOS Linux 8升级内核并开启BBR 手里有一台Dell R620...
  • hadoop-eclipse-plugin-2.6.4.jar

    千次下载 热门讨论 2016-02-20 10:25:09
    Tested with eclipse eclipse-jee-mars-1-win32-x86_64.
  • export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.14.2 export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export ...
  • hadoop-2.4.0.tar.gz

    热门讨论 2014-11-12 09:48:22
    hadoop-2.4.0.tar.gz
  • Hadoop 官方文档(中文版)

    热门讨论 2014-08-11 14:06:55
    Hadoop 中文教程 。包括快速入门,集群搭建,分布式文件系统,命令手册等文件。
  • 从Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 697,889
精华内容 279,155
关键字:

hadoop