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

“大数据技术原理与应用” 课程实验报告

hadoop官网:https://hadoop.apache.org/

题目

熟悉常用的Linux操作和Hadoop操作

实验环境

Ubuntu 18.04

在这里插入图片描述

实验内容

熟悉常用的Linux命令

  1. 使用 cd 命令 :切换目录
    切换到目录 “/usr/local”
    切换到当前目录的上一级目录
    切换到当前登录Linux操作系统的用户的自己的文件夹

这里我现在的用户是root用户,方便进行后续的操作
在这里插入图片描述
2. ls命令 :查看文件与目录
查看目录 “/usr” 下的所有文件与目录
两种方式,一种是先进入/usr目录然后使用ls,或者直接使用ls命令
在这里插入图片描述

  1. mkdir命令:新建文件与目录
    进入 “/tmp” 目录,创建一个名为 “a” 的目录,并查看 “/tmp” 目录下已经存在的那些目录
    进入“/tmp” 目录,创建目录 “a1/a2/a3/a4”
    在这里插入图片描述
    在这里插入图片描述

  2. rmdir命令 :删除空目录
    将上面创建的目录 a 删除
    删除上面创建的目录 ”a1/a2/a3/a4“ ,然后查看 ”/tmp“ 目录下面存在那些目录
    在这里插入图片描述

  3. cp 命令: 复制文件或目录
    将当前用户的主文件夹下的文件.bashrc复制到目录 ”/usr“ 下,并重命名为bashrcl。
    在目录 ”/tmp“下新建目录test,再把这个目录复制到 “/usr” 目录下。

    (这里使用cp复制目录的时候需要指定参数-r)在这里插入图片描述

  4. mv 命令:移动文件与目录,或更名
    ①将“/usr”目录下的文件 bashrcl 移动到 “/usr/test” 目录下。
    ②将“/usr”目录下的 test 目录重命名为 test2。
    在这里插入图片描述

  5. rm 命令:移除文件或目录。
    ①将“usr/test2” 目录下的 bashrcl 文件删除。
    ②将“/usr”目录下的 test2 目录删除。
    在这里插入图片描述

  6. cat命令:查看文件内容。
    查看当前用户主文件夹下的.bashrc 文件内容。
    在这里插入图片描述

  7. tac 命令:反向查看文件内容。
    反向查看当前用户主文件夹下的.bashrc 文件的内容。
    在这里插入图片描述

  8. more 命令:一页一页翻动查看。
    翻页查看当前用户主文件夹下的.bashrc 文件的内容。
    在这里插入图片描述

  9. head 命令:取出前面几行。
    ①查看当前用户主文件夹下 .bashrc 文件内容前20行。
    ② 查看当前用户主文件夹下.bashrc文件内容,后面 50行不显示,只显示前面几行。

  10. tail命令:取出后面几行。
    ①查看当前用户主文件夹下.bashrc文件内容最后 20行。
    ② 查看当前用户主文件夹下.bashrc 文件内容,并且只列出 50行以后的数据。
    在这里插入图片描述
    在这里插入图片描述

  11. touch 命令:修改文件时间或创建新文件。
    ①在“/tmp”目录下创建一个空文件 hello,并查看文件时间。
    ② 修改hello 文件,将文件时间修改为5 天前。
    在这里插入图片描述

  12. chown 命令:修改文件所有者权限。
    将hello 文件所有者改为root,并查看属性。
    在这里插入图片描述

  13. find 命令:文件查找。
    找出主文件夹下文件名为.bashrc 的文件。
    在这里插入图片描述

  14. tar 命令:压缩命令。
    ①在根目录“/”下新建文件实test,然后在根目录“/’下打包成test .tar. gz。
    ② 把上面的 test.tar.gz 压缩包,解压缩到“/tmp”目录
    在这里插入图片描述

  15. grep 命令:查找宇符串。
    从 "~/bashre"文件中查找字符串’examples’
    在这里插入图片描述

  16. 配置环境变量。
    ①请在"~/.bashre"中设置,配置 Java 环境变量。
    ② 查看JAVA _HOME 变量的值

    安装Java

    apt install openjdk-8-jdk-headless

    查看java安装的位置为/usr/lib/jvm/java-8-openjdk-amd64
    在这里插入图片描述

配置环境变量
使用命令打开文件

vim ~/.bashrc

然后在文件末端加入 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
在这里插入图片描述

保存后退出,使用命令source ~/.bashrc使配置生效
输入$JAVA_HOME查看是否配置成功
在这里插入图片描述

安装Hadoop

安装ssh服务端
apt-get install openssh-server

配置免密登录

cd ~/.ssh
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
安装Java环境并设置环境变量

上面已经安装了java环境了,就不再进行安装了

进行环境变量的配置
使用命令vim ~/.bashrc打开文件,然后在末端写入
在这里插入图片描述
保存后退出,使用命令source ~/.bashrc加载配置,使配置生效

安装单机Hadoop

下载hadoop

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz

解压

tar -zxvf hadoop-3.3.2.tar.gz

查看hadoop版本
bin/hadoop version
在这里插入图片描述
在hadoop目录下新建input目录,用来存放数据,并将etc/hadoop目录下的配置文件放入input目录下

在这里插入图片描述
查看可运行的测试用例为hadoop-mapreduce-examples-3.3.2.jar
在这里插入图片描述
运行并查看结果

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar grep input/ output ‘dfs[a-z.]+’
cat output/*

hadoop伪分布式安装

修改hadoop配置

vim etc/hadoop/core-site.xml

<configuration>
  <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/root/rDesk/hadoop-3.3.2/tmp</value>
          <description>Abase for other temporary directories.</description>
  </property>
  <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
  </property>
</configuration>

vim etc/hadoop/hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/root/rDesk/hadoop-3.3.2/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/root/rDesk/hadoop-3.3.2/tmp/dfs/data</value>
        </property>
</configuration>

对于hdfs-site.xml文件,replication设置为1是Hadoop运行的默认最小值,限制了HDFS中同一份数据的副本数量,由于该伪分布式,集群中只有一个节点,因此replication也只能设置为1.

初始化文件系统

bin/hdfs namenode -format

在这里插入图片描述
初始化成功后启动HDFS
(若是出现问题可看下面出现问题目录内的内容)

sbin/start-dfs.sh
在这里插入图片描述

在HDFS中创建一个目录
在这里插入图片描述
新建一个input目录
在这里插入图片描述
将etc/hadoop/下的所有xml文件上传到input目录

bin/hdfs dfs -put etc/hadoop/*.xml /root/inpu

在这里插入图片描述
再次执行样例并使用在HDFS内创建的input目录内容进行计算,输出到HDFS文件的/root/output目录内

bin/hadoop jar /root/rDesk/hadoop-3.3.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar grep /root/input /root/output ‘dfs[a-z.]+’

查看计算结果

bin/hdfs dfs -cat /root/output/*

在这里插入图片描述
运行wordcount

bin/hadoop jar /root/rDesk/hadoop-3.3.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar wordcount /root/input /root/output

停止运行HDFS

sbin/stop-dfs.sh

在这里插入图片描述


出现的问题

but there is no HDFS_NAMENODE_USER defined. Aborting operation.

在启动hadoop时出现错误,显示没有对应的NAMENODE_USER,DATANODE_USER,等
问题截图
在这里插入图片描述
问题解决
打开sbin/start-dfs.sh,进行编辑

vim sbin/start-dfs.sh

在头部插入

HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述

JAVA_HOME is not set and could not be found.

启动sbin/start-hdfs.sh报错
在这里插入图片描述
hadoop内的java环境变量没有设置好。

问题解决
打开hadoop-env.sh进行配置

vim etc/hadoop/hadoop-env.sh

找到JAVA_HOME位置,并改为自己设备内对应的java环境变量位置
在这里插入图片描述

执行sbin/stop-dfs.sh时出现Attempting to operate on hdfs namenode as root…

问题截图:
在这里插入图片描述

问题解决

编辑sbin/stop-dfs.sh文件

vim sbin/stop-dfs.sh

在头部加入

HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述
然后再运行sbin/stop-dfs.sh即可
在这里插入图片描述

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值