1、准备工作
A.创建Hadoop用户
sudo useradd -m hadoop
-m 是自动建立用户的登入目录,如果不输以新用户身份登入后会出错。
-s指定用户登入后所使用的shell。默认值为/bin/bash。(所以可以不指定)
B.安装更新ssh,配置免密登录
先测试一下登录时是否需要输入密码
$ ssh localhost
如果需要输入密码才能登录,则需要进行配置免密登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys$ chmod 0600 ~/.ssh/authorized_keys
C.安装配置Linux服务机上的Java环境
2、安装Hadoop
A.下载解压Hadoop安装包,并为解压目录为Hadoop用户授权
https://apache.mirrors.tworzy.net/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
Hadoop安装包文件hadoop-3.3.0.tar.gz
wget https://apache.mirrors.tworzy.net/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gztar zxf hadoop-3.3.0.tar.gzchown -R hadoop hadoop-3.3.0
B.检查安装
./bin/hadoop version
3、单机配置伪分布式HDFS环境启动
A.配置Hadoop脚本中的Java环境
[root@iZuligp6e1dyzfZ hadoop-3.3.0]# which java/local/dev/jdk1.8.0_161/bin/java[root@iZuligp6e1dyzfZ hadoop-3.3.0]# vim etc/hadoop/hadoop-env.shexport JAVA_HOME=/local/dev/jdk1.8.0_161/
B.配置 ./etc/hadoop/core-site.xml
[root@izbp1gxt3epy9qvyrcc08sz hadoop-3.3.0]# vim ./etc/hadoop/core-site.xml
:::danger
注意:在阿里云主机配置时,core-site.xml这里配置HDFS协议时,建议通过主机名称配置,在/etc/hosts文件配置内网IP和配置的主机名称进行映射,否则如果直接指定为公网IP,则NameNode会启动失败,报绑定异常的错误。
公网IP映射主机名称的配置如下:

该配置使用的主机名称,还需要在对应的Hadoop客户端主机配置公网IP和主机名称的映射。比如Java中通过 Hadoop Client API操作时,需要在运行环境的电脑配置hosts
:::
<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop-2.9.2/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://izbp1gxt3epy9qvyrcc08sz:9000</value></property></configuration>
:::info
- 在上面配置文件中使用9000端口前先检查9000端口是否被占用
- 在配置
<name>fs.defaultFS</name>的value时,ip可以使用主机名称代替,Hadoop在工作时会从/etc/hosts文件中查找与该主机名称映射的ip地址进行访问通信工作。 :::C.配置
./etc/hadoop/hdfs-site.xml[root@izbp1gxt3epy9qvyrcc08sz hadoop-3.3.0]# vim ./etc/hadoop/hdfs-site.xml<configuration> <!--官网只配了replication--> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop-2.9.2/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop-2.9.2/tmp/dfs/data</value> </property> </configuration>
D.格式化NameNode
NameNode是Hadoop的管理节点,相当于门面的作用。
:::success 出现”successfully formatted”字样表示格式化成功。./bin/hdfs namenode -format
:::
E.解决以root用户启动Hadoop的报错
HDFS格式化后启动dfs出现以下错误
这时需要通过修改脚本文件指定用户来解决 :::info 1、master,slave都需要修改start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件[root@master sbin]# ./start-dfs.sh Starting namenodes on [master] ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes ERROR: Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation. Starting secondary namenodes [slave1] ERROR: Attempting to operate on hdfs secondarynamenode as root ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2、如果Hadoop是另外启用其它用户来启动,记得将root改为对应用户 :::start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下参数
#!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root重新执行./start-dfs.sh,成功启动节点
[root@master sbin]# ./start-dfs.sh WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER. Starting namenodes on [master] 上一次登录:日 6月 3 03:01:37 CST 2018从 slave1pts/2 上 master: Warning: Permanently added 'master,192.168.43.161' (ECDSA) to the list of known hosts. Starting datanodes 上一次登录:日 6月 3 04:09:05 CST 2018pts/1 Starting secondary namenodes [slave1] 上一次登录:日 6月 3 04:09:08 CST 2018pts/1
F.使用jps命令查看启动的节点
可以看到NameNode和DataNode已经成功启动[root@iZuligp6e1dyzfZ hadoop-3.3.0]# jps 3408 SecondaryNameNode 3200 DataNode 6328 jar 3065 NameNode 7164 Jps
G.访问Hadoop Web管理控制台
:::tips Hadoop2.的Web访问端口是50070
Hadoop3.的Web访问端口是9870 :::
H.查看Web 界面的文件系统

I.使用Hadoop命令操作文件系统
Docker 安装Hadoop HDFSJ.在HDFS Web文件系统查看文件管理

点击忘记后能正常看到文件的Block以及文件内容,则表明存储的问题没问题
K.关于下载HDFS Web文件系统的文件主机名找不到无法下载的问题
在HDFS Web界面中,点击下载文件后,出现主机名解析异常无法下载的问题
检查本地的C:\Windows\System32\drivers\etc\hosts文件中服务器主机的外网IP与服务器主机名称的映射是否配置。
198.24.178.68 izbp1gxt3epy9qvyrcc08sz检查服务器安全组中文件下载对应的端口是否开放

