基本概念:
1. Hadoop是一个分布式文件系统的基础架构,用户可以利用集群进行高速运算和存储
2. Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算
3. Hdfs主要模块:NameNode、DataNode
4. HDFS主要模块及运行原理:
(1)NameNode:
功能:是整个文件系统的管理节点。维护整个文件系统的文件目录树,文件/目录的元数据和每个文件对应的数据块列表。接收用户的请求
(2)DataNode:
功能:是HA(高可用性)的一个解决方案,是备用镜像,但不支持热备
5. Hadoop的三种模式:
(1)单机模式Local或Standalone Mode
默认情况下,Hadoop即处于该模式,用于开发和调试,使用本地文件系统,而不是分布式文件系统,Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程。用于对MapReduce程序的逻辑进行调试,确保程序的正确
(2)伪分布式模式(Pseudo-Distrubuted Mode)
- 模拟一个小规模的集群,在一台主机模拟多主机。
- Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进 程都在同一台机器上运行,是相互独立的Java进程
- 在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,类似于完全分布式模式
(3)完全分布式模式
- Hadoop守护进程运行在一个集群上,hadoop的守护进程namenode,datanode,jobTracker,TaskTracker运行在多台主机上,也就是一个集群不同机器上
一、单机分布式
1.创建hadoop用户,将安装包传到hadoop的家目录下
[root@server1 ~]# useradd hadoop
[root@server1 ~]# id hadoop
uid=1000(hadoop) gid=1000(hadoop) groups=1000(hadoop)
[root@server1 ~]# ls
hadoop-3.0.3.tar.gz jdk-8u181-linux-x64.tar.gz
[root@server1 ~]# mv * /home/hadoop/
[root@server1 ~]# su - hadoop
[hadoop@server1 ~]$ ls
hadoop-3.0.3.tar.gz jdk-8u181-linux-x64.tar.gz
2.解压安装包,创建软连接
(1)jdk
[hadoop@server1 ~]$ tar zxf jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ls
hadoop-3.0.3.tar.gz jdk1.8.0_181 jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ln -s jdk1.8.0_181/ java
[hadoop@server1 ~]$ ls
hadoop-3.0.3.tar.gz java jdk1.8.0_181 jdk-8u181-linux-x64.tar.gz
(2)hadoop
[hadoop@server1 ~]$ tar zxf hadoop-3.0.3.tar.gz
[hadoop@server1 ~]$ ls
hadoop-3.0.3 java jdk-8u181-linux-x64.tar.gz
hadoop-3.0.3.tar.gz jdk1.8.0_181
[hadoop@server1 ~]$ ln -s hadoop-3.0.3 hadoop
[hadoop@server1 ~]$ ls
hadoop hadoop-3.0.3.tar.gz jdk1.8.0_181
hadoop-3.0.3 java jdk-8u181-linux-x64.tar.gz
3.配置java环境变量
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server1 hadoop]$ vim hadoop-env.sh
54 export JAVA_HOME=/home/hadoop/java
4.添加系统环境变量
[hadoop@server1 hadoop]$ cd
[hadoop@server1 ~]$ vim .bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/java/bin
[hadoop@server1 ~]$ source .bash_profile
配置完后可以执行jps命令
[hadoop@server1 ~]$ jps
11515 Jps
5.创建input目录