任务三、安装Hadoop单机模式和伪分布式

安装Hadoop

1、基本概念

  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为海量的数据提供了计算
    1. Hdfs主要模块:NameNode、DataNodeHDFS
    2. 主要模块及运行原理:
      (1)NameNode:
      功能:是整个文件系统的管理节点。维护整个文件系统的文件目录树,文件/目录的元数据和每个文件对应的数据块列表。接收用户的请求
      (2)DataNode:
      功能:是HA(高可用性)的一个解决方案,是备用镜像,但不支持热备

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运行在多台主机上,也就是一个集群不同机器上

2、安装过程

明确概念:Hadoop的伪分布式模式需要在单机模式之上进行

  1. 安装Hadoop的单击模式

    下载Hadoop对应的安装包

    链接:https://pan.baidu.com/s/1Se4tmyneFxc7AKnbTv1D9A
    提取码:2yqn

  2. 在虚拟机下创建目录存放Hadoop的安装包:

    mkdire /usr/java/hadoop

    并通过xftp将安装包放入到目录下

    解压压缩包:

    tar -xzvf hadoop-2.10.0.tar

  3. 配置环境变量

    vim /etc/profile

    在文件最后添加:

    export HADOOP_HOME=/usr/java/hadoop/hadoop-2.10.0
    export PATH=PATH:PATH:HADOOP_HOME/bin

    问题一: 关于配置文件生效问题:

    ​ 之前有遇到过配置文件在修改之后只是临时生效的问题,因为我们是直接实由的source /etc/profile 使用这个命令的结果是刷新配置文件,可以在一定的时间内使其生效,而如果想要配置文件永久生效就需要将虚拟机重启,通过命令:

    reboot

  4. 到此为止我们就完成Hadoop的单机模式的安装,为了验证这里可输入命令

    hadoop

任务三、安装Hadoop单机模式和伪分布式

如上图显示,则说明我们的单击模式安装成功

  1. 伪分布式模式安装

    1)查看有没有安装openssh

    ​ 输入命令

    rpm -qa openssh

    ​ 如果显示

任务三、安装Hadoop单机模式和伪分布式
​ 则说明已经安装了openssh

​ 如果没有显示安装则通过yum命令进行安装

yum install openssh

2)修改若干配置文件

  1. 问题二: 在这里修改配置文件的property标签必须放到configuration标签下

  2. 在hadoop安装根目录下创建temp文件夹用于存放临时文件

  3. 转到hadoop安装根目录/etc/hadoop目录下,修改若干配置文件

    • vim core-site.xml

      在configuration标签下添加:

任务三、安装Hadoop单机模式和伪分布式

将第二个property标签中的value值设置为刚刚创建临时文件夹temp的绝对路径

vim hdfs-site.xml

在configuration标签下增加为
任务三、安装Hadoop单机模式和伪分布式

找到mapred-site.xml.template文件把文件名修改为mapred-site.xml
修改文件名的命令为:

mv mapred-site.xml.template mapred-site.xml

编辑它:

vim mapred-site.xml

在configuration中增加为:
任务三、安装Hadoop单机模式和伪分布式

修改hadoop-env.sh中JAVA_HOME路径的问题:

vim hadoop-env.sh

修改为:

export JAVA_HOEM = “JDK的根目录“

自此所有的配置文件就都已经配置结束了。

  1. 配置hadoop免密登录,因为在之后的format操作中要将多次输入密码,非常麻烦,这里设置免密登录

    输入命令:

    ssh-****** -t rsa (一路回车)

    转到~/.ssh目录下

    cd ~/.ssh

    输入命令:

    cat id_rsa.pub >> authorized_keys

  2. 格式化hadoop

    转到hadoop的配置文件夹下

    cd /usr/java/hadoop/etc/hadoop

    输入命令:

    hadoop namenode -format

    在这个过程中,会报出之前在修改配置文件过程中出现的错误,只有当出现”has been successfully formatted“才表示配置成功

    如图所示:

任务三、安装Hadoop单机模式和伪分布式

  1. 转到cd /usr/java/hadoop/sbin目录下

    cd /usr/java/hadoop/sbin

    输入命令

    ./start-all.sh

    然后遇到输入一律yes,则hadoop成功启动

    输入jps

    如果显示出六个输出结果,则说明我们的伪分布式搭建成功

任务三、安装Hadoop单机模式和伪分布式

  1. 下一步我们就可以访问HDFS的web界面

    在浏览器输入:

    localhost:50070/

    看到界面出现:

任务三、安装Hadoop单机模式和伪分布式

则说明我们的分布式完全配置成功了

3、HDFS的命令操作

查询前几行样本数据:
hdfs dfs -cat /project/test/test.txt | head -17

查询后5行数据:
hdfs dfs -cat /project/test/test.txt | tail -5

随机返回指定行数的样本:
hdfs dfs -cat /project/test/test.txt | shuf -n 5

查看文本的行数:
hdfs dfs -cat /project/test/test.txt | wc -l

查询第五行之后的文件内容:
hdfs dfs -cat /project/test/test.txt | tail -n +5

查询过滤字段num:
hdfs dfs -cat /project/test/test.txt | grep num

查看文件大小:
hdfs dfs -du /project/test/test.txt
hdfs dfs -du /project/test/*

显示文件夹下面文件的数量:
hdfs dfs -count /project/test/

创建目录dir1和dir2:
hdfs dfs -mkdir -p /project/test/dir1 /project/test/dir2

显示文件夹test下的目录:
hdfs dfs -ls /project/test/
递归的显示test下的目录:
hdfs dfs -ls -R /project/test/或hdfs dfs -lsr /project/test/

将本地文件上传至hdfs目标路径:
hdfs dfs -put /home/bb/test1.txt /project/test/

将文件从目标路径拷贝到本地:
hdfs dfs -get /project/test/test1 /home/bb/

将文件或目录复制到目标路径:
hdfs dfs -cp 源路径 目标路径

删除文件或目录:
hdfs dfs -rm 路径
删除文件夹及文件夹下的内容:
hdfs dfs -rm -r 路径
跳过垃圾桶删除:
hdfs dfs -rm -r -skipTrash 路径