在之前的文章中我们已经安装好了 JDK 和 Hadoop 并配置好了环境变量,输入 hadoop version
检查一下之前的步骤是否配置正确:
好的 可以看到我使用的版本是 2.7.3 ,然后我们到 /soft/hadoop/etc/hadoop/ 目录下查看一下配置文件:
先说说我对 hdfs 的理解吧,hdfs 翻译过来就是 hadoop 分布式文件系统,可以理解为一块巨大的硬盘,只不过这个硬盘被分成了很多块放在了不同的计算机上,统一管理,但是作为使用者有时候我们不太能感受到其他计算机的存在,就直接看成一块就好啦。
数据被储存在节点中(就是一台计算机),专门用来储存数据的节点被称为 datenode ,还有一种节点是用来管理数据节点的叫做 namenode 。一般都是有一个 namenode 很多个datanode 。所以你大概也可以猜得到,要配置HDFS 我们需要指定这些 namenode 和 datadode 的地址,储存数据的地址,为了能让 namenode 访问 datanode 所在的计算机还要配置 SSH。
一、配置 HDFS
我们第一个修改的是 cose-site 文件,也就是核心配置文件,修改文件呢其实可以直接使用 vi 修改,但是 npp 有一个很好用的插件叫 Npp ftp 可以简化这一过程,同时也是为了减少出错。
一般 npp 安装之后都没有这个插件需要下载安装,点击右边的齿轮然后配置服务器信息,注意这里的协议选择 SFTP 不要选默认的 FTP。然后刷新根目录,找到我们要编辑的文件,双击打开,就可以直接在这里编辑啦。
要配置呢我们也不能瞎配,我们得看看默认的配置是什么,直接在 win 上解压 Hadoop 文件,建议解压到 D 或者别的盘的根目录下(目录不要有中文),之后还会用到这个,到目录:D:\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\common\hadoop-common-2.7.3
下有一个 core-default.xml 文件,使用 npp 打开,这里面就全是 core-site 的默认配置
哦对了,注意那个hadoop-common-2.7.3 是一个 jar 包,直接解压一下就行。
首先我们修改一下 Hadoop 存临时文件的地址,直接搜索 hadoop.tmp.dir 找到之后就可以发现它默认的地址是当前用户的 tmp 文件夹下,这个文件夹系统会定时清理,这可能会给我们的工作带来一些困扰,所以我们修改一下这个储存地址。
所以我们先建一个新目录 /hadoop/temp
用来存放Hadoop的临时文件
然后在 core-site 文件中的<configuration>标签下添加:
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/temp</value>
</property>
然后配置 namenode 的地址,在默认配置文档中搜索:fs.defaultFS
,将namenode 配置成本机,端口号是 9000:
<property>
<name>fs.defaultFS</name>
<value>hdfs://server2:9000</value>
</property>
然后保存好,在 Xshell上查看一下 core-site 文件就已经是修改之后的了。
但是注意我们在上面使用了一个 server2 这个计算机不能理解,我们需要配置一下本地 dns ,就是映射 ,使用命令 vi /etc/hosts
注意不是host 是 hosts
添加 一行:192.168.80.141 server2
就是添加一个映射。
配置好 core-site 之后配置 hdfs-site 和上面的步骤差不多,默认配置文件在 D:\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\hdfs\hadoop-hdfs-2.7.3
中的 hdfs-default 文件里面,
首先配置 namenode 和 datanode 的目录,
注意:这是一个伪分布式的搭建,所以需要配置 namenode.dir
和 datanode.dir
如果有多台机器我们只需要配置其中一个就可以。
我们需要先在根目录下的 hadoop文件夹中创建一个 data 文件夹,然后在 data 文件夹中创建 namenode 文件夹和 datanode 文件夹
在默认文件里面搜索 dfs.namenode.name.dir
和 dfs.datanode.data.dir
复制默认设置到 hdfs-site 中,然后修改成:
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
上面还配置了 dfs.replication
, 这个是副本数量,因为我们只有一台机器,所以设置成1就可以(默认是3),保存,然后到 server 上查看一下这个文件是否正确配置。
二、安装 SSH
安装 SSH 的目的就在于如果我们真的有一两百个namenode datanode 的时候我们不能自己手动一个一个启动,我们希望在必要的时候 namenode 可以自动启动 datanode 的机器。
首先下载并安装 SSH:
使用命令 yum -y install openssh-server openssh-clients
下载安装完成之后生成密钥对:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
然后切换到 home 目录下,生成的文件夹是隐藏的也就是 ls 查看不到,然是可以进入,目录是 ~/.ssh
进入到这个目录下之后有两个文件:id_rsa 和 id_rsa.pub
然后我们要把公钥放到别人的授权文件里面,然后我们之后拿私钥开授权文件就可以进去。
id_rsa.pub 就是这个公钥,但是我们没有授权文件,所以实际上我们就是把 id_rsa.pub 复制一份然后名字改成 授权文件的名字:authorized_keys
命令是:cp id_rsa.pub authorized_keys
到这个地方我们先测试一下 SSH 使用命令 ssh server2
,连接成功,退出连接使用命令 exit
退出这个连接
三、启动 namenode 和 datanode
第一次使用的时候我们需要初始化一下 namenode 命令是:hadoop namenode -format
然后到 /soft/hadoop/sbin
目录下运行 start-hdfs.sh
使用命令 jps 查看与 jdk 相关的进程,如果其中有 namenode datanode Secondary namenode 就可以了
四、测试hdfs
我们可以使用 windows 浏览器远程管理 hdfs ,首先需要先关闭 server 的防火墙:service iptables stop
下次启动的时候自动关闭防火墙: chkconfig iptables off
然后使用浏览器访问 http://192.168.80.141:50070 就进入到管理界面了,点击箭头指的那个位置就进入到 hdfs 文件查看器,
我们先使用命令创建一个文件夹,然后再文件里面创建一个文件 abc.txt 测试一下:
hdfs dfs -mkdir /abc
vi a.txt
hdfs dfs -put a.txt /abc
hdfs dfs -ls /abc
ok 没有问题~
网友评论