hadoop3.x伪分布式配置HDFS

介绍

本文实现 hadoop3.x 伪分布式配置HDFS

伪分布式安装:用分布式的方式,安装到一台电脑上,适合配置低的电脑

官网文档:

https://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-common/SingleCluster.html

上传

将 hadoop-3.0.3.tar.gz 上传到 /program/

解压缩

cd /program/
tar -zxvf hadoop-3.0.3.tar.gz --no-same-owner

配置环境变量

编辑文件

vim /etc/profile.d/bigdata_env.sh

在末尾,使用 o 命令,添加下面内容:

# 配置 HADOOP_HOME
export HADOOP_HOME=/program/hadoop-3.0.3
export PATH=${HADOOP_HOME}/bin:$PATH
export PATH=${HADOOP_HOME}/sbin:$PATH

执行esc -> :wq

使立即生效

source  /etc/profile

测试

hadoop

会显示 hadoop 命令的信息,表示配置成功

修改 hadoop-env.sh

hadoop-env.sh 配置了 hadoop 的环境

在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh

设置 JAVA_HOME

必须 指定 java 绝对路径,否则 启动 NameNode 和 DataNode 会报错

使用 vim 编辑该文件:

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

找到 export JAVA_HOME ,如果该行前面有 # ,就去掉 #,改成

export JAVA_HOME=/program/jdk1.8.0_202

设置用户

在 hadoop3.x 需要设置 当前登录用户,才能执行命令,否则会报错

注意: 需要将下面 root 用户改成 当前登录用户

在文件的 最下面 添加下面配置:

export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

执行esc -> :wq,保存并退出

修改 core-site.xml 文件

vim /program/hadoop-3.0.3/etc/hadoop/core-site.xml

指定HDFS中NameNode的地址

增加下面内容:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop1:8020</value>
</property>

解释: NameNode 部署在 hadoop1 上,所以使用 hadoop1 的 8020 端口

设置HDFS存储文件的位置:

<property>
    <name>hadoop.tmp.dir</name>
    <value>/program/hadoop-3.0.3/data/tmp</value>
</property>

当上传文件到 HDFS 后,HDFS 中的文件保存在:

/devtools/hadoop-3.0.3/data/tmp/dfs/data/current/BP-生成的数字/current/finalized/subdir0/subdir0/

配置HDFS网页登录的静态用户

<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

执行esc -> :wq,保存并退出

修改 hdfs-site.xml

vim /program/hadoop-3.0.3/etc/hadoop/hdfs-site.xml

指定HDFS副本的数量:

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

执行esc -> :wq,保存并退出

配置免密码ssh

必须配置,否则执行 start-dfs.sh 报错

测试是否可以免密码 ssh 登录

ssh hadoop1

如果提示需要输入密码,表示不能免密码登录,需要执行下面命令

设置密码ssh登录

执行下面命令

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

测试是否可以免密码 ssh 登录

ssh hadoop1

不需要输入密码,就能登录,表示成功,执行下面命令退出

exit

格式化NameNode

第一次启动时格式化,相当于新安装的硬盘,格式化后才能使用

注意: 以后就不要总格式化,相当于硬盘格式化,原有数据丢失

hdfs namenode -format

成功如下图:

启动 NameNode 和 DataNode

start-dfs.sh

执行结果如下:

红框处 hadoop1 就是主机名

可通过 hostname 命令查看主机名

jps查看是否启动成功

jps是jdk命令

jps

显示如下:

24294 NameNode
24472 DataNode
24698 SecondaryNameNode

表示启动成功

访问 NameNode

通过网址 http://linux的ip地址:9870 可以访问 hadoop 的 web 网页

在windows上做映射

不在 windows 上做映射,不能通过 web页面 上传文件、下载文件、预览文件

详见:hadoop3.x伪分布式部署:修改windows hosts文件

在windows上做映射后,可以访问下面网址访问:

http://hadoop1:9870/

端口说明:

  • hadoop3.x 端口号是9870
  • hadoop2.x 端口号是50070

停止 NameNode 和 DataNode

stop-dfs.sh

原文出处:/show_1IXWLGRUC4S.html