论Hadoop在大数据领域重要性,应该从入门谈起,Hadoop安装

知识要点:

什么是Hadoop

运行Hadoop先决条件

安装配置Hadoop

什么是Hadoop(Hadoop技术分享版本:Apache Hadoop 2.8.5


Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:

  • HDFS为海量的数据提供了存储
  • MapReduce则为海量的数据提供了计算
准备环境
  • Java Development Kit8(JDK8)
  • CentOS7.4、虚拟机三台(分布式)或者一台虚拟机(单节点)
    硬件要求
    16G或者16G+内存,4核-8核CPU,200GB硬盘空间
    先决条件(版本选择)
    HBase和Hadoop版本对应
Hadoop版本 HBase-1.2.x,HBase-1.3.x HBase-1.4.x HBase-1.5.x HBase-2.0.x HBase-2.1.x HBase-2.2.x
Hadoop-2.4.x 支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.5.x 支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.6.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.6.1+ 支持 不支持 不支持 支持 不支持 不支持
Hadoop-2.7.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.7.1+ 支持 支持 不支持 支持支持 不支持
Hadoop-2.8.[0-2] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.8.[3-4] 未测试 未测试 不支持 支持 支持 不支持
Hadoop-2.8.5+ 未测试 未测试 支持 支持 支持 支持
Hadoop-2.9.[0-1] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.9.2+ 未测试 未测试 支持 未测试 未测试 支持
Hadoop-3.0.[0-2] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-3.0.3+ 不支持 不支持 不支持 支持 支持 不支持
Hadoop-3.1.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-3.1.1+ 不支持 不支持 不支持 支持 支持 支持

HBase与JDK

HBase版本 JDK 7 JDK 8 JDK 9 JDK 10 JDK 11
2.0+ 不支持 支持 未测试 未测试 未测试
1.2+ 支持 支持 未测试 未测试 未测试
安装配置Hadoop

Hadoop安装步骤易记总结:442阵型里有7个小矮人(只针对想自己安装hadoop体验受虐过程的,如果使用CDH或其他商业发行版中集成的安装工具,可以略过此步骤)。该步骤同样适用于其他版本的Apache Hadoop

下载和解压
# 下载文件
$bin wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# 解压文件
$bin tar xvzf hadoop-2.8.5.tar.gz
# 把解压好的目录移动到你的软件目录
$bin mv ./hadoop-2.8.5 /path/to/你的软件目录
Linux系统设置
  • 创建用户
$bin useradd hadoop
  • 修改linux配置文件
192.168.56.105 master
192.168.56.107 docker01
192.168.56.109 docker02

修改/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=你的主机名
  • 关闭防火墙
$bin systemctl stop firewalld.service
$bin systemctl disable firewalld.service
  • 设置免密登录
    打开sshd服务
    编辑/etc/ssh/sshd_config
RSAAuthentication       yes
PubkeyAuthentication    yes
AuthorizedKeysFile      .ssh/authorized_keys

重启sshd服务

$bin systemctl restart sshd.service

设置免密

$bin su hadoop
# 在master主机上生成RSA公私钥对
$bin ssh-keygen -t rsa

# 到hadoop用户的用户目录下的.ssh目录
$bin cd ~/.ssh

# 生成authorized_keys文件
$bin cat id_rsa.pub >> authorized_keys
# 对authorized_keys文件进行权限修复
$bin chmod 644 ./authorized_keys

# 分发authorized_keys到docker01 docker02
$bin ssh-copy-id hadoop@docker01
$bin ssh-copy-id hadoop@docker02

# 在主机上对免密登录进行测试,除第一外后面再登录都不需要输入登录密码
# master主机上免密登录到docker01
$bin ssh docker01
# master主机上免密登录到docker02
$bin shh docker02
Hadoop设置
  • 设置目录权限
$bin chown -R hadoop:hadoop /usr/local/bigdata/hadoop-2.8.5
  • 准备Hadoop数据目录
$bin cd

$bin mkdir -p ./hdfs/name ./hdfs/data
  • 修改Hadoop配置文件
    配置文件目录路径:/path/to/hadoop-2.8.5/etc/hadoop
    ①hadoop-env.sh
    ②yarn-env.sh
    ③core-site.xml
    ④hdfs-site.xml
    ⑤mapred-site.xml
    ⑥yarn-site.xml
    ⑦slaves
    hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_171
export HADOOP_PREFIX=/usr/local/bigdata/hadoop-2.8.5

yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_171

core-site.xml


    
        fs.defaultFS
        hdfs://master:9000
    
    
        hadoop.home.dir
        file:/usr/local/bigdata/hadoop-2.8.5
        Abase for other temporary directories.
    
    
        hadoop.tmp.dir
        file:/home/hadoop/hdfs
    

hdfs-site.xml


    
        dfs.namenode.secondary.http-address
        master:50090
    
    
        dfs.replication
        1
    
    
        dfs.namenode.name.dir
        file:/home/hadoop/hdfs/name
    
    
        dfs.datanode.data.dir
        file:/home/hadoop/hdfs/data
    

    
        dfs.hosts
        /usr/local/bigdata/hadoop-2.8.5/etc/hadoop/slaves
    

mapred-site.xml


    
        mapreduce.framework.name
        yarn
    
    
        mapreduce.jobhistory.address
        master:10020
    
    
        mapreduce.jobhistory.webapp.address
        master:19888
    
    
        mapred.job.tracker.http.address
        master:50030
    
    
        mapred.task.tracker.http.address
        master:50060
    

yarn-site.xml


    
        yarn.resourcemanager.hostname
        master
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
        yarn.resourcemanager.address
        master:8032
    
    
        yarn.resourcemanager.scheduler.address
        master:8030
    
    
        yarn.resourcemanager.resource-tracker.address
        master:8031
    
    
        yarn.resourcemanager.admin.address
        master:8033
    
    
        yarn.resourcemanager.webapp.address
        master:8088
    

slaves

docker01
docker02
  • 节点分发
$bin scp -r /usr/local/bigdata/hadoop-2.8.5 docker01:/usr/local/bigdata
$bin scp -r /usr/local/bigdata/hadoop-2.8.5 docker02:/usr/local/bigdata
验证
  • 初始化Hadoop
    对namenode进行格式化(必须在主节点上进行)
hdfs namenode -format
  • 启动服务
# 第一种启动方式
$bin start-all.sh

# 第二种启动方式
$bin start-dfs.sh
$bin start-yarn.sh

正常启动有五个进程:

NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode

DFS WebUI地址:http://192.168.56.105:50090/
Yarn WebUI地址:http://192.168.56.105:8088/
页面正常,说明服务正常启动。可以进行下一步验证,如执行一条hdfs命令:

# 查看hdfs系统中的目录或者文件
$bin hdfs dfs -ls /

注:大家学习的时候一定要对照好版本,并且如果自己练习的话,应该与我的节点架构是一样的,这样才能避免学习的时候遇到一些没有必要的麻烦!

你可能感兴趣的:(论Hadoop在大数据领域重要性,应该从入门谈起,Hadoop安装)