hadoop伪分布式安装(:linux基本命令、hadoop常用shell命令)

大数据简介

1什么是大数据?

1.1大数据的的特点 :5V

Volume(大量)

Variety(多样)

Veloctiy(高速)

Value(价值密度低)

Veracity(真实性)

1.2数据存储的单位

bit,Byte,KB,MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB

1.3 大数据的应用

疫情防控

核酸检测

健康吗

行程码

2.hadoop

2.1 hadoop是什么

hadoop是一个由apache基金会 开发的分布式系统基础架构

主要目的 : 解决海量数据的存储 ,海量数据的计算 。

2.2 hadoop的优势

高可靠性

高扩展性

高效性

高容错性

低成本(开源的 )

2.3 核心架构

Hadoop HDFS 是一个高可靠,高吞吐量 的分布式文件系统

Hadoop MapReduce 一个分布式离线计算框架

Hadoop YARN 作业调度和集群资源管理的框架

Hadoop Common 支持其他模块的工具模块 (Configuration ,序列化机制,日志操作)

Hadoop Ozone Hadoop 对象存储系统

2.3.1 HDFS

HDFS 是一个分布式文件系统 ,采用的是主从架构 , 一个HDFS由一个NameNode和多个DataNode组成 ,其中NameNode为主服务器 ,管理文件系统的命名空间 和客户端对象的访问操作,DataNode管理存储的数据。

NameNode;

在hadoop1中 ,只能有一个NameNode 。 在hadoop2中 ,可以配置多个NameNode,解决NameNode单点故障问题,。

DataNode:

主要负责客户读写请求 ,在本地文件系统存储文件块数据,以及块数据的校验.

来存储真正的数据

2.3.2 Yarn

yarn是一个资源调度的平台 ,负责为运算程序提供服务器运算资源 , 著亚欧一个 ResourceManager 和若干个NodeManager构成 ,在执行任务的时候还有一个 applicationMaster存在。

ResourceManager :

用来处理客户端的任务请求 ,监控NodeManager ,做资源的调度与分配

NodeManager:

单个节点的资源管理器

2.3.3MapReduce

MapReduce 是一个分布式计算系统 ,将一个计算过程分为两个阶段 ,Map阶段和Reduce阶段 ,

Map阶段分而治之地处理输入的数据 ,Reduce阶段用来合并map 阶段的计算 。

2.4 Hadoop的应用场景

大数据的转换

银行信用卡欺诈性检测

社交媒体市场分析

零售行业购物模式分析

3.Hadoop 的安装

3.1使用ssh

#在当前主机上ssh登录当前主机 不需要密码  
ssh  localhost

#进入到当前的ssh目录
cd ~/.ssh

# 一直回车即可
ssh-keygen -t rsa

+---[RSA 2048]----+
|            ..*O@|
|         . + .oX=|
|        . o +.B =|
|       .   +E+.++|
|        S  .+.+o+|
|            .++. |
|           ..+ o |
|          .o+.+  |
|          *Oo.   |
+----[SHA256]-----+

# 加入授权 
cat ./id_rsa.pub >> ./authorized_keys

3.2 hadoop安装

分为3中模式

1:单机模式:只在一台计算机上运行,采用本地文件系统,何有采用分布式的文件HDFS

2:伪分布模式:存储采用分布式文件系统HDFS,但是HDFS名称节点和数据节点都在同一台计算机上

3:分布式模式:存储是采用分布式文件系统HDFS,而且HDFS的名称节点和数据节点位于不同的计算机上

3.2.1下载上传安装文件

下载上传安装文件

rz

解压软件

#解压文件到指定的目录
tar -zxf hadoop-2.10.0.tar.gz  -C /usr/local/
#进入到指定目录
cd /usr/local/
#将文件夹的名字修改为hadoop
mv hadoop-2.10.0/ hadoop

查看一下版本号

#进入到hadoop目录下
[root@localhost hadoop]# ./bin/hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.10.0.jar
3.2.2 修改配置文件

需要修改一些配置文件 ,让hadoop在伪分布模式下顺利运行 ,配置文件都在 hadoop/etc/hadopp/

伪分布模式需要修改两个配置文件 ,即core-site.xml和hdfs-site.xml

使用vim编辑器打开core-site.xml进行配置

#进入到配置文件目录下
cd /usr/local/hadoop/etc/hadoop

vim core-site.xml

初始化内容为

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
</configuration>

配置后的内容为

<configuration>
 <!-- hadoop的运行时候的临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
   <!-- 定义hadoop HDFS中的 NameNode的URI和端口--> 
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

配置 hdfs-site.xml文件

初始化内容

修改后的内容

<configuration>
    <!--指定DataNode存储Block的副本数量,不大于DataNode的数量就可以-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!--元数据的储存目录  nameNode的节点-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <!--dataNode 真正的数据存储的目录-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

如果遇到了这样的问题

localhost: Error: JAVA_HOME is not set and could not be found.

配置 hadop-env.sh

在第一行添加javaHome的引用

# JAVA_HOME 的路径为 你系统安装的java所在的路径
export JAVA_HOME=/usr/local/jdk1.8
3.2.3执行名称节点格式化

修改配置文件以后,要执行名称节点的格式化

cd /usr/local/hadoop
#格式化的命令
 ./bin/hdfs namenode -format
3.2.4 启动hadoop
./sbin/start-dfs.sh

输入jps查看进程

jps
13739 NameNode
14044 SecondaryNameNode
14205 Jps
13871 DataNode

hadoop启动成功后 ,则会列出一下的进程

NameNode DataNode SecondaryNameNode

3.3常用命令

3.3.1hadoop 常见的命令

在hdfs上创建一个目录

#在hdfs上创建一个目录
./bin/hdfs dfs -mkdir /user

#查看 目录的命令
./bin/hdfs dfs -ls /

#将系统中的文件复制到 hadoopHDFS文件系统中 
./bin/hdfs dfs -put /home/fujun/下载/aaa/b.tt /user
3.3.2linux常用命令
linux常用命令
1. 命令基本格式
    1.1 解析命令提示符
        [root@localhost ~]#
        解析:
        root:当前登录用户
        localhost:主机名
        ~:当前所在目录(家目录)
        #:超级用户的提示符
        $:普通用户的提示符
    1.2 解析命令格式
        注意:
        1. 个别命令的使用不遵循此格式
        2. 当有多个选项时,可以写在一起
        3. 简化选项-a等于完整选择-all
2. 目录处理命令
    2.1 linux常见目录作用
        命令 [选项] [参数]
        目录名称 作用
        / 根目录
        /bin 命令保存目录
        /sbin 命令保存目录(只有root能用)
        /boot 启动目录,系统启动的相关文件
        /dev 设备文件保存目录
        /etc 配置文件保存目录
        /home 普通用户的家目录
        /root 超级用户的家目录
        /usr 系统软件资源目录
        /usr/bin 保存命令的目录
        /usr/sbin 保存命令的目录(只有root能用)
        /temp 临时目录
        /lib 系统库保存目录
        /mnt 系统挂载目录,用于挂在外接存储设备
        /media 挂载目录,用于挂在外接存储设备(在原来的linux系统中没有)
        /misc 挂载目录,用于挂在外接存储设备(在原来的linux系统中没有)
        /proc 内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
        /sys 内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
        /var 系统相关文档内容
    2.2 查询目录中的内容
        选项:
        -a:显示所有文件,包括隐藏文件
        -l:显示详细信息
        -d:查看目录属性
        -h:人性化显示文件大小
        -i:显示inode
        2.2 建立目录
        ls [选项] [文件或目录]
        选项:
        -p:递归创建
    2.3 切换所在目录
    2.4 显示当前所在目录
    2.5 删除空目录
3. 文件处理命令
    3.1 创建空文件
    3.2 删除文件或目录
        选项:
        mkdir -p [目录名]
        cd [目录]
        # 进入家目录
        cd ~
        # 进入家目录
        cd
        # 返回上次的目录
        cd -
        # 进入上一级目录
        cd ..
        # 进入当前目录
        cd .
        # 显示当前所在目录
        pwd
        # 删除空白目录,若包含文件则不能删除
        rmdir [目录]
        touch [文件名]
        rm [文件或目录]
        -r:删除目录
        -f:强制
        注意:rm -rf / 强制删除根目录下的所有(相当于自杀,绝对不可以使用)
    3.3 复制文件或目录
        选项:
        -r:复制目录
        -p:连带文件属性复制
        -d:若原文件是链接文件,则复制链接属性
        -a:相当于都复制 同-pdr
    3.4 剪切或改名
  	    用于改名或剪切
    3.5 搜索文件
        选项:
        -name:文件名称
        -iname:不区分大小写
        可以使用通配符:
        * 匹配任意内容
        ? 匹配任意一个字符
        [] 匹配任意一个中括号内的字符
    3.6 文件链接
        文件链接分两种,一种被称为硬连接,另一种被称为软连接(符号连接)
        硬连接
        简单来说就是两个文件名指向同一个文件,删除其中任何一个都不会影响另外一个的访问,文件真正删除的条件是
        与之相关的所有硬连接文件均被删除。
        软连接
        cp [选项] [原文件或目录] [目标目录]
        mv [原文件或目录] [目标目录]
        find [搜索范围] [搜索条件]
        ln 被连接文件 连接文件
        软连接文件有类似于Windows的快捷方式。连接文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
        如果被连接文件被删除了,连接文件仍然存在,但指向的是一个无效的连接。
4. 文件查看和编辑
    4.1 查看
    4.2 编辑
        vi/vim 共分为三种模式,分别是命令模式,输入模式和底线命令模式。
        命令模式
        启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。
        常用命令:
        ln -s 被连接文件 连接文件
        # 从第一个字节开始正向查看
        cat 文件名
        # 从最后一行开始反向查看
        tac 文件名
        # 查看一个文件的前n行,n为指定行数
        head -n 文件名
        # 查看一个文件的后n行,n为指定行数
        tail -n 文件名
        # 查看一个长文件
        more 文件名
        # 与more类似,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
        # b 向后翻一页 d 向后翻半页 u 向前滚动半页 y 向前滚动一行 q 退出less命令
        # 空格键 滚动一页 回车键 滚动一行 pagedown 向下翻动一页 pageup 向上翻动一页
        less 文件名
        vi 文件名
        vim 文件名
        命令 说明
        Ctrl + f 屏幕向下移动一页,相当于Page Down键
        Ctrl + b 屏幕向上移动一页,相当于Page Up键
        0或Home键 移动到这一行的最前面字符处
        $或End键 移动到这一行的最后面字符处
        gg 移动到这个档案的第一行
        G 移动到这个档案的最后一行
        数字 + Enter键 向下移动指定行数
        x(小写) 向后删除一个字符,相当于del键
        X(大写) 向前删除一个字符,相当于backspace键
        dd 删除光标所在的那一行
        yy 复制光标所在的那一行
        p(小写) 将已复制的数据,粘贴在光标下一行
        P(大写) 将已复制的数据,粘贴在光标上一行
        u 复原前一个动作,撤销
        . 重复前一个动作
        命令 说明
        i 在目前光标所在处输入
        I 在光标所在行的第一个非空格符处开始输入
        a 在目前光标所在的下一个字符处开始输入
        A 在光标所在行的最后一个字符处开始输入
        o 在光标所在的下一行输入新的一行
        O 在光标所在的上一行输入新的一行
        Esc 退出输入模式,回到命令模式
        输入模式
        进入输入模式的命令:
        底线命令模式
        在命令模式下按下:(英文冒号)就进入了底线命令模式。
        命令 说明
        :w 将编辑的数据写入硬盘档案中
        :wq 存档并离开
        ZZ 存档并离开
        :q! 不存档并离开
        :set number 显示行号
5. 压缩命令
    5.1 常用的压缩格式
        .zip,.gz,.bz2
        .tar.gz,.tar.bz2 实际情况下更加常用
    5.2 .zip格式
        压缩
        解压
    5.3 .gz格式
        压缩
        解压
        # 将源文件压缩为.zip格式的压缩文件
        zip 压缩文件名 源文件
        # 将源目录压缩为.zip格式的压缩文件
        zip -r 压缩文件名 源目录
        # 解压缩
        unzip 压缩文件名
        # 解压缩到指定的目标目录
        unzip 压缩文件名 -d 目标目录
        # 压缩为.gz格式的压缩文件,源文件会消失
        gzip 源文件
        # 压缩为.gz格式,源文件保留
        gzip -c 源文件 > 压缩文件
        # 压缩目录中所有的子文件,但是不能压缩目录
        gzip -r 目录
    5.4 .bz2格式
        压缩
        注意:bzip2命令不能压缩目录
        解压
    5.5 .tar打包
        打包
        选项:
        -c 打包
        -v 显示过程
        -f 指定打包后的文件名
        查看内容
        -t 列出包中内容
        解打包
        gzip -d 压缩文件
        gunzip 压缩文件
        # 压缩为.bz2格式,不保留源文件
        bzip2 源文件
        # 压缩之后保留源文件
        bzip2 -k 源文件
        bzip2 -d 压缩文件
        bunzip2 压缩文件
        # 压缩之后保留源文件
        bzip2 -d 压缩文件 -k
        # 压缩之后保留源文件
        bunzip2 压缩文件 -k
        # 单文件/目录打包
        tar -cvf 打包文件名 源文件/目录
        # 多文件/目录打包
        tar -cvf 打包文件名 源文件/目录1 源文件/目录2 ...
        tar -tf 打包文件名
        选项:
        -x 解打包
        -C 改变至目录
    5.6 .tar.gz压缩格式
        .tar.gz格式是先打包为.tar格式,再压缩为.gz格式
        压缩:
        解压:
    5.7 .tar.bz2压缩格式
        压缩:
        解压:
6. 文件上传与下载
	在linux里可使用lrzsz 程序代替ftp上传和下载。
    6.1 上传
	6.2 下载
7. 安装管理工具
        在Linux上软件包的安装和写在是通过安装管理工具来实现的。
        tar -xvf 打包文件名
        # 解打包到指定目录
        tar -xvf 打包文件名 -C 目标目录
        tar -zcvf 压缩包名 源文件
        tar -zxvf 压缩包名
        tar -jcvf 压缩包名 源文件
        tar -jxvf 压缩包名
        rz
        sz 文件所在目录/文件名
    7.1 rpm命令
        rpm命令是RPM软件包的管理工具,rpm(redhat package manager)是Red Hat Linux发行版专门用来管理
        Linux各项套件的程序。
        RPM包安装
        选项:
        -i:安装
        -v:显示详细信息
        -h:显示进度
        --nodeps:不检测依赖性
        RPM包升级
        选项:
        -U:升级
        RPM包的卸载
        选项:
        -e:卸载
        RPM包的查询
        rpm -ivh 安装包全名
        rpm -Uvh 安装包全名
        rpm -evh 安装包全名
        #查询是否安装:
        rpm -q 包名
        #查询所有已经安装的RPM包
        rpm -qa
        #查询软件包的详细信息:
        rpm -qi 包名
        #查询包中文件安装位置
        rpm -ql 包名
        #查询系统文件属于哪个RPM包
        rpm -qf 系统文件名
        #查询软件包的依赖性
        rpm -qR 包名
        选项:
        -q:查询
        -a:所有
        -i:查询软件信息
        -l:列表
        -f:查询系统文件属于哪个RPM包
        -R:查询软件包的依赖性
    7.2 yum命令
        yum(Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于
        RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的
        软体包,无须繁琐地一次次下载、安装。
        查询所有包
        搜索包
        安装包
        卸载包
        更新包
        重新安装包
        显示包的信息
        # 在远程服务器上查询所有可用的软件包列表
        yum list
        # 搜索远程服务器上所有和关键字相关的包
        yum search 关键字
        yum install 包名
        # 安装过程中自动回答yes
        yum -y install 包名
        yum remove 包名
        # 更新所有已安装的包
        yum update
        # 更新指定的包
        yum update 包名
        yum reinstall 包名
        命令 说明
        su 用户名 切换用户
        clear 清屏
        date 显示日期时间
        cal 显示日历
        hostname 显示主机名
        ping 测试网络
        ifconfig 显示网络信息
        df -h 显示磁盘的使用情况
        top 显示系统进程动态信息,类似于Windows的任务管理器
        ps -aux 显示系统进程瞬间的状态,并不动态连续
        kill -9 PID 根据进程PID终止进程
        shutdown -r now 立刻重启
        shutdown -r 10 10分钟后重启
        shutdown -h now 立刻关机
        shutdown -h 10 10分钟后关机
        shutdown -c 取消
        man 命令名称 命令解析
        显示yum历史
        显示已启用的yum存储库的列表
        清除缓存
8. 系统命令
        yum info 包名
        yum history
        yum repolist
        yum clean all

3.4 关闭Hadoop的命令

#进入到hadoop的目录下
cd /usr/local/hadoop
#执行关闭的命令
./sbin/stop-dfs.sh