`
flylynne
  • 浏览: 374039 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop部署

 
阅读更多

一、Hadoop的三种运行模式(启动模式)

1.1、单机模式(独立模式)(Local或Standalone  Mode)

  -默认情况下,Hadoop即处于该模式,用于开发和调式。

  -不对配置文件进行修改。
  -使用本地文件系统,而不是分布式文件系统
  -Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的
  -用于对MapReduce程序的逻辑进行调试,确保程序的正确

1.2、伪分布式模式(Pseudo-Distrubuted Mode)

  -Hadoop的守护进程运行在本机机器,模拟一个小规模的集群 

  -在一台主机模拟多主机
  -Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进程都在同一台机器上运行,是相互独立的Java进程
  -在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,

    以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
  -修改3个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapReduce集群的属性)
  -格式化文件系统

1.3、全分布式集群模式(Full-Distributed Mode)

  -Hadoop的守护进程运行在一个集群上 

  -Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境
  -在所有的主机上安装JDK和Hadoop,组成相互连通的网络
  -在主机间设置SSH免密码登录,把各从节点生成的公钥添加到主节点的信任列表
  -修改3个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml,指定NameNode和JobTraker的位置和端口,设置文件的副本等参数
  -格式化文件系统

 

二、搭建伪分布式集群的前提条件

环境:在Centos7

    jdk1.8.0_201

    hadoop 3.2

 

1、JDK部署 省略

2、配置环境变量

全局环境变量:/etc/profile

export JAVA_HOME=/usr/local/java/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

source 相关文件(更新配置文件)

3、查看是否安装成功

java、javac、java -version

4、安装SSH,配置SSH免密码登录

1)检查是否安装SSH,若没,则安装;
[hadoop@strong ~]$ rpm -qa|grep ssh
openssh-7.4p1-16.el7.x86_64
openssh-server-7.4p1-16.el7.x86_64
libssh2-1.4.3-12.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64
2)配置SSH免密码登录

[xx@master ~]$ cd .ssh/
[xx@master .ssh]$ ssh-keygen -t rsa


[xx@master .ssh]$ cat id_rsa.pub >> authorized_keys
[xx@master .ssh]$ chmod 600 authorized_keys
[xx@master .ssh]$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:uNXqrj0m4VpQRgv3LXDEV5si9fywauOOcxa9dOX17/4.
ECDSA key fingerprint is MD5:95:41:0a:7b:1d:d7:0a:5e:33:53:d9:b6:3c:0b:90:22.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Wed Apr 3 15:37:00 2019

5、关闭防火墙

sudo service iptables stop # 关闭防火墙服务。

sudo chkconfig iptables off # 禁止防火墙开机自启。

三、搭建伪分布式集群

3.1、安装hadoop

  1)解压hadoop安装包到opt目录下

    tar -zxvf ~/Downloads/hadoop-3.2.0.tar.gz -C /usr/local/applications/

  2)创建软链接

         cd /usr/local/applications

   ln -s hadoop-3.2.0 hadoop

    3)配置环境变量

       在/etc/profile文件中加入以下内容:
  export HADOOP_HOME=/usr/local/applications/hadoop

      export HADOOP_COMMON_HOME=$HADOOP_HOME-  ---为wordcount使用
       export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  

       source /etc/profile

  4)使用hadoop version命令测试是否配置成功

[root@master applications]# 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

3.2、配置hadoop

  配置文件存放在/usr/local/applications/hadoop/etc/hadoop中有n多个文件,暂时我们只需要修改的只有5个

  1)hadoop-env.sh

    大约在25行左右

export JAVA_HOME=/usr/local/java/jdk

export HADOOP_LOG_DIR=/wls/log/hadoop/logs

注意:在配置文件中有提示我们怎么设置,我们一般不删除,二回选择注释它的提示。

     2)core-site.xml 

  主机配置是master

[root@master hadoop]# cat /etc/hostname
master

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master</value>
    </property>
   <!--hadoop.tmp.dir 是 hadoop文件系统依赖的基本配置,很多配置路径都依赖它-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/Data/hadoop/tmp</value>
    </property>

 

    <!-- 垃圾文件保留时间(秒) -->
  <property>
      <name>fs.trash.interval</name>
      <value>7200</value>
  </property>

  <!-- 读写操作时的缓存大小(M) -->
 <property>
     <name>io.file.buffer.size</name>
     <value>4096</value>
  </property>
</configuration>

 

[root@master hadoop]# ./sbin/start-all.sh
Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes

hadoop.http.staticuser.user配置了xx用户

 

3)hdfs-site.xml 

dfs.block.size配置64M,现在一般为128M

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>master</value>
    </property>

     <!-- 是否进行权限检查 -->
   <property>
       <name>dfs.permissions.enabled</name>
      <value>false</value>
    </property>

   <property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--dfs namenode web ui -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:5007</value>
</property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/Data/hadoop/hdfs/nn</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>/Data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.edits.dir</name>
        <value>/Data/hadoop/hdfs/snn</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/Data/hadoop/hdfs/dn</value>
    </property>

  <property>
      <name>dfs.block.size</name>
     <value>67108864</value>
  </property>
  <property>
     <name>dfs.namenode.secondary.http-address</name>
     <value>localhost:9001</value>
 </property>
 <property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
 </property>
</configuration>

新建数据文件夹

sudo mkdir -p /Data/hadoop/hdfs/nn
sudo mkdir -p /Data/hadoop/hdfs/nn
sudo mkdir -p /Data/hadoop/hdfs/nn
sudo mkdir -p /Data/hadoop/tmp

[xx@master applications]$ sudo mkdir -p /Data/hadoop/hdfs/nn
[sudo] password for xx: 
[xx@master applications]$ sudo mkdir -p /Data/hadoop/hdfs/nn
[xx@master applications]$ sudo mkdir -p /Data/hadoop/hdfs

[xx@master applications]$ sudo mkdir -p /Data/hadoop/tmp

[root@master ~]# chown -R xx:xx/Data/hadoop
[root@master ~]# chmod -R 777 /Data/hadoop

4)yarn-site.xml

<!-- resourceManager在哪台机器 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 在nodemanager中运行mapreduce服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 配置日志的聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/wls/log/hadoop-yarn/apps</value>
<description>Where to aggregate logs to.</description>
</property> 
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

<!--设置nodemanager 总内存大小为4G-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!--container内存按照默认大小配置,即为最小1G,最大8G-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>

<!--开启jobhistory服务-->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/</value>
</property>

mkdir -p /wls/log/hadoop-yarn/apps

5)mapred-site.xml

<property>
<!-- 指定mapreduce 编程模型运行在yarn上 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<!--开启jobhistory服务-->

<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>

<property> 
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property> 
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>

 <property>

     <name>yarn.app.mapreduce.am.staging-dir</name>

     <value>/tmp/hadoop-yarn/staging</value>

   </property>

   <property>

     <name>mapreduce.jobhistory.intermediate-done-dir</name>

     <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>

   </property>

   <property>

     <name>mapreduce.jobhistory.done-dir</name>

     <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>

   </property>

3.3 Hadoop namenode格式化

hdfs namenode -format

3.4 Hadoop启动

./sbin/start-all.sh

[xx@master hadoop]$ ./sbin/start-all.sh 
Starting namenodes on [master]
Starting datanodes
Starting resourcemanager
Starting nodemanagers
[xx@master hadoop]$ jps
14736 NodeManager
14050 DataNode
14403 ResourceManager
13865 NameNode
14956 Jps

或者单独启动

sbin/hadoop-daemon.sh start namenode

sbin/hadoop-daemon.sh start datanode

sbin/yarn-daemon.sh start resourcemanager

sbin/yarn-daemon.sh start nodemanager

sbin/mr-jobhistory-daemon.sh start historyserver

再或者

sbin/start-dfs.sh

sbin/start-yarn.sh

sbin/mapred --daemon start
[xx@master hadoop]$ jps
14736 NodeManager
14050 DataNode
14403 ResourceManager
15240 Jps
13865 NameNode
15162 JobHistoryServer

3.5 验证

namenode信息http://localhost:9870

yarn资源调度信息http://localhost:8088

Job History: http://localhost:19888

 

HDFS测试

[xx@master hadoop]$ hdfs dfs -mkdir -p /input
[xx@master hadoop]$ vi hello.txt
[xx@master hadoop]$ hdfs dfs -put hello.txt /input/

运行wordcount示例:

hadoop jar /opt/applications/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /input/hello.txt /output

会报错

Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

Please check whether your etc/hadoop/mapred-site.xml contains the below configuration:
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>

处理方案在mapred-site.xml中配置

<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>

在/etc/profile配置

export HADOOP_COMMON_HOME=$HADOOP_HOME

hadoop jar /opt/applications/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /input/hello.txt /output

/tmp/hadoop-yarn/staging/xx/.staging/job_1554284100733_0001

运行成功后,查看目录:hadoop fs -ls / 多了一个output文件夹

[xx@master hadoop]$ hdfs dfs -ls /
Found 5 items
drwxr-xr-x - xx supergroup 0 2019-04-03 16:55 /input
drwxr-xr-x - xx supergroup 0 2019-04-03 17:37 /output
drwxrwx--- - xx supergroup 0 2019-04-03 17:01 /tmp
drwx------ - xx supergroup 0 2019-04-03 17:36 /user
drwxr-xr-x - xx supergroup 0 2019-04-03 17:37 /wls

查看结果文件

[xx@master hadoop]$ hdfs dfs -cat /output/part-r-00000
"mapred 1
--daemon 1
./sbin/mr-jobhistory-daemon.sh 1
10 1
13865 1
14050 1
14403 1
14736 1
14956 1
Apache 1
Attempting 2
CTRL-C 1
DataNode 1
Hadoop 1
JobHistory 1
...
分享到:
评论

相关推荐

    hadoop部署与集群运维

    里面讲了一些hadoo是如何部署与运维的知识点,希望对初学者有所帮助!

    Hadoop部署实验.docx

    Hadoop 部署实验指南 本文档涵盖了 Hadoop 部署的基本概念、实验步骤、分布式安装和 MapReduce 应用程序实践。该文档旨在帮助读者了解 Hadoop 的基本架构、HDFS 和 MapReduce 的原理,并掌握 Hadoop 的多节点部署...

    HP的Hadoop部署方案

    ### HP的Hadoop部署方案 #### 一、背景与需求 HP在2008年的一次Hadoop UK User Group会议上介绍了其针对Apache Hadoop的部署方案。此方案旨在通过SmartFrog工具来提高Hadoop集群部署的敏捷性和灵活性。由于数据...

    Hadoop部署和配置Kerberos安全认证

    ### Hadoop部署和配置Kerberos安全认证 #### 一、Kerberos认证系统简介 Kerberos是一种网络认证协议,其设计目标是通过密钥分发中心(Key Distribution Center, KDC)来管理用户和服务之间的认证过程。Kerberos在...

    单机下Hadoop部署与配置

    ### 单机下Hadoop部署与配置 #### 关于本教程 本文档旨在详细介绍如何在单节点环境下安装、配置并运行Hadoop集群的过程。通过本教程的学习,读者将能够掌握在Ubuntu Linux系统上搭建单机Hadoop集群的基本步骤,...

    DELL的Hadoop部署方案

    ### DELL的Hadoop部署方案 #### 概览与总结 本指南主要介绍了戴尔(Dell)与Cloudera联合提供的Apache Hadoop部署解决方案,旨在帮助用户更好地理解和实施Hadoop集群部署。该文档覆盖了从硬件配置到软件安装、再到...

    hadoop部署手册.

    Hadoop部署手册涵盖了从基础环境准备到集群配置的多个关键步骤。下面,我们将详细解析这些步骤,并解释每个环节的重要性。 首先,创建一个专门的用户和组是安全实践的基础。在Linux系统中,通过`useradd`命令创建名...

    Ubuntu_Hadoop部署笔记

    ### Ubuntu_Hadoop部署笔记 #### 一、Jdk安装与配置 为了确保Hadoop能够正常运行,首先需要在Ubuntu系统上安装Java Development Kit (JDK)。本例中选择安装OpenJDK 6。 **安装命令**: ``` sudo apt-get install ...

    Linux运维-运维课程MP4频-06-大数据之Hadoop部署-15hadoop部署分类.mp4

    Linux运维-运维课程MP4频-06-大数据之Hadoop部署-15hadoop部署分类.mp4

    Hadoop部署及管理内含源码以及说明书可以自己运行复现.zip

    标题 "Hadoop部署及管理内含源码以及说明书可以自己运行复现.zip" 提供了关于这个压缩包的核心内容:它包含的是有关Hadoop部署和管理的资源,其中包括源码和说明书,允许用户自己运行和复现教程中的步骤。...

    云计算课程学习以及hadoop部署

    云计算是信息技术领域的...总的来说,"云计算课程学习以及hadoop部署"涵盖了广泛的知识点,从云计算基础到Hadoop生态系统,再到实际部署和应用。通过深入学习和实践,不仅可以提升技能,也能为解决大数据挑战做好准备。

    Simpsons是一个简单的hadoop部署工具

    标题中的"Simpsons"是一个专为简化Hadoop部署设计的工具,特别适合那些不熟悉复杂命令行操作的用户。这个工具使得在短短的30分钟内就能在一个移动硬盘上搭建起一个Hadoop集群,大大降低了Hadoop环境部署的门槛。 在...

    Hadoop部署.md

    Hadoop部署.md

    hadoop部署笔记.txt

    hadoop部署笔记,详细记录hadoop搭建过程!

    hadoop 部署

    在“hadoop 部署”这个主题中,我们首先要理解Hadoop的部署架构。Hadoop通常被部署在集群环境中,由多个节点组成,包括NameNode、DataNode、ResourceManager、NodeManager等组件。NameNode是HDFS的元数据管理节点,...

    Hadoop部署大报告-期末大作业.docx

    【Hadoop部署大报告】 在IT领域,大数据处理和分析是一个关键部分,而Hadoop作为开源的大数据处理框架,扮演着至关重要的角色。本报告主要讲述了如何在虚拟机上安装和部署Hadoop及其相关的组件,如JDK、Zookeeper和...

    大数据高级-hadoop部署

    大数据高级-hadoop部署

    六个超大规模Hadoop部署案例一览 .docx

    超大规模的Hadoop部署在当前大数据时代已经成为许多大型企业和组织的核心技术之一,尤其在互联网行业中。Hadoop作为开源的大数据处理框架,其分布式计算能力在处理海量数据时展现了强大潜力。以下将详细讨论Hadoop在...

    六个超大规模Hadoop部署案例一览 .pdf

    【超大规模Hadoop部署】是大数据处理领域的重要实践,它主要应用于处理海量的数据,尤其在互联网行业中具有广泛应用。本文将探讨六个这样的大型部署案例,揭示Hadoop在应对大数据挑战时的关键作用。 首先,【eBay的...

    Hadoop部署实践-教学实施方案.docx

    【Hadoop部署实践】教学实施方案旨在让学生掌握Hadoop系统的基础知识和实际操作技能,特别是其核心组件HDFS(Hadoop Distributed File System)和MapReduce。本方案针对数据科学与大数据技术2018级学生,共计2个学分...

Global site tag (gtag.js) - Google Analytics