搭建之前的预处理:
1、查看虚拟机ip
2、检查主机是否能ping通虚拟机
3、因为我这边虚拟机里看不到共享文件夹的内容,所以我换了一种方法,下载一个Xftp软件
(1)点击 文件->新建 出现下面的窗口。
现在我所需要的包都在虚拟机里面了,开始搭建
1、安装jdk
rpm -i jdk-8u221-linux-x64_2.rpm
# 配置环境变量
vim /etc/profile
# 增加
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
PATH=$PATH:$JAVA_HOME/bin
# 使环境变量生效
. /etc/profile
# 检查是否安装好
[baiyang@localhost jdk1.8.0_221-amd64]$ jps
61615 Jps
解压jdk文件:
配置环境变量:
vim的使用:https://www.runoob.com/linux/linux-vim.html
检查是否安装好:
jps命令介绍:
https://blog.csdn.net/violet_echo_0908/article/details/51265127
2.配置ssh免密
参考:https://blog.csdn.net/zwx19921215/article/details/19641345
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cd ..( 退出进入的目录)
:q(退出进入的文件)
3.创建安装包放置目录
mkdir -p /opt/soft
4.解压安装包
tar xf hadoop-2.8.5.tar.gz -C /opt/soft
5、配置hadoop的环境变量,方便执行hadoop脚本
export HADOOP_HOME=/opt/soft/hadoop-2.8.5
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME:sbin
6、修改hadoop配置
# 6.1 修改hadoop中的java路径
cd /opt/soft/hadoop-2.8.5/etc/hadoop
#6.2在/opt/soft/hadoop-2.8.5/etc/hadoop 下分别打开以下文件:
vim hadoop-env.sh
vim mapred-env.sh
vim yarn-env.sh
添加:
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
# 6.3然后使环境变量生效
source /etc/profile
#6.4 修改core-site.xml,主节点信息
# 路径:/opt/soft/hadoop-2.8.5/etc/hadoop
# 需要修改hdf后的主机名,不能使用localhost
#先创建临时信息文件夹:
mkdir /tmp/hadoop
#vim core-site.xml后添加:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
#hadoop文件路径
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/local</value>
</property>
</configuration>
# 6.5 修改hdfs-site.xml,从节点信息
<configuration>
# 设置副本数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
# 设置SNN的地址
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
#6.6 修改workers文件:
在hadoop2.x中是修改slaves文件,添加从节点主机名 hubuslaves、hubuslaves1
vi slaves
# 6.7 Hadoop格式化
hdfs namenode -format
在我们创建的临时信息文件夹里:
重要信息:
集群的唯一id生成,为nm,dn,snn共用,且必须一致。
clusterID=CID-7b74735a-3f70-4209-bbd5-801c6d6ebd09
# 7、启动hadoop
[root@hadoop1 hadoop-2.8.5]# start-dfs.sh
查看Hadoop进程:
8、图形化操作界面 使用ss -nal,查看所有开启端口。
下面我们来看一下如何使用这个伪分布式:
9、上传文件
# 由于使用的是hdfs文件系统,所以所有的操作都应该再hdfs dfs命令下
# 创建一个目录,在/opt/soft/hadoop-2.8.5/bin 下
./hdfs dfs -mkdir -p /user/root
# 查看目录内容
# 上传一个文件到hdfs中
./hdfs dfs -put /home/baiyang/文档/rpm/hadoop-2.8.5.tar.gz /user/root
目录下已经有该文件:
# 查看该文件在linux下的存储情况,可以看到被分成了两个块,并且每个块都附带有元数据信息
值得一提的是:
真实的文件的命名和命令行终端不同,也就是文件名改变了,命名规则是 “blk_”+ID,后面 .meta也是存储信息的描述
,blk_1073741825就是我们上传到hdfs的文件
一定要在datanode节点上才能找到上传到文件。
我期间卸载了一次虚拟机,由于没卸干净出现了下面的问题,导致主机连不到虚拟机
解决办法参考:https://www.cnblogs.com/psy-code/p/9311104.html
还遇到了启动Hadoop后datanode节点闪退的情况,
解决办法参考:https://blog.csdn.net/cc1949/article/details/78467673
需要将三个文件夹内的VERSION中的clusterID保持一致。