大数据,机器学习,人工智能大数据玩转大数据

Hadoop系列-Hadoop简介与运行环境搭建

2019-07-08  本文已影响2人  gengqing

hadoop简介

hadoop主要是解决海量数据的存储和海量数据的分析计算问题,狭义上来说,hadoop最擅长做海量离线的日志分析;广义上来说,hadoop还是指一个更加广泛的概念--hadoop生态圈。

hadoop 核心

HDFS:分布式文件系统
YARN:资源管理调度系统
Mapreduce:分布式运算框架

hadoop有三个发行版本:Apache、Cloudrea、Hortonworks。
Apache 版本最原始(最基础)的版本,对于入门学习最好。
Cloudera 在大型互联网企业中用的较多。
Hortonworks 文档较好。

选择hadoop的优势(4高)

  1. 高可靠性: Hadoop底层维护多个数据副本, 所以即使Hadoop某个计算元素或存储出现故障, 也不会导致数据的丢失。
  2. 高扩展性:在集群间分配任务数据, 可方便的扩展数以千计的节点。
  3. 高效性:在MapReduce的思想下, Hadoop是并行工作的, 以加快任务处理速度。
  4. 高容错性:能够自动将失败的任务重新分配。

Hadoop1.x和Hadoop2.x区别

image.png

如图,在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度, 耦合性较大, 在Hadoop2.x时代, 增加了Yarn。 Yarn只负责资源的调度,MapReduce只负责运算。

HDFS架构

  1. NameNode( nn) :存储文件的元数据, 如文件名, 文件目录结构, 文件属性( 生成时间、 副本数、文件权限) , 以及每个文件的块列表和块所在的DataNode等。


    image.png
    image.png
  2. DataNode(dn):在本地文件系统存储文件块数据, 以及块数据的校验和。


    image.png
    image.png

(上面四幅图片是对NameNode和DataNode最形象的比喻,我们可以把NameNode看作是文件的目录,而DataNode是文件的内容)

  1. Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序, 每隔一段时间获取HDFS元数据的快照。

MapReduce 架构

MapReduce 将计算过程分为两个阶段: Map 和 Reduce。其中
1) Map 阶段并行处理输入数据
2) Reduce 阶段对 Map 结果进行汇总
如下图所示的两个阶段:


hadoop运行环境搭建

1. 安装对应版本的JDK

由于hadoop是安装的最新版本的3.2.0版本,所以JDK选择的是1.8.0版本,这个版本一定要注意,安装之前google一下,否则后边会出现很多问题。
首先官网下载对应版本的JDK,我是下载到了Downloads目录下,然后解压到opt/jvm目录下(jvm是新建的文件夹,解压好的文件都放到了这个文件夹中),命令如下:
sudo tar zxvf jdk-8u211-linux-x64.tar.gz -C /opt/jvm

2. 配置JDK的环境变量

切换到JDK所在目录,运行如下命令:

dreamgeng at dreamgeng-ubuntu in ~ 
$ cd /opt/jvm/jdk1.8.0_211   #切换目录
dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ pwd   
/opt/jvm/jdk1.8.0_211  # pwd获得JDK路径
dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ sudo vi /etc/profile  # vim编辑/etc/profile文件,将JDK 的路径添加进去

在 profile 文件末尾添加 JDK 路径

在 profile 文件末尾添加 JDK 路径
#JAVA_HOME
export JAVA_HOME=/opt/jvm/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin

让修改后的文件生效

dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
$ sudo -s source /etc/profile  # 这里加了-s,网上很多教程是没有的,但是如果不加会提示找不到source命令的错误

到这里jdk就安装完成了。

3. 安装 Hadoop

首先官网下载3.2.0最新版本的hadoop,均下载.tar.gz 版本的,然后和安装jdk一样,将其解压到opt/jvm目录下,这里不再重复。

4. 将 Hadoop 添加到环境变量

dreamgeng at dreamgeng-ubuntu in /opt/jvm 
$ cd hadoop-3.2.0
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ pwd
/opt/jvm/hadoop-3.2.0
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo vi /etc/profile
将如下内容添加到/etc/profile文件中
##HADOOP_HOME
export HADOOP_HOME=/opt/jvm/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存后退出
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo -s source /etc/profile  # 激活
如果 Hadoop 命令不能用,则需要重启
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sync  
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ sudo reboot    
输入ll可查看Hadoop 目录结构
dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
$ ll                         
total 228K
drwxr-xr-x 3 dreamgeng      1002 4.0K Jul  7 20:12 bin
drwxrwxr-x 3 dreamgeng dreamgeng 4.0K Jul  8 10:54 data
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 etc
drwxr-xr-x 2 dreamgeng      1002 4.0K Jan  8 15:59 include
drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 08:47 input
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 15:58 lib
drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 15:59 libexec
-rw-rw-r-- 1 dreamgeng      1002 148K Oct 19  2018 LICENSE.txt
drwxr-xr-x 2 dreamgeng root      4.0K Jul  8 16:00 logs
-rw-rw-r-- 1 dreamgeng      1002  22K Oct 19  2018 NOTICE.txt
drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:12 output
-rw-rw-r-- 1 dreamgeng      1002 1.4K Oct 19  2018 README.txt
drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 sbin
drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 16:32 share
drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:39 wcinput
drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:47 wcoutput

其中重要目录:
( 1) bin 目录:存放对 Hadoop 相关服务( HDFS,YARN)进行操作的脚本
( 2) etc 目录: Hadoop 的配置文件目录,存放 Hadoop 的配置文件
( 3) lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
( 4) sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
( 5) share 目录:存放 Hadoop 的依赖 jar 包、 文档、 和官方案例

上一篇下一篇

猜你喜欢

热点阅读