Hadoop学习之安装HDFS

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hadoop学习之安装HDFS
在windows电脑⾥⾯搭建的⼀个简单的HDFS(Hadoop 分布式⽂件系统)
⽤了三个服务器:IP地址分别为:
192.168.233.3 HDFS的名称节点:NameNode
192.168.233.4 HDFS的数据节点:DataNode 和 HDFS的第⼆名称节点 SecondearyNameNode
192.168.233.5 HDFS的数据节点:DataNode
其中192.168.233.3中的NameNode是⽤来存放元数据的(⽂件的⼤⼩、⽂件的拥有者、⽂件的权限等等)
192.168.233.4和192.168.233.5中的DataNode是⽤来存放⽂件内容的(存放的⽂件会被切分成多个数据块,然后存放在不同的DataNode中)
(1)上传HDFS相关的jar包,这⾥应⽤的是hadoop-1.2.0.tar.gz
下载地址:https:///dist/hadoop/common/hadoop-1.2.0/hadoop-1.2.0.tar.gz
(2)解压:tar -zvxf hadoop-1.2.0.tar.gz
(3)创建快捷⽅式:
(4)修改配置⽂件:
来源配置信息:/docs/r1.2.1/single_node_setup.html
在下载的解压的包中有docs/core-default.html⾥⾯有详细的介绍各个参数配置有什么具体意思
/home/hadoop-1.2/conf/core-site.xml
:这个是客户端进⾏访问的ip地址和端⼝号,但是浏览器采⽤的是http协议,所以浏览器访问的端⼝号是50070,这个地址就是NameNode的地址
hadoop.tmp.dir:后续的DataNode都是基于这个地址,此参数默认的是linux的tmp⽬录,这⾥必须要配置,否则,服务器重启的时候,tmp⽂件夹会清空,会导致上传的⽂件丢失。

这个/opt/hadoop-1.2⽬录不需要⼿动创建,在NameNode初始化的时候,NameNode会⾃⼰创建
/home/hadoop-1.2/conf/hdfs-site.xml
dfs.replication这是DataNode中的block数据块的副本数量,因为是NameNode本台服务器的副本数,所以设置为1,如果不设置的话,默认是3,就是说DataNode中的block数据块的所有副本都在NameNode这台服务器上,这样的话,⼀旦服务器硬盘损坏的话,数据就会⽆法找回,所以必须要放在不同的服务器上。

于此同时需要配置其它DataNode中的block 的IP地址,在如下配置⽂件中添加。

其中的masters配置的IP地址是secondNameNode 的地址,只要和NameNode不是同⼀IP地址就⾏,如果和NameNode地址⼀致,⼀旦NameNode出现问题,那么NameNode存储的所有信息就会丢失,⽽配置了SecondNameNode后,可以恢复部分数据。

(5)ssh 设置免密码登录,就是各个DataNode和NameNode之间进⾏信息通讯,不需要进⾏密码连接。

主要是在启动NameNode节点的时候,直接就可以启动其它的DataNode节点,为了⽅便在⼀台服务器上启动其它的服务器,⽐如在192.168.233.3服务器上写⼀个shell脚本,来启动其它服务器上的节点。

执⾏如下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
就会创建⼀个公钥和⼀个私钥,如图:
在/root/.ssh⽬录下会有两⽂件产⽣:id_dsa⽂件和id_dsa.pub⽂件
这个是192.168.233.3服务器产⽣的,上⾯画红线部分是id_dsa.pub⽂件的内容,如果要ssh 192.168.233.4服务器的话,需要将id_dsa.pub⽂件的内容复制的233.4服务器上的/root/.ssh/authorized_keys⽂件中,先将id_dsa.pub⽂件复制到233.4服务器上,执⾏如下命令:
scp id_dsa.pub root@192.168.233.4:/tmp
然后切换到233.4服务器上去,执⾏如下命令:
cat /tmp/id_dsa.pub >> /root/.ssh/authorized_keys
将id_dsa.pub⽂件的内容复制到需要登录的服务器上,并且将内容添加到⽬标服务器上的/root/.ssh/authorized_keys⽂件中。

可以执⾏如下命令:
scp id_dsa.pub ⽂件中,然后再登录到233.4服务器上,执⾏如下命令:
cat /tmp/id_dsa.pub >> /root/.ssh/authorized_keys:将id_dsa.pub⽂件内容追加到authorized_keys⽂件中。

注意:将id_dsa.pub⽂件内容复制到远程服务器上的authorized_keys⽂件夹中,不要⼿动复制,这样不会⽣效,需要使⽤命令cat id_dsa.pub >> authorized_keys
接下来就可以免密登录了,如图:
(6)初始化hdfs:
在Hadoop的bin⽬录下执⾏如下命令:./hadoop namenode –format
此命令的作⽤是使得之前配置的core-size.xml内容⽣效和hdfs-size.xml内容⽣效
(7)在hadoop的dfs启动的配置⽂件中配置JAVA_HOME路径,修改如下的配置⽂件:
上⾯的export JAVA_HOME必须要打开,并且要和安装的jdk配置的路径保持⼀致
怎么样查看安装的jdk,在如下的⽬录下:
这就是安装的全局变量JAVA_HOME,要和hadoop 的conf⽂件夹⾥⾯的hadoop-env.sh配置JAVA_HOME保持⼀致。

修改完之后要保证其他的dataNode上的配置⽂件保持⼀致。

(8)将conf下的所有⽂件复制到其它的dataNode 上去。

先切换到conf⽬录再执⾏如下命令:
scp ./* root@192.168.233.4:/root/hadoop-1.2.0/conf
scp ./* root@192.168.233.5:/root/hadoop-1.2.0/conf
(9)启动hdfs(特别要注意的是,要将服务器的防⽕墙进⾏关闭,否则启动DataNode的时候会失败!!)
Service iptables stop 关闭防⽕墙
可以通过jps命令查看NameNode是否启动成功
(11)停⽌命令:./stop-dfs.sh
(12)在windows下⾯进⾏域名解析:找到C:\Windows\System32\drivers\etc\hosts⽂件,加⼊如下的内容,就可以在浏览器进⾏访问了
(13)在浏览器访问的地址为:(不知道为什么上⾯的域名解析没有⽣效,所以下⾯我直接⽤的IP地址访问的)
初次写博客,写的不好,写的不详细,请见谅!。

相关文档
最新文档