【Linux】【Hadoop】【大数据技术基础】实验一 熟悉常用的Linux操作和Hadoo ...

立山  金牌会员 | 2024-10-19 10:52:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 915|帖子 915|积分 2745

实验一:熟悉常用的Linux操作和Hadoop操作

一、实验目的

        Hadoop运行在Linux系统上,因此,必要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺遂开展后续其他实验奠定基础。
二、实验平台


  • 操作系统:Linux(建议Ubuntu16.04);
  • Hadoop版本:2.7.1。
三、实验步调

3.1 熟悉常用的Linux操作



  • cd命令:切换目次
(1)切换到目次“/usr/local”
(2)切换到当前目次的上一级目次
(3)切换到当前登录Linux系统的用户的本身的主文件夹


  • ls命令:查看文件与目次
(4)查看目次“/usr”下的所有文件和目次


  • mkdir命令:新建目次
(5)进入“/tmp”目次,创建一个名为“a”的目次,并查看“/tmp”目次下已经存在哪些目次
(6)进入“/tmp”目次,创建目次“a1/a2/a3/a4” 


  • rmdir命令:删除空的目次
(7)将上面创建的目次a(在“/tmp”目次下面)删除
(8)删除上面创建的目次“a1/a2/a3/a4” (在“/tmp”目次下面),然后查看“/tmp”目次下面存在哪些目次


  • cp命令:复制文件或目次
(9)将当前用户的主文件夹下的文件.bashrc复制到目次“/usr”下,并重命名为bashrc1
(10)在目次“/tmp”下新建目次test,再把这个目次复制到“/usr”目次下


  • mv命令:移动文件与目次,或更名
(11)将“/usr”目次下的文件bashrc1移动到“/usr/test”目次下
(12)将“/usr”目次下的test目次重命名为test2


  • rm命令:移除文件或目次
(13)将“/usr/test2”目次下的bashrc1文件删除
(14)将“/usr”目次下的test2目次删除


  • cat命令:查看文件内容
(15)查看当前用户主文件夹下的.bashrc文件内容


  • tac命令:反向查看文件内容
(16)反向查看当前用户主文件夹下的.bashrc文件的内容


  • more命令:一页一页翻动查看
(17)翻页查看当前用户主文件夹下的.bashrc文件的内容


  • head命令:取出前面几行
(18)查看当前用户主文件夹下.bashrc文件内容前20行
(19)查看当前用户主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行


  • tail命令:取出后面几行
(20)查看当前用户主文件夹下.bashrc文件内容最后20行
(21)查看当前用户主文件夹下.bashrc文件内容,而且只列出50行以后的数据


  • touch命令:修改文件时间或创建新文件
(22)在“/tmp”目次下创建一个空文件hello,并查看文件时间
(23)修改hello文件,将文件时间整为5天前


  • chown命令:修改文件所有者权限
(24)将hello文件所有者改为root帐号,并查看属性


  • find命令:文件查找
(25)找出主文件夹下文件名为.bashrc的文件


  • tar命令:压缩命令
(26)在根目次“/”下新建文件夹test,然后在根目次“/”下打包成test.tar.gz
(27)把上面的test.tar.gz压缩包,解压缩到“/tmp”目次


  • grep命令:查找字符串
(28)从“~/.bashrc”文件中查找字符串'examples'


  • 配置环境变量
(29)请在“~/.bashrc”中设置,配置Java环境变量
(30)查看JAVA_HOME变量的值
3.2 熟悉常用的Hadoop操作

(31)使用hadoop用户登录Linux系统,启动Hadoop(Hadoop的安装目次为“/usr/local/hadoop”),为hadoop用户在HDFS中创建用户目次“/user/hadoop”
(32)接着在HDFS的目次“/user/hadoop”下,创建test文件夹,并查看文件列表
(33)将Linux系统本地的“~/.bashrc”文件上传到HDFS的test文件夹中,并查看test
(34)将HDFS文件夹test复制到Linux系统本地文件系统的“/usr/local/hadoop”目次下
四、实验报告

4.1 实验环境

4.1.1硬件环境


  • 处理器:Intel(R) Core(TM) i5-11320H @ 3.20GHz
  • 内存:16GB DDR4
  • 硬盘:512GB SSD
  • 网络:1Gbps 以太网毗连
4.1.2软件环境


  • 操作系统:Ubuntu 16.04 LTS 64位
  • Linux 内核版本:4.15.0-20-generic
  • Hadoop 版本:2.7.1
  • Java 版本:Java SE 1.8.0_131 (由Oracle提供)
  • 虚拟化软件:Oracle VM VirtualBox 6.0.8
4.2 实验内容与完成环境

4.2.1熟悉常用的Linux操作:



  • cd命令:切换目次
(1)切换到目次“/usr/local”
  1. cd /usr/local
复制代码
【说明】:cd 是“change directory”(改变目次)的缩写,用于更改当前的工作目次。 /usr/local 是你要切换到的目标目次的绝对路径。
可以参考:【已办理】【Linux】cd 命令找不到文件夹的题目-CSDN博客 

(2)切换到当前目次的上一级目次
  1. cd ..
复制代码
【说明】: .. 是一个特别的目次名,表示当前目次的父目次。cd .. 这个命令由两部分组成,中间有一个空格,用于分隔命令 (cd) 和其参数 (..)。

(3)切换到当前登录Linux系统的用户的本身的主文件夹
  1. cd ~
复制代码
【说明】:~ 是一个符号,代表当前用户登录时的默认目次。 



  • ls命令:查看文件与目次
(4)查看目次“/usr”下的所有文件和目次
  1. ls /usr
复制代码
【说明】:ls: 列出当前目次下的文件和子目次。



  • mkdir命令:新建目次
(5)进入“/tmp”目次,创建一个名为“a”的目次,并查看“/tmp”目次下已经存在哪些目次
  1. cd /tmp
复制代码
  1. mkdir a
复制代码
  1. ls /tmp
复制代码
【说明】:-l:是一个选项,用于以长格式列出文件和目次的具体信息,包括权限、链接数、所有者、组、巨细、最后修改时间和文件名。/tmp:指定了要列出内容的目次路径。

(6)进入“/tmp”目次,创建目次“a1/a2/a3/a4” 
  1. cd /tmp
复制代码
  1. mkdir -p a1/a2/a3/a4
复制代码
  1. ls /tmp
复制代码
【说明】: 可以使用 mkdir -p 命令来一次性创建多级目次。-p 选项表示 “parents”,即创建所有必要的中间目次。



  • rmdir命令:删除空的目次
(7)将上面创建的目次a(在“/tmp”目次下面)删除
  1. cd /tmp
复制代码
  1. rmdir a
复制代码
  1. ls /tmp
复制代码
【说明】:可以使用 rmdir 命令来删除空目次。如果目次不为空,则无法删除。要先确保目次 a 是空的,然后使用命令。

(8)删除上面创建的目次“a1/a2/a3/a4” (在“/tmp”目次下面),然后查看“/tmp”目次下面存在哪些目次
  1. cd /tmp
复制代码
  1. rmdir -p a1/a2/a3/a4
复制代码
  1. ls /tmp
复制代码
【说明】:这个命令将会删除 a4 目次,如果 a3 目次在删除 a4 后也变成空的,那么 a3 也会被删除,依此类推。如果在这个过程中遇到任何一个非空目次,命令将会停止,并返回错误。 如果你想要删除一个可能包含文件或其他目次的目次树,你应该使用 rm -r 命令,而不是 rmdir。



  • cp命令:复制文件或目次
(9)将当前用户的主文件夹下的文件.bashrc复制到目次“/usr”下,并重命名为bashrc1
  1. cp ~/.bashrc /usr/bashrc1
复制代码
  1. ls /tmp
复制代码
【说明】: 使用 cp 命令来复制文件并重命名。请留意,这可能必要管理员权限,因为 /usr 目次通常必要特别权限才能写入。如果是普通用户,你可能必要在命令前加上 sudo 来执行。留意:在Linux的终端中输入暗码,终端是不会显示任何你当前输入的暗码,也不会提示你已经输入了多少字符暗码。

(10)在目次“/tmp”下新建目次test,再把这个目次复制到“/usr”目次下
写法一:
  1. mkdir /tmp/test && cp -r /tmp/test /usr/
复制代码
写法二:
  1. cd /tmp
  2. mkdir test
复制代码
  1. cp -r /tmp/test /usr/
复制代码
查看目次(主要是为了查验本身是否写对了):
  1. ls /tmp
复制代码
  1. ls /usr
复制代码
 【说明】: -r 或 --recursive:这个选项告诉 cp 命令递归地复制整个目次的内容,包括所有子目次和文件。



  • mv命令:移动文件与目次,或更名
(11)将“/usr”目次下的文件bashrc1移动到“/usr/test”目次下
  1. mv /usr/bashrc1 /usr/test/
复制代码
(12)将“/usr”目次下的test目次重命名为test2
  1. mv /usr/test /usr/test2
复制代码



  • rm命令:移除文件或目次
(13)将“/usr/test2”目次下的bashrc1文件删除
  1. rm /usr/test2/bashrc1
复制代码
(14)将“/usr”目次下的test2目次删除
  1. rm -r /usr/test2
复制代码
【说明】:rm删除单个文件或目次;rm -r 递归地删除目次及其包含的所有文件和子目次。



  • cat命令:查看文件内容
(15)查看当前用户主文件夹下的.bashrc文件内容
  1. cat ~/.bashrc
复制代码



  • tac命令:反向查看文件内容
(16)反向查看当前用户主文件夹下的.bashrc文件的内容
  1. tac ~/.bashrc
复制代码



  • more命令:一页一页翻动查看
(17)翻页查看当前用户主文件夹下的.bashrc文件的内容
  1. more ~/.bashrc
复制代码




  • head命令:取出前面几行
(18)查看当前用户主文件夹下.bashrc文件内容前20行
  1. head -n 20 ~/.bashrc
复制代码
(19)查看当前用户主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行
  1. head -n -50 ~/.bashrc
复制代码



  • tail命令:取出后面几行
(20)查看当前用户主文件夹下.bashrc文件内容最后20行
  1. tail -n 20 ~/.bashrc
复制代码
(21)查看当前用户主文件夹下.bashrc文件内容,而且只列出50行以后的数据
  1. tail -n +51 ~/.bashrc
复制代码



  • touch命令:修改文件时间或创建新文件
touch 命令可以用于创建一个空文件,如果文件已存在,则更新当时间戳。
(22)在“/tmp”目次下创建一个空文件hello,并查看文件时间
  1. touch /tmp/hello
复制代码
  1. ls -l /tmp/hello
复制代码
【说明】:


  • touch: 是用来修改文件时间戳的命令。
  • ls: 列出目次内容的命令。
  • -l: 长列表格式,显示更多具体信息。
  • /tmp/hello:这是你要修改时间戳的文件路径。

(23)修改hello文件,将文件时间整为5天前
  1. touch --date='5 days ago' /tmp/hello
复制代码
  1. ls -l /tmp/hello
复制代码



  • chown命令:修改文件所有者权限
(24)将hello文件所有者改为root帐号,并查看属性
  1. chown root:root /tmp/hello
复制代码
【已办理】 :易错点,文件路径前面没加斜杠/。
  1. ls -l /tmp/hello
复制代码


  • find命令:文件查找
(25)找出主文件夹下文件名为.bashrc的文件
  1. find ~ -name .bashrc
复制代码


  • tar命令:压缩命令
(26)在根目次“/”下新建文件夹test,然后在根目次“/”下打包成test.tar.gz
  1. mkdir /test && tar -czvf /test.tar.gz /test
复制代码
(27)把上面的test.tar.gz压缩包,解压缩到“/tmp”目次
  1. tar -xzvf /test.tar.gz -C /tmp
复制代码


  • grep命令:查找字符串
(28)从“~/.bashrc”文件中查找字符串'examples'
  1. grep 'examples' ~/.bashrc
复制代码


  • 配置环境变量
(29)请在“~/.bashrc”中设置,配置Java环境变量
  1. nano ~/.bashrc
复制代码


【已办理】【Hadoop】找到java环境路径-CSDN博客

  1. echo 'export JAVA_HOME=/path/to/java' >> ~/.bashrc
  2. echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
复制代码
 直接进入了?

 使文件收效?
  1. source ~/.bashrc
复制代码

(30)查看JAVA_HOME变量的值
  1. echo $JAVA_HOME
复制代码


4.2.2 熟悉常用的Hadoop操作

(31)使用hadoop用户登录Linux系统,启动Hadoop(Hadoop的安装目次为“/usr/local/hadoop”),为hadoop用户在HDFS中创建用户目次“/user/hadoop”
  1. cd /usr/local/hadoop
复制代码
  1. ./sbin/start-dfs.sh
复制代码
  1. ./sbin/start-yarn.sh
复制代码


  • 起首,确保你以hadoop用户登录到Linux系统。
  • 切换到Hadoop的安装目次:cd /usr/local/hadoop
  • 启动Hadoop的分布式文件系统(HDFS):./sbin/start-dfs.sh
  • 启动YARN资源管理器:./sbin/start-yarn.sh

【已办理】【Hadoop】【./bin的使用】bash: ./bin/hdfs: 没有那个文件或目次-CSDN博客
  1. hdfs dfs -mkdir /user/hadoop
复制代码

(32)接着在HDFS的目次“/user/hadoop”下,创建test文件夹,并查看文件列表
  1. hdfs dfs -mkdir /user/hadoop/test
复制代码
  1. hdfs dfs -ls /user/hadoop
复制代码


(33)将Linux系统本地的“~/.bashrc”文件上传到HDFS的test文件夹中,并查看test
  1. hdfs dfs -put ~/.bashrc /user/hadoop/test/
复制代码
  1. hdfs dfs -ls /user/hadoop/test
复制代码
写命令时留意!!末尾斜杠是否必要 。user照旧usr。单词之间是否有空格。

(34)将HDFS文件夹test复制到Linux系统本地文件系统的“/usr/local/hadoop”目次下
  1. hdfs dfs -copyToLocal /user/hadoop/test/.bashrc /usr/local/hadoop/
复制代码

4.3 出现的题目及办理方案

4.3.1熟悉常用的Linux操作中遇到的题目:

① 对软件不熟悉,重复创建虚拟机

办理方案:查抄资料,熟悉软件,正确地完成了配置。



② 在执行hdfs dfs -mkdir时出现权限错误。

办理方案:检查并确保使用的用户具有充足的权限来创建目次。


③ 在实验复制文件到HDFS时,操作未能成功。

办理方案:确认HDFS服务已启动,而且文件路径正确无误。



④ 在使用cd命令时,无法辨认某些目次路径。

办理方案:检查了路径是否正确,使用了绝对路径而不是相对路径。


⑤ 题目二:mkdir命令创建目次时提示权限不足。

办理方案:使用了sudo命令来获取管理员权限创建目次。


⑥ 使用rm命令删除文件时,提示文件正在使用中。

办理方案:起首确认没有其他进程正在使用该文件,然后使用fuser命令查找并终止相关进程,再次实验删除。


⑦ 在使用tar命令压缩文件时,压缩后的文件无法找到。

办理方案:检查了当前工作目次,确认压缩命令执行的路径,最终在正确的路径下找到了压缩文件。


4.3.2熟悉常用的Hadoop操作中遇到的题目:

⑧ Hadoop集群启动失败,NameNode无法正常启动。

办理方案:检查了NameNode的日志文件,发现是配置文件中的一处错误导致的。修正配置文件后,集群成功启动。


⑨ 在HDFS上创建文件时,出现“Permission denied”错误。

办理方案:检查了HDFS的权限设置,发现用户权限不足。调整了用户的权限后,题目办理。


⑩ MapReduce作业运行失败,日志中显示内存溢出。

办理方案:增长了MapReduce作业的内存配置,调整了mapred-site.xml中的mapred.child.java.opts参数,作业成功运行。


⑪ 使用hadoop fs -put命令上传文件到HDFS时,传输速率极慢。

办理方案:检查了网络毗连,发现网络带宽不足。优化了网络配置后,上传速率得到提升。

4.3.3未办理的题目:

① 在实验使用hadoop fs -get命令从HDFS下载文件到本地时,偶然会出现文件破坏的环境。

办理方案:尚未找到题目的根源,可能是HDFS上的文件系统不同等大概网络题目导致的。计划进一步检查HDFS的康健状况和网络稳固性。


② 在运行一个资源麋集型的MapReduce作业时,即使增长了内存配置,作业仍然频仍失败。

办理方案:尚未办理。正在思量是否是作业的代码逻辑存在题目,大概是Hadoop集群的其他配置必要优化。



一些翻译:
1. bin games include lib local sbin share src
        这些是常见的 Linux 文件系统目次名称,它们通常在 /usr/ 目次下找到,用于构造和存储不同范例的文件。下面是它们的英文翻译和扼要说明:


  • bin:Binary 的缩写,存放用户常用的可执行文件。
  • games:存放游戏相关的可执行文件和数据。
  • include:通常包含头文件,用于软件开辟。
  • lib:Library 的缩写,存放库文件,这些文件被系统或应用步伐用于功能扩展。
  • local:用于存放本地安装的步伐和文件。
  • sbin:System Binary 的缩写,存放系统管理员使用的可执行文件。
  • share:存放多个用户或多个步伐之间共享的数据。
  • src:Source 的缩写,存放源代码文件。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表