当前位置: 首页 > news >正文

《大数据技术原理与应用》实验报告一 熟悉常用的Linux操作和Hadoop操作

目  录

一、实验目的

二、实验平台

三、  实验内容和要求

1. 安装虚拟机

2. 熟悉常用的 Linux 命令

3. 进行 Hadoop 伪分布式安装

4. 熟悉常用的 Hadoop 操作

四、实验环境

五、实验内容与完成情况

1. 安装虚拟机

2. 熟悉常用的 Linux 命令

3. 进行 Hadoop 伪分布式安装

4. 熟悉常用的 Hadoop 操作

六、实验小结

1、问题和解决方法

2、心得体会


一、实验目的

        (1) 掌握 Linux 虚拟机的安装方法。 Hadoop  Linux 操作系统上运行可以发挥佳性能。鉴于目前很多读者正在使用 Windows 操作系统,因此为了完成的后续实验,这里有必要通过本实验让读者掌握在 windows 操作系统上 搭建 Linux 虚拟机的方法。

        (2) 握常用的 Linux 命令。本书的所有实验都在 Linux 操作系统中完成,因要读者熟悉一些常用的 Linux 命令。

        (3) 掌握 Hadoop 的伪分布安装方法。很多读者并不具备集群开发环境,而Hadoop 操作需要在一台机器是哪个模拟一个小的集群,因此需要通过本实让读者掌握在单机上进行 Hadoop 的伪分布式安装方法。

        (4) 掌握 Hadoop 的常用操作。熟悉使用一些基本的 Shell 命令对 Hadoop 进行操作,括创建目录、复制文件、查看文件。


二、实验平台

        •  操作系统: Windows 操作系统或者 Ubuntu 操作系统

        •  虚拟机软件:推荐使用的开源虚拟机软件为 VirtualBox。VirtualBox 是一功能强大的免费虚拟机软件, 不仅具有鲜明的特色、优异的性能,而且简用,可虚拟的操作系统包括 Windows、macOS、Linux、OpenBSD、Solaris、IBM OS2,甚至Android 4.0操作系统等。读者可以在Windows操作系统上安装Virtual Box ,然后在 VirtualBox 上安装并且运行 Linux 操作系统。本次实验默认的 Linux 发行版本为 Ubuntu 18.04 (或 Ubuntu 16.04)

        •  Hadoop 版本: 3.1.3。


  实验内容和要求

1. 安装虚拟机

        (1)如果读者正在使用 Linux 操作系统,可以跳过本步,不需要下载相关软件, 也不需要安 Linux 虚拟机;如果读者正在使用 Windows 操作系统,则需要在 Windows 操作统行安装 Linux 虚拟机,这里就要下载VirtualBox 软件和Ubuntu 18.04 (或 Ubuntu 16.04)镜像文件。

        ① VirtualBox 软件的下载地址:

https://download.virtualbox.org/virtualbox/6.1.4/VirtualBox- 6.1.4-136177-Win.exe

        ② Ubuntu 18.04 的镜像文件下载地址:

Download Ubuntu Desktop | Ubuntu

        ③ Ubuntu 16.04 的镜像文件下载地址:

Ubuntu中文论坛 - 首页

        (2)首先在 Windows 操作系统上安装虚拟机软 VirtualBox;其次在虚拟机软件上安装 Ubuntu 18.04 (或 Ubuntu 16.04)操作系统。具体安装方法,可 参考网络资料也可以参考本书官网 (http://dblab.xmu.edu.cn/post/ bigdata3/)的“教材配套大数据软件安装和程实践指南”栏目。

2. 熟悉常用的 Linux 命令

        (1) cd 命令:切换目录

 切换到目录 “/usr/local

 换到当前目录的上一级目录

 切换到当前登录 Linux 系统的用户的自己的主文件夹

        (2) ls 命令:查看文件与目录

查看目录“/usr”下的所有文件和目录

        (3) mkdir 命令:新建目录

 进入 “/tmp” 目录, 创建一个名为 “a”的目录, 并查看 “/tmp” 目录下已经存在哪些目录

 进入 “/tmp” 目录,创建目录 “a1/a2/a3/a4”

        (4) rmdir 命令:删除空的目录

 将上面创建的目录 a (在 “/tmp” 目录下面)删除。

 上面创建的目录 “a1/a2/a3/a4” (在 “/tmp” 目录下面),然后查  “/tmp” 目录下面存在哪些目录

        (5) cp 命令:复制文件或目录

 将当前用户的主文件夹下的文件.bashrc 复制到目录 “/usr”下,并重 命名为 bashrc1

 在目录 “/tmp”下新建目录 test,再把这个目录复制到 “/usr” 目录下

        (6) mv 命令:移动文件与目录,或更名

  “/usr” 目录下的文件 bashrc1 移动到 “/usr/test” 目录下

  “/usr” 目录下的 test 目录重命名为 test2

        (7) rm 命令:移除文件或目录

  “/usr/test2” 目录下的 bashrc1 文件删除

  “/usr” 目录下的 test2 目录删除

        (8) cat 命令:查看文件内容

查看当前用户主文件夹下的.bashrc 文件内容

        (9) tac 命令:反向查看文件内容

反向查看当前用户主文件夹下的.bashrc 文件的内容

        (10) more 命令:一页一页翻动查看

翻页查看当前用户主文件夹下的.bashrc 文件的内容

        (11) head 命令:取出前面几行

 查看当前用户主文件夹下.bashrc 文件内容前 20 

 查看当前用户主文件夹下.bashrc 文件内容,后面 50 行不显示,只显 示前面几

        (12) tail 命令:取出后面几行

 查看当前用户主文件夹下.bashrc 文件内容最后 20 

 查看当前用户主文件夹下.bashrc 文件内容,并且只列出 50 行以后的数据

        (13) touch 命令:修改文件时间或创建新文件

  “/tmp” 目录下创建一个空文件 hello,并查看文件时间

 修改 hello 文件,将文件时间整为 5 天前

        (14) chown 命令:修改文件所有者权限

 hello 文件所有者改为 root 帐号,并查看属性

        (15) find 命令:文件查找

找出主文件夹下文件名为.bashrc 的文件

        (16) tar 命令:压缩命令

 在根目录 “/”下新建文件夹 test ,然后在根目录 “/”下打包成 test.tar.gz

 把上面的 test.tar.gz 压缩包,解压缩到 “/tmp 目录

        (17) grep 命令:查找字符串

从“~/.bashrc”文件中查找字符串'examples'

        (18) 配置环境变

 请在“~/.bashrc” 中设置, 配置 Java 环境变量。首先, 使用 vim  辑器打开文件 “~/.bashrc”。

 查看 JAVA_HOME 变量的

3. 进行 Hadoop 伪分布式安装

        访问 hadoop 官网(http://Hadoop.apache.org/) ,下载 hadoop 安装文件 hadoop-3.1.3.tar.gz。在 Linux 虚拟机环境下完成 Hadoop 伪分布式环境的搭 建,并运行 hadoop 自带的 WordCount 实例检测是否运行正常。具体安装方法可参考网络资料,也可以参考本书官网的“教材配套大数据软件安装和编程实践指南”

4. 熟悉常用的 Hadoop 操作

        (1) 使用 hadoop 用户登录 Linux 系统启动 Hadoop  ( Hadoop 的安装目录为  “/usr/local/hadoop”),为 hadoop 用户在 HDFS 中创建用户目“/user/  hadoop

        (2) 着在 HDFS 的目录 “/user/hadoop”下, 创建 test 文件夹,并查看文件 

        (3)  Linux 系统本地的“~/.bashrc”文件上传到 HDFS  test 文件夹中,并查看 test

        (4) 将HDFS 文件夹 test 复制到 Linux 系统本地文件系统的 /usr/local/ hadoop”目录下。


四、实验环境

        •  操作系统: Windows 操作系统。

        •  虚拟机软件:VMware、Linux、 Linux 发行版本为 Ubuntu 18.04。

        •  Hadoop 版本:3.1.3。


五、实验内容与完成情况

1. 安装虚拟机

        (1)在浏览器中输入网址“https://customerconnect.vmware.com/en/downloads/info/slug/ desktop_end_user_computing/vmware_workstation_pro/16_0”进行VMware软件的下载以及安装。

        (2)双击应用程序后点击下一步。

        (3)勾选接受协议后点击下一步。

        (4)进行安装位置更改后点击安装。

        (5)双击打开VMware后创建虚拟机。

        (6)虚拟机创建完毕后进入虚拟机进行JDK的安装。

2. 熟悉常用的 Linux 命令

        (1) cd 命令:切换目录
        ① 切换到目录 “/usr/local”

cd /usr/local

          ② 切换到当前目录的上一级目录

cd ..

        ③ 切换到当前登录 Linux 系统的用户的自己的主文件夹

cd ~

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

cd /usr
ls -all

        (3) mkdir 命令:新建目录
        ① 进入 “/tmp” 目录, 创建一个名为 “a”的目录, 并查看 “/tmp” 目录下已经存在哪些目录

cd /tmp
mkdir a
ls -all

        ② 进入 “/tmp” 目录,创建目录 “a1/a2/a3/a4”

cd /tmp
mkdir -p a1/a2/a3/a4

         (4) rmdir 命令:删除空的目录
        ① 将上面创建的目录 a (在 “/tmp” 目录下面)删除。

cd /tmp
rmdir a

        ② 删除上面创建的目录 “a1/a2/a3/a4” (在 “/tmp” 目录下面),然后查 看 “/tmp” 目录下面存在哪些目录

cd /tmp
rmdir -p a1/a2/a3/a4
ls -all

        (5) cp 命令:复制文件或目录
        ① 将当前用户的主文件夹下的文件.bashrc 复制到目录 “/usr”下,并重 命名为 bashrc1

sudo cp ~/.bashrc /usr/bashrc1

         ② 在目录 “/tmp”下新建目录 test,再把这个目录复制到 “/usr” 目录下

cd /tmp
mkdir test
sudo cp -r /tmp/test /usr

        (6) mv 命令:移动文件与目录,或更名
        ① 将 “/usr” 目录下的文件 bashrc1 移动到 “/usr/test” 目录下

sudo mv /usr/bashrc1 /usr/test

        ② 将 “/usr” 目录下的 test 目录重命名为 test2

sudo mv /usr/test /usr/test2

        (7) rm 命令:移除文件或目录
        ① 将 “/usr/test2” 目录下的 bashrc1 文件删除

sudo rm /usr/test2/bashrc1

        ② 将 “/usr” 目录下的 test2 目录删除

sudo rm -r /usr/test2

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

cat ~/.bashrc

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

tac ~/.bashrc

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

more ~/.bashrc

        (11) head 命令:取出前面几行
        ① 查看当前用户主文件夹下.bashrc 文件内容前 20 行

head -n 20 ~/.bashrc

        ② 查看当前用户主文件夹下.bashrc 文件内容,后面 50 行不显示,只显 示前面几行

head -n -50 ~/.bashrc

        (12) tail 命令:取出后面几行
        ① 查看当前用户主文件夹下.bashrc 文件内容最后 20 行

tail -n 20 ~/.bashrc

        ② 查看当前用户主文件夹下.bashrc 文件内容,并且只列出 50 行以后的数据

tail -n +50 ~/.bashrc

        (13) touch 命令:修改文件时间或创建新文件
        ① 在 “/tmp” 目录下创建一个空文件 hello,并查看文件时间

cd /tmp
touch hello
ls -l hello

        ② 修改 hello 文件,将文件时间整为 5 天前

touch -d “5 days ago” hello

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

sudo chown root /tmp/hello
ls -l /tmp/hello

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

find ~ -name .bashrc

        (16) tar 命令:压缩命令
        ① 在根目录 “/”下新建文件夹 test ,然后在根目录 “/”下打包成 test.tar.gz

sudo mkdir /test
sudo tar -zcv -f /test.tar.gz test

        ② 把上面的 test.tar.gz 压缩包,解压缩到 “/tmp” 目录

sudo tar -zxv -f /test.tar.gz -C /tmp

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

grep -n 'examples' ~/.bashrc

        (18) 配置环境变量
        ① 请在“~/.bashrc” 中设置, 配置 Java 环境变量。首先, 使用 vim 编 辑器打开文件“~/.bashrc”。

vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
source ~/.bashrc

        ② 查看 JAVA_HOME 变量的值

echo $JAVA_HOME

3. 进行 Hadoop 伪分布式安装

        (1)访问 hadoop 官网(http://Hadoop.apache.org/) ,下载 hadoop 安装文件 hadoop-3.1.3.tar.gz。

        (2)在 Linux 虚拟机环境下进行压缩包的解压及安装,最后进行core-site.xml文件内部配置的修改。

        (3)在 Linux 虚拟机环境下进行压缩包的解压及安装,最后进行hdfs-site.xml文件内部配置的修改。

        (4)配置信息修改后对文件进行初始化操作。

        (5)初始化成功以后进行HDFS的启动,然后输入jps指令查看所有的java进程。

        (6)访问Web网页来查看Hadoop的信息。

4. 熟悉常用的 Hadoop 操作

        (1)使用 hadoop 用户登录 Linux 系统,启动 Hadoop  ( Hadoop 的安装目录为  “/usr/local/hadoop”),为 hadoop 用户在 HDFS 中创建用户目“/user/  hadoop”。

cd /usr/local/hadoop
./sbin/start-dfs.sh
./bin/hdfs dfs -mkdir -p /user/hadoop

        (2)接着在 HDFS 的目录 “/user/hadoop”下, 创建 test 文件夹,并查看文件 列表。

cd /usr/local/hadoop
./bin/hdfs dfs -mkdir test
./bin/hdfs dfs -ls

        (3)将 Linux 系统本地的“~/.bashrc”文件上传到 HDFS 的 test 文件夹中,并查看 test。

cd /usr/local/hadoop
./bin/hdfs dfs -put ~/.bashrc test
./bin/hdfs dfs -ls test

        (4)将HDFS 文件夹 test 复制到 Linux 系统本地文件系统的 “/usr/local/ hadoop”目录下。

cd /usr/local/hadoop
./bin/hdfs dfs -get test ./


六、实验小结

1、问题和解决方法

        (1)实验问题:Hadoop无法启动或启动失败

解决方法:检查Hadoop配置文件中的路径和参数设置,确保正确设置以及文件的可访问性对配置文件进行修改后对应问题得到解决。

        (2)实验问题:Hadoop的任务无法运行或失败

解决方法:检查任务配置文件中的输入输出路径是否正确,并确保输入数据存在更改输入输出路径后问题得到解决

        (3)实验问题:执行命令时提示"命令未找到"

解决方法:确保命令拼写正确,并检查命令是否安装在系统路径中。可以使用which命令来确定命令的路径,并将其添加到系统路径中

        (4)实验问题:没有足够的权限执行某个命令

解决方法:尝试使用sudo命令以管理员权限运行命令,或者联系系统管理员赋予所需的权限

        (5)实验问题:Hadoop集群的节点之间无法通信

解决方法:检查网络设置,确保集群节点之间可以相互访问。还可以尝试使用telnet命令来测试节点之间的连接进而避免错误的出现。

        (6)实验问题:怎样在后台运行命令

解决方法:使用&符号将命令置于后台运行,或者可以使用nohup命令将命令与文件描述符0(标准输入)断开连接,以允许在终端会话结束后继续运行

        (7)实验问题:执行命令时遇到文件或目录不存在的错误

解决方法:确保输入的文件或目录路径正确,并且对其具有适当的权限。可以使用ls命令来查看文件或目录是否存在

        (8)实验问题:需要查找包含特定文本的文件

解决方法:可以使用grep命令来在文件中搜索特定文本。例如,grep "keyword" filename将在给定的文件中查找匹配的关键字

        (9)实验问题:Hadoop的性能较低

解决方法:可以调整Hadoop配置文件中的参数,如调整内存分配、调整并发任务数等还可以考虑增加集群的节点数以提高处理能力

        (10)实验问题:操作系统空间不足

解决方法:使用df命令查看磁盘空间的使用情况,并删除不必要的文件或移动它们到另一个磁盘

        (11)实验问题:删除文件或目录时出错,提示权限不足

解决方法:确保具有删除文件或目录的权限。如果是目录,则使用rm -r命令以递归方式删除整个目录及其内容

        (12)实验问题:了解命令的使用方法和参数

解决方法:使用man命令(例如:man command)来获取命令的手册页,并了解命令的使用方法和参数

        (13)实验问题:在多个文件之间复制、移动或重命名

解决方法:使用cp命令进行文件复制,mv命令进行文件移动和重命名。确保给出正确的源文件路径和目标路径

        (14)实验问题:创建一个新的空文件

解决方法:使用touch命令创建一个新的空文件。例如,touch filename将创建一个名为Filename的空文件

        (15)实验问题:Hadoop的数据丢失或损坏

解决方法:设置适当的数据备份策略,如使用HDFS的副本功能来备份数据。此外,定期进行数据备份和恢复测试,以确保数据的完整性

        (16)实验问题:忘记了当前工作目录的路径

解决方法:使用pwd命令查看当前工作目录的路径

        (17)实验问题:打算执行的命令使用了很长的参数

解决方法:编写一个脚本文件,在脚本中定义命令和参数,并用chmod命令添加可执行权限,然后直接执行脚本

        (18)实验问题:需要查看文件的前几行或后几行

解决方法:使用head命令查看文件的前几行,使用tail命令查看文件的后几行

        (19)实验问题:需要将命令的输出结果保存到文件中

解决方法:使用重定向操作符>将命令输出写入文件

        (20)实验问题:实时监视文件的变化

解决方法:可以使用tail -f命令实时监视文件的变化。该命令会自动刷新并显示文件的新增内容

        (21)实验问题:查找文件或目录的权限信息

解决方法:使用ls -l命令可以列出文件和目录的详细信息,包括权限信息、所有者和大小等

        (22)实验问题:压缩或解压缩文件

解决方法:使用tar命令进行文件压缩和解压缩。例如,使用tar -czvf archive.tar.gz directory可以将一个目录压缩为.tar.gz文件

        (23)实验问题:在多个命令之间执行逻辑操作

解决方法:使用逻辑运算符,如&&和||。command1 && command2表示只有当command1成功执行后,才会执行command2。而command1 || command2表示只有当command1执行失败后,才会执行command2

        (24)实验问题:需要在文件中替换特定文本

解决方法:使用sed命令进行文本替换。例如,sed 's/a/b/g' filename将文件中所有出现的"a"替换为"b"

        (25)实验问题:快速访问最近使用的命令

解决方法:使用命令历史和快捷键。按下上箭头键可以在命令历史中向上导航,并按下回车键执行选中的命令。使用Ctrl + R可以进行反向搜索并执行最近使用的命令

        (26)实验问题:无法连接到互联网、网络速度缓慢Wi-Fi连接时出现问题

解决方法:检查网络设置,确保已正确配置IP地址和网关。如果使用的是Wi-Fi连接,检查是否已正确输入密码,并尝试重新启动网络管理器服务来重置网络配置

        (27)实验问题:应用程序崩溃或卡死

解决方法:由于库依赖错误、磁盘空间不足损坏的配置文件导致的。重装应用程序后问题得到解决

        (28)实验问题:解决ERROR: Attempting to operate on hdfs namenode as root

解决方法:在环境变量中添加下面的配置后错误消失。

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

2、心得体会

        (1)熟悉常见的Linux命令对于操作系统的使用至关重要,通过实践和练习,掌握了许多不同的Linux命令,并意识到了它们对于管理和操作系统的重要性

        (2)使用man命令来查阅命令的手册页是解决问题的有效方式,手册页提供了命令的详细使用方法和参数说明,通过仔细阅读手册页,我能够更好地理解命令的功能和用法

        (3)合理使用权限管理命令,可以确保系统的安全性

        (4)使用chmod和chown等命令来管理文件和目录的权限和所有者

        (5)通过使用>、>>和|等操作符,我可以将命令的输出导入到文件中,或者将多个命令连接起来以实现更复杂的数据流操作

        (6)通过使用ls、cp、mv和rm等命令,我能够快速查看、复制、移动和删除文件,使文件管理变得更加高效

        (7)通过使用grep、sed和awk等命令,我能够快速搜索、替换和提取文本文件中的内容,提高了对文本数据的处理能力

        (8)通过使用tar和gzip等命令,我可以将文件和目录压缩为一个文件,节省存储空间,并在需要时轻松解压缩

        (9)通过使用find和locate等命令,我能够在文件系统中快速定位并找到我需要的文件,节省了查找的时间和精力

        (10)通过编写脚本文件,我可以批量执行一系列命令,从而完成重复性的任务,大大提高了工作效率

        (11)使用rsync和cp等命令,我可以及时备份重要文件,以防数据丢失,保障数据的安全性

        (12)使用top、htop和df等命令,我可以实时监控系统的CPU、内存和磁盘使用情况,及时调整系统配置

        (13)使用命令历史和快捷键,我可以快速访问最近使用的命令,提高了操作的便捷性和效率

http://www.lryc.cn/news/587795.html

相关文章:

  • .NET控制台应用程序中防止程序立即退出
  • 2025年大数据、建模与智能计算国际会议(ICBDMIC 2025)
  • spring-ai-alibaba 接入Tushare查询股票行情
  • 【C++进阶】---- 多态
  • SpringBoot3整合“Spring Security+JWT”快速实现demo示例与Apifox测试
  • 鸿蒙开发NDK之---- 如何将ArkTs的类型转化成C++对应的类型(基础类型,包含部分代码解释)
  • 系统化构建产品开发体系
  • androidstudio 高低版本兼容
  • 机构参与度及其Python数据获取示例
  • 迁移学习:知识复用的智能迁移引擎 | 从理论到实践的跨域赋能范式
  • 【Canvas与五星】六种五星画法
  • MIPI DSI (一) MIPI DSI 联盟概述
  • 【leetcode】231. 2的幂
  • ASP.NET Core中数据绑定原理实现详解
  • Android模块化架构:基于依赖注入和服务定位器的解耦方案
  • iOS如何查看电池容量?理解系统限制与开发者级能耗调试方法
  • H.264编解码(NAL)
  • 前端docx库实现将html页面导出word
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 文档处理控件Aspose.Words教程:从 C# 中的 Word 文档中提取页面
  • 【飞牛云fnOS】告别数据孤岛:飞牛云fnOS私人资料管家
  • Python爬虫实战:研究PyMongo库相关技术
  • crawl4ai--bitcointalk爬虫实战项目
  • 嵌入式硬件篇---ne555定时器
  • 嵌入式硬件篇---晶体管的分类
  • Android 中 实现格式化字符串
  • Selenium动态网页爬虫编写与解释
  • 【Linux】Jenkins Lts 配置构建 Maven 项目
  • C++之哈希表的基本介绍以及其自我实现(开放定址法版本)
  • Maven 依赖原则和依赖冲突