HDFS系统的搭建
节点的介绍:
首先我这里有5台虚拟机,1台NameNode,4台DataNode
IP | Hosts(主机名) |
---|---|
192.168.56.101 | master |
192.168.56.102 | slave1 |
192.168.56.103 | slave2 |
192.168.56.104 | slave3 |
192.168.56.105 | slave4 |
master充当着NameNode的角色,其他的salve充当着DataNode的角色,并且在这5台虚拟机上我都修改了hosts文件,配置了他们的主机名他们可以通过主机名进行互相的访问。
编辑hosts文件:vim /etc/hosts
配置完成 wq 保存退出。
开始搭建HDFS
1.基础环境变量配置
-
解压Hadoop包
配置hadoop的java运行环境
解压完成后进入 /hadoop-2.7.3/etc/hadoop 在这个文件夹里都是Hadoop的一些配置文件,基本上我都要修改的东西都在这个目录下。
编辑hadoop-env.sh配置上java的环境地址
vim hadoop-env.sh
- 在Linux中配置hadoop环境
编辑 /etc/profile文件 这是Hadoop的安装路径
vim /etc/profile
加入 export PATH=$PATH:/usr/local/hadoop-2.7.3/bin:/usr/local/hadoop-2.7.3/sbin
保存后输入命令让profile文件立即生效。
source /etc/profile
输入命令:hadoop
如果出现以下内容 Hadoop环境就配置成功了
2.设置SSH免密码登录
在我的master机器上也就是我192.168.56.101这台机器,这台机器将会成为我的Hadoop集群NameNode节点。
进入master这台机器的的根目录
输入命令:ssh-keygen -t rsa
出现提示可以不理会 直接按几次回车键就行了,出现以下界面说明生成私钥id_rsa和公钥id_rsa.pub
把生成的公钥id发送到 slave1、slave2、slave3、slave4机器上
输入命令: ssh-copy-id slave1
slave1会要求你输入slave1这台机器上的密码
密码输入正确后你会看到以下界面,它说已经添加了密钥,它叫你尝试登陆一下
输入命令SSH免密登陆到slave1
ssh slave1
你发现你已经从master不用输入密码登陆到slave1上了
添加其他的slave2、slave3、slave4 也是同样的操作。
3.配置HDFS
在所有有的机器上的上core-site.xml、和hdfs-site.xml 文件
修改core-site.xml,在configuration标签内加入以下配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoopData</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
</configuration>
修改hdfs-site.xml,在configuration标签内加入以下配置
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopData/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopData/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
创建文件夹Hadoop存放数据的文件夹
mkdir /home/hadoopData
4.配置NameNode节点
master主机是我的NameNode节点,所以我在我的master主机上操作,也就是192.168.56.101这台主机。
在master主机的Hadoop目录下修改slaves文件,加入DataNode的节点
注意!注意!注意!
在我hosts文件中已经绑定了域名所以可以直接通过主机的名字访问(不明白看本文章中的节点的介绍)
编辑slaves文件: vim slaves
slave1、slave2、slave3、slave4都是DataNode的节点我把它们加入到我的NanmeNode节点中
这样我就可以一个命令启动整个集群。
5.格式化NameNode、启动HDFS系统
在我master这台主机上 输入命令HDFS格式化命令
格式化HDFS:hdfs namenode -format
输入启动HDFS系统命令
输入命令:start-dfs.sh
检查是否启动成功
在游览器中输入 :http://192.168.56.101:50070/
默认 你NameNode的IP+50070端口
当你见到以下界面说明你的集群已经起来了
再检查DataNode
我这里配了4个DataNode也起来了 说明整个HDFS集群搭建完成了!