Hadoop简介及安装

Hadoop简介及安装_第1张图片

简介

Hadoop是Apache的顶级项目,是一个可靠的、可扩展的、分布式计算的开源项目。
创始人:Doug Cutting 和Mike
Hadoop起源: 2004年Doug Cutting和Mike Cafarella在设计搜索引擎Nutch的时候 ,利用通用爬虫爬取了互联网上的数据,获取了大概10亿个网页数据 ,因为互联网的数据大多数是非结构化的,就意味着这些数据无法存储到数据库中。为了解决这些数据的存储问题,Doug发现了Google在2003年发表的一片关于集群系统存储的论文:《Google File System》,于是基于《Google File System》设计了NDFS - Nutch Distributed File System解决了Nutch的存储问题。
在这期间Doug还发现了Google在2003年发表的另一篇关于集群系统计算的论文:《Google MapReduce》,这篇论文讲述了Google分布式系统的中的计算问题,Doug根据这篇论文又设计了MapReduce。–后续会讲MapReduce
从Nutch0.8版本开始,就将NDFS和MapReduce模块独立出来成为了Hadoop,并且将NDFS更名为HDFS–Hadoop Distribute File System。
2008年,Doug携带Hadoop去了Yahoo,在Yahoo的工作期间,Doug先后设计了Hive,Pig,HBase, 后来Yahoo将Hadoop、Hive、Pig、HBase等贡献给了Apache。
Hadoop名字的起源: Doug Cutting如此解释Hadoop的得名:“这个名字是我孩子给一头吃饱了的棕黄色大象命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手,Google就是由小孩命名的。”
下面来膜拜一下大神“狗哥”:
Hadoop简介及安装_第2张图片
Hadoop的版本说明

  1. Hadoop1.0:只包含HDFS以及MapReduce两个模块
  2. Hadoop2.0:完全不同于1.0的架构,包含HDFS、MapReduce以及Yarn三个模块
  3. Hadoop3.0:包含HDFS、MapReduce、Yarn以及Ozone四个模块

Hadoop的模块说明

  1. HDFS:用于分布式环境下数据的存储
  2. Yarn:Hadoop2.0版本中出现,用于进行资源管理和任务调度的框架
  3. MapReduce:用于在海量数据的场景下进行并行计算
  4. Ozone:基于HDFS进行对象的存储

Hadoop的安装方式

下载地址:https://hadoop.apache.org/releases.html

  1. 单机安装,除了MapReduce模块以外,其他的都不能使用。
  2. 伪分布式安装,利用一台主机模拟Hadoop的运行环境,可以使用Hadoop的所有模块。
  3. 全分布式安装,在真正的集群上去安装Had。

伪分布式的安装
首先要安装JDK
4. 关闭防火墙 :service iptables stop
5. 修改主机名:
1)vim /etc/sysnconfig/network
更改HOSTNAME,例如:HOSTNAME=hadoop01
2)source /etc/sysconfig/network
6. 更改hosts文件:vim /etc/hosts
添加 ip 主机名 ,例如:192.168.60.132 hadoop01
7. 配置免密互通:
1)ssh-keygen
2)ssh-copy-id 用户名@主机地址,例如:ssh-copy-id root@hadoop01
8. 重启server: reboot
9. 解压Hadoop的安装包: tar -xvf hadoop-2.7.1_64bit.tar.gz
10. 进入安装目录下的子目录etc下的子目录hadoop: cd hadoop-2.7.1/etc/hadoop
11. 编辑hadoop-env.sh : vim hadoop-env.sh
12. 将JAVA_HOME替换为具体的jdk安装目录, 例如:export JAVA_HOME=/home/preSoftware/jdk1.8
13. 将HADOOP_CONF_DIR替换为具体的Hadoop的配置目录。例如:
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
14. 重新生效 hadoop-env.sh:source hadoop-env.sh
15. 编辑core-site.xml :vim core-site.xml,添加内容



 fs.defaultFS
 hdfs://hadoop01:9000



 hadoop.tmp.dir
 /home/software/hadoop-2.7.1/tmp
 

  1. 编辑hdfs-site.xml :vim hdfs-site.xml,添加内容



 dfs.replication
 1

  1. 将mapred-site.xml.template复制为mapred-site.xml:
    cp mapred-site.xml.template mapred-site.xml
    编辑mapred-site.xml :vim mapred-site.xml,添加内容:


 mapreduce.framework.name
 yarn
 
  1. 配置yarn-site.xml :vim yarn-site.xml,添加内容

 yarn.resourcemanager.hostname
 hadoop01


 yarn.nodemanager.aux-services
 mapreduce_shuffle

  1. Hadoop本身是主从结构,配置slaves指定从节点:
    vim slaves
    添加从节点的地址
  2. 配置环境变量:vim /etc/profile,添加:
    export HADOOP_HOME=/home/software/hadoop-2.7.1
    export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
    并重新生效:source /etc/profile
  3. 格式化数据目录: hadoop namenode -format
    在这里插入图片描述
  4. 启动hadoop: start-all.sh,用jps查看进程
    Hadoop简介及安装_第3张图片
  5. 如果启动成功,可以在浏览器中输入安装Hadoop的ip:50070访问hadoop的页面,
    例如: 192.168.131:50070

全分布式安装(我用三台server做示例)
首先所有server都要安装有jdk,全分布式安装的前面步骤和伪分布式差不多,只是一些配置文件配置内容不一样,而且全分布式安装前还需要每台server都安装Zookeeper。
1.关闭防火墙
2.修改主机名,在Hadoop集群中,主机名中不允许出现 _ 以及 - ,如果出现会导致找不到这台主机。
3.修改hosts文件进行映射
4.配置免密登录
产生秘钥:ssh-keygen
进行复制:ssh-copy-id 用户名@主机
1.重启节点
2.安装Zookeeper,启动Zookeeper
3.安装hadoop
1)编辑hadoop-env.sh (参考伪分布式)
2)编辑core-site.xml



    fs.defaultFS        
    hdfs://ns



    hadoop.tmp.dir
    /home/software/hadoop-2.7.1/tmp



    ha.zookeeper.quorum
    hadoop01:2181,hadoop02:2181,hadoop03:2181

3)编辑hdfs-site.xml



dfs.nameservices
ns




dfs.ha.namenodes.ns
nn1,nn2



dfs.namenode.rpc-address.ns.nn1
hadoop01:9000



dfs.namenode.http-address.ns.nn1
hadoop01:50070



dfs.namenode.rpc-address.ns.nn2
hadoop02:9000



dfs.namenode.http-address.ns.nn2
hadoop02:50070



dfs.namenode.shared.edits.dir
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns



dfs.journalnode.edits.dir
/home/software/hadoop-2.7.1/tmp/journal



dfs.ha.automatic-failover.enabled
true



dfs.client.failover.proxy.provider.ns
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



dfs.ha.fencing.methods
sshfence



dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa


  
dfs.namenode.name.dir  
file:///home/software/hadoop-2.7.1/tmp/hdfs/name  
  

  
dfs.datanode.data.dir  
file:///home/software/hadoop-2.7.1/tmp/hdfs/data  

  
  
dfs.replication  
3  
 
               
  
dfs.permissions  
false  

4)编辑mapred-site.xml


        
                mapreduce.framework.name
                yarn
        

5)编辑yarn-site.xml



yarn.resourcemanager.ha.enabled
true



yarn.resourcemanager.ha.rm-ids
rm1,rm2



yarn.resourcemanager.hostname.rm1
hadoop01



yarn.resourcemanager.hostname.rm2
hadoop03



yarn.resourcemanager.recovery.enabled
true



yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore



yarn.resourcemanager.zk-address
hadoop01:2181,hadoop02:2181,hadoop03:2181



yarn.resourcemanager.cluster-id
ns-yarn


  
yarn.nodemanager.aux-services  
mapreduce_shuffle  
 


yarn.resourcemanager.hostname
hadoop03

6)编辑slaves
hadoop01
hadoop02
hadoop03
7)配置环境变量
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
7)将节点1中的配置文件拷贝给其它节点,然后在其它节点上配置环境变量
如:scp -r hadoop-2.7.1 hadoop02:/home/software/
8)创建指定的目录
cd hadoop-2.7.1/
mkdir tmp
cd tmp
mkdir journal
mkdir hdfs
cd hdfs/
mkdir data
mkdir name
9)在节点上分别启动journalnode:hadoop-daemon.sh start journalnode
格式化第一个节点:hadoop namenode -format
启动第一个节点的namenode:hadoop-daemon.sh start namenode
格式化第二个节点上的namenode:hdfs namenode -bootstrapStandby
启动第二个点的namenode:hadoop-daemon.sh start namenode
在三个节点上分别启动datanode:hadoop-daemon.sh start datanode
在第一个节点和第二个节点上启动zkfc实现状态的切换:hadoop-daemon.sh start zkfc
在第一个节点上启动yarn : start-yarn.sh
在第三个节点上启动resourcemanager:yarn-daemon.sh start resourcemanger
到这里完全分布式安装就完成了,如果在启动过程中出现问题,一般在网上都能搜索到解决方案!!!
以上内容如果有大神发现错误之处还请多多指教,在这里插入图片描述

你可能感兴趣的:(大数据)