使用系统: centos7 (HanWate Linux7 最小系统)
两个系统镜像:HanWate_BigData-X86_64.iso
HanWate_HDP2.6.1.0_REPO.iso
包含有linux系统及hadoop相关组件
3个linux系统 : mymaster1 mymaster2 myslave1
因为笔记本只有4G内存 所以三个系统都是1G的 内存的大小会影响部分功能
Namenode与Datanode
NameNode:
(1)主要提供查询服务
(2)保存metadata信息
文件的owership和permissions
文件包含哪些block以及block保存在哪个datanode(block的位置信息)
(3)metadata信息会在启动后自动加载到内存中
(4)metadata存储在fsimage文件中 block的位置信息不在fsimage中
DataNode:
(1)保存block
(2)启动datanode时会向namenode汇报block信息
(3)向namenode发送心跳保持与其联系(3秒一次),如果namenode10分钟没有收到datanode的心跳则认为其已经lost,并复制其上的block到其它的datanode
SecondaryNamenode:
(1)SecondaryNamenode并不是NameNode的备份节点
(2)备份fsimage
(3)日志与镜像的定期合并的作用
Namenode与Datanode的安装
(3)表示3台机器都需要安装
一、安装hadoop(3)
linux系统中需要 meke* 与 openssl-1* 以及redhat-lsb基础包
由于是在无互联网环境下所以使用iso镜像安装,需要配置新的yum仓库
缺少KEY时
安装hadoop-2.6.1.0.129
二、地址角色的分配(3)
linux的网络连接模式为NAT模式会自动分配ip地址 (ip addr show查看)
mymaster1:
mymaster2:
myslave1:
(1)修改主机名 /etc/hostname
是三台主机更易于辩认
(2)配置主机名映射
三台机器的ip地址 主机名 都要添加,使这三台机器可以通信。
完成后重启机器相互通信(ping)
三、各个主机安装的节点
mymaster1:namenode、datanode
mymaster2::secondarynamenode、datanode
myslave1:datanode
四、配置文件的修改(3)
core-site.xml 的修改
HDFS的访问入口
hdfs-site.xml 的修改(需自己创建的文件)
namenode与datanode的数据存放位置。namenode至少2个,datanode至少1个
五、准备数据目录(3)
(1)创建 disk1与disk2用来存放数据,其中disk2在另一块硬盘中。
(新添加的硬盘要:分区,格式化,挂载)
(2)创建子目录disk{1,2}/dfs/{dn,nn}
(3)修改子目录权限chown -R hdfs.hadoop /disk[12]
六、初始化hdfs文件系统 (1)
仅在主节点上操作(namenode)
JAVA_HOME要配置好否则不能初始化
切换到hdfs用户(su或sudo)
执行 hdfs namenode -format
七、启动服务
mymaster1:namenode ,datanode
mymaster2:sendarynamenode,datanode
myslave1:datanode
注意:(1)要将节点的.server文件在/usr/lib/systemd/system 中可执行(链接(ln)、复制(cp))
(2)要创建/var/run/hadoop-hdfs文件来让namenode可以执行并修改权限
这样namenode就可以启动了
ps:为了防止重启机器时/var/run/hadoop-hdfs 文件丢失,需要在
/usr/lib/tmpfile.d/ 文件下新建一个hadoop.conf文件并写入
d /var/run/hadoop-hdfs 0755 hdfs hadoop -
这样就可以永久存在了
datanode与secondarynamenode也是同样的道理
上图就是没有/var/run/hadoop-hdfs 报错了。
还可以使用systemctl enable hadoop-hdfs-namenode 将其激活,使下次开机后自动开启服务。
namenode启动后会50070端口会启动
可以访问该网站: http://192.168.40.132:50070/
这样就配置好了
遇到问题 :
配置文件排错 core-site.xml hdfs-site.xml
权限问题 文件无法读写
run文件