我已经将jdk-8u281-linux-x64.tar.gz和hadoop-3.1.4.tar.gz下载好了,如果需要请自取:
链接:https://pan.baidu.com/s/1NSwxte3RnwrGZZ5pSxeK2Q
提取码:0j9y
本篇博客围绕b站的这个视频来展开:
【https://www.bilibili.com/video/BV1XW411174Y】
视频已经很完善了,本篇博客将整个流程以及部分指令整理出来。
配置jdk
- 自己创建一个文件夹,比如:
sudo mkdir /app-hadoop
,然后设置文件夹的权限:sudo chmod -R 777
,将两个下载好的压缩包放到这两个文件夹中来,先解压jdk的文件夹。 - 配置环境变量:可以使用两种编辑方式,第一种是
sudo vi /etc/profile
,第二种是sudo gedit /etc/profile
,打开文件之后在文件的末尾添加jdk的环境变量,需要添加的内容如下:
export JAVA_HOME=/app-hadoop/jdk1.8.0_281
export HADOOP_HOME=/app-hadoop/hadoop-3.1.4
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
需要注意的是,上面的内容需要根据自己的情况来更改,第一个JAVA_HOME是你的jdk的解压路径,第二个是hadoop的解压路径,第三个是固定的。如果你还不确认你的hadoop将解压到哪里可以先这样,可以等到下面hadoop环节再去更改。
- 激活环境变量:
source /etc/profile
,然后输入java -version
可以看到版本信息。
安装hadoop
- 下载好压缩包之后,解压:
tar -zxvf hadoop-3.1.4.tar_2.gz
,如果你下载的是其他版本的hadoop,就按照你的实际情况来更改压缩包名。 - 配置环境变量:同样按照配置jdk的环境变量一样,打开文件:
sudo vi /etc/profile
,因为上面介绍配置jdk的时候已经附带配置了hadoop的环境变量,如果你解压的hadoop路径和上面列出的一样,直接不用管了,如果不一样,就将第二行的hadoop路径改一下即可,第三行和第一行不动。 - 激活环境变量:
source /etc/profile
,然后输入hadoop -version
可以看到版本信息。
配置ssh秘钥
依次执行以下指令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
sudo apt-get install openssh-server
ssh localhost
最后一行需要中途输入yes
,这些都输入完成之后,重启sudo reboot
.
配置hadoop
首先切换到这个目录来:
/app-hadoop/hadoop-3.1.4/etc/hadoop
(我是这个路径,其中后面的etc/hadoop是固定的,前面两个需要根据你的解压文件夹来改)。
这个路径下有这些文件:
- 更改core-site.xml文件:打开文件
sudo vi core-site.xml
,添加如下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(linux初学者不要无脑复制哈,这里我没有把文件中原有的去掉,接下来的每一个文件都需要注意,不重复提醒了)
- 更改hdfs-site.xml:打开文件
sudo vi hdfs-site.xml
,添加如下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- 更改hadoop-env.sh:打开文件
sudo vi hadoop-env.sh
,往下滑动找到JAVA_HOME,将jdk的解压路径加进来:
启动hadoop
依次执行如下指令:
cd /app-hadoop/hadoop-3.1.4
sudo mkdir logs
sudo chmod -R 777 logs
cd logs
hdfs namenode -format
执行完毕然后启动:
start-all.sh
查看jps:
jps
浏览器打开:
localhost:8088
或者:
localhost:9870
hadoop创建文件与上传文件
每一次打开虚拟机需要启动hadoop就输入start-all.sh
,如果不使用了记得关闭:stop-all.sh
。
touch hello.txt
本地创建文件
vim hello.txt
本地编辑文件
hadoop fs -mkdir /test
在根目录下创建文件夹test,/代表根目录。
hadoop fs -ls /
查看根目录下所有的文件和文件夹。
hadoop fs -put hello.txt /test
将本地的hello.txt文件上传至hdfs的根目录下的test文件夹中。
hadoop fs -cat /test/hello.txt
查看指定文件的内容。
hadoop常用的shell指令
|-lsr |-lsr <路径> | 递归查看指定路径的目录结构|
|-du |-du <路径> | 统计目录下个文件大小|
|-dus |-dus <路径> | 汇总统计目录下文件(夹)大小|
|-count| -count [-q] <路径> | 统计文件(夹)数量|
|-mv |-mv <源路径> <目的路径> | 移动|
|-cp |-cp <源路径> <目的路径> | 复制|
|-rm |-rm [-skipTrash] <路径> | 删除文件/空白文件夹|
|-rmr |-rmr [-skipTrash] <路径> | 递归删除|
|-put |-put <多个 linux 上的文件> <hdfs 路径> | 上传文件|
|-copyFromLocal| -copyFromLocal <多个 linux 上的文件><hdfs 路径> | 从本地复制|
|-moveFromLocal |-moveFromLocal <多个 linux 上的文件><hdfs 路径> | 从本地移动|
|-getmerge |-getmerge <源路径> <linux 路径> | 合并到本地|
|-cat |-cat <hdfs 路径> | 查看文件内容|
|-text |-text <hdfs 路径> | 查看文件内容|
|-copyToLocal |-copyToLocal [-ignoreCrc] [-crc] [hdfs 源路径] [linux 目的路径] | 从HDFS复制到本地|
|-moveToLocal |-moveToLocal [-crc] <hdfs 源路径> <linux目的路径> | 从HDFS移动到本地|
|-mkdir |-mkdir <hdfs 路径> | 创建空白文件夹|
|-setrep | -setrep [-R] [-w] <副本数> <路径> | 修改副本数量|
|-touchz | -touchz <文件路径> | 创建空白文件|