手把手教你搭建一个HDFS系统

2019-10-15 20:58栏目:5G

手把手教你搭建一个HDFS系统

酒肉朋友

一、环境准备

在VMware中搭建三台linux虚拟机,分别命名为master node1 node2。并设置静态ip,关闭防火墙。
备注:操作过程中涉及到VMware和Linux的操作就不作完整说明。

二开始配置

1、修改三台机器的host文件,目的是在以后的参数设置时不用填写ip,直接填写host名更加方便。

2、设置三台机器的免密码登录。

目的是为了以后传输文件方便,同时HDFS在启动java进程时也需要免密码登录。
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
运行完上述代码后,在家目录~/.ssh中会产生三个文件
authorized_keys  id_rsa  id_rsa.pub
将master中的authorized_keys文件追加到node1、node2中。
(我是通scp传输过去再追加的,直接复制可能存在问题)
测试免密登陆
在master中:$ ssh node1,  $ ssh node2

3、三台虚拟机中安装jdk,配置环境变量。

4、安装hadoop2.8.5。

5、建立文件目录

(不建立也可以,运行format进行格式化时会自动创建)。

6、修改配置文件。

# 修改 etc/hadoop/hadoop-env.sh 配置java环境
export JAVA_HOME=/usr/java/jdk1.8.0_191
# 修改etc/hadoop/core-site.xml
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value> ①
  </property>
  <property>
    <name>hadoop.tmp.dir</name>②
    <value>/var/hadoop/tmp/data</value>
  </property>
  <property>
    <name>dfs.name.dir</name>③
    <value>/var/hadoop/tmp/name</value>
  </property>
</configuration>
说明:
① fs.defaultFS 配置的是NameNode的主机和端口,
master为hosts文件中配置的机器。
② hadoop.tmp.dir 配置hdfs的工作目录。
可以不做配置,会默认在机器的 /tmp 文件夹中创建,
但是linux重启之后此目录会清空。
③ 配置的是NameNode的工作目录,可以不做配置,
会默认根据hadoop.tmp.dir的目录进行创建。
# 修改etc/hadoop/hdfs-site.xml
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value> ①
  </property>
   <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>node1:50090</value>
   </property> ②
  <property>
    <name>dfs.data.dir</name>
    <value>/var/hadoop/data</value>
  </property>
</configuration>
说明:
①因为我只有两台DataNode机器,所以副本数最大只能为2。默认配置为3。
②设置secondary namenodes 位于 [node1] 节点,
#修改 slaves 修改。
salves 文件 说明了DataNode节点的机器,只需要将
DataNode所在机器列出即可。

7、同步所有配置到三台机器中

8、在master中格式化hdfs

# 在bin 目录下
./hadoop namenode -format

9、启动hdfs

# 在sbin目录下
./start-dfs.sh
在三台机器上使用JPS查看java进程,如果成功看到NameNode、DataNode的进程说明成功了一大步。
访问:http://master:50070/ 看到如下界面说明成功了。

HDFS

可以在Utilities -> Browse the file system浏览你的文件系统。

特殊说明:

1、在本地浏览器访问虚拟机中的应用,所以需要在hosts文件中添加master的ip。(不是必须的,可以直接通过ip访问)。
2、虚拟机中linux的防火墙没有关闭,可能无法访问到页面。
3、HDFS有相应的访问命令。
基本语法为:bin/hadoop fs + 具体命令,大多数命名与linux的文件系统类似。

hdfs

本文来自网络,不代表山斋月平台立场,转载请注明出处: https://www.shanzhaiyue.top