0


大数据实战平台环境搭建

大数据实战平台环境搭建

一、创建 Hadoop 用户

1、创建 Hadoop 用户,输入最开始的密码
在这里插入图片描述

图1:创建 Hadoop 用户

打开Ubuntu终端Terminal运行sudo useradd -m hadoop -s /bin/bash用于创建用户,系统需要等待我们输入密码(注意的是Ubuntu终端输入密码是不会显示的)。输入完密码后重新弹出nuyoah@nuyoah-VirtualBox:-$这个才算创建成功。

2、设置Hadoop账户密码
在这里插入图片描述

图2:设置Hadoop账户密码

在Ubuntu终端输入sudo passwd hadoop为Hadoop账号设置账号密码,通过输入和确认密码完成对于Hadoop账号密码的设置。

3、赋权
在这里插入图片描述

图3:为Hadoop用户赋权

在Ubuntu终端输入sudo adduser hadoop sudo为Hadoop用户赋权

二、更新apt和安装Vim编辑器

1、切换Hadoop用户,并输入密码
在这里插入图片描述

图4:切换Hadoop用户,并输入密码

在Ubuntu终端输入su hadoop切换成hadoop用户。
(必须切换到hadoop用户,不然后面会有问题。)

2、更新 apt
在这里插入图片描述

图5:更新apt

首先要确认已经切换到了hadoop用户,接着在终端输入sudo apt-get update使得hadoop用户更新apt,为接下来下载vim做准备。

3、安装 vim 编辑器
在这里插入图片描述

图6:安装vim编译器

在终端输入sudo apt-get install vim下载vim编译器。(vim编译器的作用:创建、维护或修改文本文件,维护Linux系统中的各种配置文件。)
当出现Do you want to continue?的时候需要我们输入y进行确认。(这里大小写都可以。)

在这里插入图片描述

图7:vim编译器安装完成

三、安装 SSH 和配置 SSH 无密码登录

1、安装 SSH 服务端
在这里插入图片描述

图8:安装 SSH 服务端

在终端输入sudo apt-get install openssh-server安装openssh。(OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。)
当出现Do you want to continue?的时候需要我们输入y进行确认。(这里大小写都可以。)

在这里插入图片描述

图9: SSH 服务端安装完成

2、登录本机
在这里插入图片描述

图10:登录本机

在终端输入ssh localhost请求登录本机。注意这里的确认要填的是yes。

在这里插入图片描述

图11:输入hadoop用户密码

在这里插入图片描述

图12:成功登录本机

3、配置无密码登录
在这里插入图片描述

图13:退出openssh并进去ssh文件夹

在终端输入exit退出openssh,当出现Connection to localhost closed.表示成功退出openssh。接着在终端输入cd ~/.ssh/进入ssh文件夹内。

在这里插入图片描述

图14:生成密钥并保存

在终端输入ssh-keygen -t rsa生成密钥,接着要等相关指令出来后按enter回车键(一共三次)。完成后我们能看到密钥和公钥都保存在了/home/hadoop/.ssh/里面。

在这里插入图片描述

图15:查看/.ssh下的文件

在终端输入ll查看/.ssh下的所有文件,确保密钥和公钥都保存在了这里。

4、确认配置成功
在这里插入图片描述

图16:确认配置成功

在终端输入cat ./id_rsa.pub >> ./authorized_kays加入授权,接着输入ssh localhost测试无密码登录ssh,最后输入exit退出ssh。

四、安装 Java

1、拖拽安装包到 downloads
在这里插入图片描述

图17:将下载好的安装包拖拽到 Downloads

在这里插入图片描述

图18:成功拖拽安装包到 Downloads

2、Hadoop用户下进入Downloads文件夹
在这里插入图片描述

图19:查看Downloads文件夹位置

注意要在Hadoop用户下进入Downloads。(在Ubuntu终端输入su hadoop切换成hadoop用户。)
我这里是将安装包保存在nuyoah/Downloads下。(注意nuyoah是我最开始设置的用户名)通过终端输入ll查看downloads文件夹位置。

在这里插入图片描述

图20:进入Downloads文件夹

进入Downloads文件夹后,在终端输入ll确认Downloads文件夹有刚刚拖进来的安装包。

3、创建jvm文件夹
在这里插入图片描述

图21:创建jvm文件夹

在终端输入sudo mkdir /usr/lib/jvm创建jvm文件夹。(出现Permission denied错误表示要在指令前加“sudo”。)

4、将:JDK安装包复制到 jvm 文件夹下
在这里插入图片描述

图22:将:JDK安装包复制到 jvm 文件夹

在终端输入sudo cp jdk-8u211-linux-x64.gz /uer/lib/jvm复制JDK安装包到 jvm 文件夹,其中sudo是给权限,cp是复制,jdk-8u211-linux-x64.gz是要复制的文件名,/uer/lib/jvm是要复制到的路径。在终端输入cd /uer/lib/jvm以及ll到目标文件夹下查看是否完成复制。

5、解压
在这里插入图片描述

图23:解压jdk

在终端输入sudo tar -zxvf ./jdk-8u211-linux-x64.gz -C /uer/lib/jvm解压指令对jdk文件解压。(-zxvf :z代表gzip的压缩包;x代表解压;v代表显示过程信息;f代表后面接的是文件)
需要记住jdk1.8.0_211/这个文件夹,后面环境配置时需要。

在这里插入图片描述

图24:解压完成

在这里插入图片描述

图25:确认解压是否成功

在终端输入cd jdk1.8.0_211/进入该文件夹确认解压是否成功,如果该文件夹为空则前面某一步有问题导致解压不成功,反之则为解压成功。
6、配置环境变量
在这里插入图片描述

图26:进入环境变量配置

在终端输入cd …返回上一级文件夹,再输入vim ~/.bashrc进入环境变量配置。

在这里插入图片描述

图27:进入环境变量

进入环境变量,此时补课编辑,只可查看。需要按“i”进入 insert 模式。

在这里插入图片描述

图28:配置环境变量

在这里插入图片描述

图29:按 ESC 保存,然后 shift+:wq

按 ESC 保存,然后 shift+:wq退出环境配置。

在这里插入图片描述

图30:确认jdk安装成功

在终端输入source ~/.bashrc激活刚刚配置的环境变量,接着在终端输入java -version查看java版本,确认jdk安装成功。

五、安装单机 Hadoop

1、确认文件及文件夹
在这里插入图片描述

图31:确认文件及文件夹

在终端进入Downloads文件夹确认hadoop的安装包在该文件夹内。

2、解压安装包到/usr/local下
在这里插入图片描述

图32:解压安装包到/usr/local

在终端输入sudo tar -zxvf hadoop-3.1.3.tar.gz -C /uer/local解压指令对hadoop文件解压。(-zxvf :z代表gzip的压缩包;x代表解压;v代表显示过程信息;f代表后面接的是文件)

在这里插入图片描述

图33:解压完成

Hadoop安装包解压完成,其中hadoop-3.1.3/是解压后的文件夹的名称。

3、修改目录名及目录权限
在这里插入图片描述

图34:修改目录名及目录权限

在终端输入cd /uer/local进入local文件夹,通过ll查看改文件夹内的文件。为了方便,通过输入sudo mv ./hadoop-3.1.3/ ./hadoop将文件夹hadoop-3.1.3的名字改成了hadoop。通过输入sudo chown -R hadoop ./hadoop修改权限。

4、查看版本信息
在这里插入图片描述

图35:查看版本信息

在终端输入cd hadoop/进入hadoop文件夹,再输入./bin/hadoop version查看版本信息。

5、测试
在这里插入图片描述

图36:复制文件到新建文件夹input内

在终端输入mkdir input新建文件夹input,接着输入cp ./etc/hadoop/.xml ./input(其中.xml代表所有的.xml文件),此行目的是将uer/local/hadoop/etc/hadoop下的所有的.xml文件复制到input文件夹内。
通过cd input进入input文件夹我们确认了复制成功。

在这里插入图片描述

图37:测试

在终端输入./bin/hadoop jar /usr/loacl/hadoop/share/hadoop/mapreduce/
hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'测试指令进行测试。

在这里插入图片描述

图38:测试完成

测试完成,在终端输入cat ./output/*查看输出数据。

六、Hadoop 伪分布式安装

1、修改配置文件(在etc/hadoop下)
在这里插入图片描述

图39:查看要修改的配置文件

通过终端cd etc/hadoop进入etc/hadoop查看要修改的配置文件。通过查看得知需要配置core-site.xml和hdfs-site.xml两个文件夹。
在终端输入vim core-site.xml使用vim编辑器配置。
在这里插入图片描述

图40:进入core-site.xml

在这里插入图片描述

图41:core-site.xml配置完成
2、配置
在这里插入图片描述

图42:配置hdfs-site.xml

在终端输入vim hdfs-site.xml使用vim编辑器配置。

在这里插入图片描述

图43:进入hdfs-site.xml

在这里插入图片描述

图44:hdfs-site.xml配置完成

3、初始化
在这里插入图片描述

图45:初始化

在终端输入cd /usr/local/hadoop回到/usr/local/hadoop文件夹,再输入bin/hdfs namenode -format进行初始化。

在这里插入图片描述

图46:初始化成功

4、启动 hdfs
在这里插入图片描述

图47:启动hdfs

在终端输入./sbin/start-dfs.sh启动hsfd,再输入jsp查看java进程。

5、查看 Hadoop(用 Browser)
在这里插入图片描述

图48:用 Browser查看 Hadoop

注意这里要用Ubuntu自带的浏览器,地址为:http://localhost:9870

6、创建Hadoop用户的用户目录及input目录
在这里插入图片描述

图49:创建 Hadoop 用户的用户目录及 input 目录

在终端输入./bin/hdfs dfs -mkdir -p /usr/hadoop创建Hadoop用户的用户目录,在终端输入./bin/hdfs dfs -mkdir input创建Hadoop用户的input目录。(其中./bin/hdfs dfs是指令前缀,后面是正常的Ubuntu指令。)

7、将本地配置文件夹上传到分布式文件系统
在这里插入图片描述

图50:将本地配置文件夹上传到分布式文件系统

在终端输入bin/hdfs dfs -put ./etc/hadoop/.xml input将本地配置文件夹上传到分布式文件系统.(bin/hdfs dfs是指令前缀,-put是命令,./etc/hadoop/.xml是源,input是目标。)

8、测试demo
在这里插入图片描述

图51:测试demo

在终端输入./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/
hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'测试指令进行测试。
注意这里和单机hadoop测试不一样的地方是这里后面是input output,单机时是./input ./output。

在这里插入图片描述

图52:测试完成

9、查看结果
在这里插入图片描述

图53:查看测试结果

在终端输入.bin/hdfs dfs -cat output/*查看测试结果。

10、关闭 hdfs
在这里插入图片描述

图54:删除output目录

在终端输入.bin/hdfs dfs -rm -r output删除output目录。(每次执行都要吧上一次的output删除,测试过应该是底层写死的无法修改)

在这里插入图片描述

图55:关闭hdfs

在终端输入./sbin/stop-dfs.sh停止执行hdfs。

七、HDFS常用命令

(1)功能:显示

指定的文件的详细信息。 

hadoop fs -1s

(2)功能:1s 命令的递归版本。
hadoop fs -1s -R

(3)功能:将

指定的文件的内容输出到标准输出 (stdout )。 

hadoop fs -cat

(4)功能:将

指定的文件所属的组改为group,使用-R对 

 指定的文件夹内的文件进行递归操作。这个命令只适用于超级用户。 

hadoop fs -chgrp [-RJgroup

(5)功能:改变

指定的文件所有者,-R 用于递归改交文件夹内的文件所有者。这个命令只适用于超级用户。 

hadoop fs-chown [-R] [owner][ :[group]]

(6)功能:将

指定的文件的权限更改为。这个命令只适用于超级用户和文件所有者。 

hadoop fs -chmod [- R]

(7)功能:将

指定的文件最后 1KB 的内容输出到标准输出 (stdout)上,一f选项用于持续检测新添加到文件中的内容。 

hadoop fs -tail [-f]

(8)功能:以指定的格式返回

指定的文件的相关信息。当不指定format 的时候,返回文件 

 的创建日期。 

hadoop fs -stat [format]

(9)功能:创建一个

指定的空文件。 

hadoop fs -touchz

(10)功能:创建指定的一个或多个文件夹,-p选项用于递归创建子文件夹。
hadoop fs -mkdir [-p] 。

(11)功能:将本地源文件复制到路径指定的文件或文件夹中。
hadoop fs -copy FromLocal 。

(12)功能:将日标文件复制到本地文件或文件夾中,可用-ignorearc 选项复制CRC
校验失败的文件,使用-crc选项复制文件以及 CRC信息。
hadoop ts -copyToLocal [-ignorecrc][-crc] 。

(13)功能:将文件从源路径复制到日标路径。
hadoop fs -cp 。

(14)功能:显示

指定的文件或文件夾中所有文件的大小。 

hadoop fs -du

(15)功能:清空回收站.
hadoop fs -expunge。

(16)功能:复制指定的文件到本地文件系统-指定的文件或文件夹,可用-ignorecrc 选项复制 CRC
校验失败的文件,使用-crc 选项复制文件以及 CRC信息。
hadoop fs-get [ignorecrc] [-crc] 。

(17)功能:对指定的源目录中的所有文件进行合并,写入指定的本地文件。-nl
是可选的,用于指定在每个文件结尾添加一个换行符。
hadoop fs -getmerge [-nl] 。

(18)功能:以本地文件系统中复制<1ocalsrc>指定的单个或多个源文件到指定的目标文件系统中,也支持从标准输人(stdin
)中读取输人并写人目标文件系统。
hadoop fs-put 。

(19)功能:与put 命令功能相同,但是文件上传结束后会从本地文件系统中删除指定的文件。
hadoop fs-moveFromLocal 。

(20)功能:将文件从源路径移动到目标路径
hadoop fs -mv 。

(21)功能:删除

指定的文件,只删除非室日录和文件。 

hardoop 1s -rm

(22)功能:除

指定的文什实及其下的所有文件,-r选项表示删除子目录。 

hadop fs -rm -r

(23)功能:改变

指定的文件的副本系数,-R 选项用于递归政变目录下所有文件的副本系数。 

hadoop fs-setrep [-R]

(24)功能:检查

指定的文什或文件夾的相关信息。不同选项的作用如下。 

hadoop fs -test -[ezd]

 。 ①-e检查文件是否存在,如果存在则返回0,否则返回 1。 ②-z检查文件是否是 0字节,如果是则返回 0,否则返回1。 ③ -d如果路径是个日录,则返回1,否则返回 0。 

(25)功能:将

指定的文什输出为文木格式,文件的格式世允许是zip和TextRecordinputStream 等 

hadoop ts -text

(26)查看帮助
hdfs dfs -help
(27)查看当前目录信息
hdfs dfs -ls /
(28)上传文件
hdfs dfs -put /本地路径 /hdfs路径
(29)剪切文件
hdfs dfs -moveFromLocal a.txt /aa.txt
(30)下载文件到本地
hdfs dfs -get /hdfs路径 /本地路径
(31)合并下载
hdfs dfs -getmerge /hdfs路径文件夹 /合并后的文件
(32)创建文件夹
hdfs dfs -mkdir /hello
(33)创建多级文件夹
hdfs dfs -mkdir -p /hello/world
(34)移动hdfs文件
hdfs dfs -mv /hdfs路径 /hdfs路径
(35)复制hdfs文件
hdfs dfs -cp /hdfs路径 /hdfs路径
(36)删除hdfs文件
hdfs dfs -rm /aa.txt
(37)删除hdfs文件夹
hdfs dfs -rm -r /hello
(38)查看hdfs中的文件
hdfs dfs -cat /文件
hdfs dfs -tail -f /文件
(39)查看文件夹中有多少个文件
hdfs dfs -count /文件夹
(40)查看hdfs的总空间
hdfs dfs -df /
hdfs dfs -df -h /
(41)修改副本数
hdfs dfs -setrep 1 /a.txt

八、HDFS实验之通过JAVA-API访问HDFS

1、Hadoop用户下进入Ubuntu
在这里插入图片描述

图56:Hadoop用户下进入Ubuntu

2、把eclipse拖到/home/hadoop/Downloads下
在这里插入图片描述

图57:把eclipse拖到/home/hadoop/Downloads下

3、检查一下是不是整个Ubuntu都在hadoop用户下,是的话,解压到/uer/local
在这里插入图片描述

图58:确认是在hadoop用户下

在终端输入whoami,当出现hadoop表示现在是在hadoop用户下进行的操作(确保后面的操作能正常进行)。
进入Downloads查询当前文件夹所有文件,看eclipse安装包是否存在。

在这里插入图片描述

图59:解压eclipse安装包

在终端输入sudo tar -zxvf ./eclipse-4.7.0-linux.tar.gz -C /usr/local解压eclipse安装包。

在这里插入图片描述

图60:解压eclipse安装包完成

4、cd到解压后的文件夹/usr/local/eclipse,启动eclipse(启动指令./eclipse)
在这里插入图片描述

图61:检查解压情况

在终端cd到文件夹/usr/local内,查看是否有eclipse文件夹,如果有则解压成功。

在这里插入图片描述

图62:启动eclipse

在终端输入启动指令./eclipse启动eclipse。

5、默认workspace(这里必须是Hadoop用户下,如果是个人用户名下,就代表前面错误,你不是在Hadoop下完成的操作,会显示没有java路径)
在这里插入图片描述

图63:默认workspace

默认workspace点击launch进入下一步。

6、启动成功
在这里插入图片描述

图64:启动eclipse成功

7、新建工程后选择java project,然后next
在这里插入图片描述

图65:新建工程

8、输入工程名称,其他默认即可,然后点击next
在这里插入图片描述

图66:输入新建的工程名称

9、点击libraries,添加jar包,添加完成后点击finish
在这里插入图片描述

图67:添加jar包

在这里插入图片描述

图68:添加jar包

选择add external jars进行添加jar包。

在这里插入图片描述

图69:添加jar包

在这里插入图片描述

图70:添加jar包

在这里插入图片描述

图71:添加第一个路径的jar包

注意路径,一般进来会直接选中第一个文件夹,这个时候需要取消选中在选择需要的jar包。

在这里插入图片描述

图72:添加第一个路径的jar包成功

在这里插入图片描述

图73:添加第二个路径的jar包

在这里插入图片描述

图74:添加第三个路径的jar包

在这里插入图片描述

图75:添加第四个路径的jar包

在这里插入图片描述

图76:4个路径的jar包添加完成

10、出现如下框点击open perspective
在这里插入图片描述

图77:点击open perspective

11、右键→New→class
在这里插入图片描述

图78:右键→New→class

12、右键→New→class
在这里插入图片描述

图79:给新建class起名

13、创建成功后出现如下界面,输入案例代码
在这里插入图片描述

图80:创建成功
在这里插入图片描述

图81:输入案例代码

在这里插入图片描述

图82:运行主程序

在这里插入图片描述

图83:出现报错

运行主程序后报错,说明程序有问题,经过检查发现需要改代码以及放入文件。

在这里插入图片描述

图84:将7个文件复制到hadoop的Downloads内

在这里插入图片描述

图85:启动hdfs

在终端输入./sbin/start-dfs.sh启动hsfd。

在这里插入图片描述

图86:将file1.txt上传到分布式文件系统

在终端输入bin/hdfs dfs -put /home/hadoop/Downloads/file.txt input将file1.txt上传到分布式文件系统.(bin/hdfs dfs是指令前缀,-put是命令,/home/hadoop/Downloads/file.txt是源,input是目标。)
通过bin/hdfs dfs -ls input查看刚刚是否成功将file1.txt上传到分布式文件系统。

在这里插入图片描述

图87:将剩下的6个文件上传到分布式文件系统

重复刚刚的指令,将源改成对应的文件名,将file2.txt,file3.txt,file4.txt,file5.txt,file4.abc,file5.abc六个文件上传到分布式文件系统。

在这里插入图片描述

图88:查看是否成功将文件上传到分布式文件系统

通过bin/hdfs dfs -ls input查看是否成功将文件上传到分布式文件系统。

在这里插入图片描述

图89:打开eclipse

cd到/usr/local/eclipse,通过指令./eclipse启动eclipse(注意要在启动hdfs后再启动eclipse)。

在这里插入图片描述

图90:修改程序并运行

经过检查代码,我发现在主函数里面的第二行"hdfs://localhost:9000/user/hadoop/"的后面少了input,加上input后运行程序便能出现输出文件的结果,但是有个问题出现,输出的只过滤掉了.abc文件,还有.xml文件没有过滤掉。

在这里插入图片描述

图91:对程序进行理解

通过对于代码的了解,我知道了PathFilter 接口里面的accept方法可以过滤掉文件名满足特定条件的文件。以及可以通过FileStatus[] sourceStatus = fsSource.listStatus(inputPath,new MyPathFilter(“.*.abc”)); 来过滤掉输入目录中后缀为.abc的文件。

在这里插入图片描述

图92:修改程序并输出所需结果

我将PathFilter 接口里面的accept方法进行了修改,把false与true的位置进行了替换,使得方法的用处不在是可以过滤掉文件名满足特定条件的文件,而是可以过滤掉除了特定条件的其他文件,也就是说只输出所需要的文件。
最后通过FileStatus[] sourceStatus = fsSource.listStatus(inputPath,new MyPathFilter(“.*.txt”));只输出hdfs://localhost:9000/user/hadoop/input里面所有.txt结尾的文件。入图92所示输出了所需要的结果。

在这里插入图片描述

图93:关闭hdfs

关闭eclipse后,在终端输入./sbin/stop-dfs.sh关闭hdfs。

标签: hadoop java

本文转载自: https://blog.csdn.net/m0_53054984/article/details/129750475
版权归原作者 ZShiJ 所有, 如有侵权,请联系我们删除。

“大数据实战平台环境搭建”的评论:

还没有评论