adoop 0.20.2伪分布式安装详解
hadoop有三种运行模式:
伪分布式不需要安装虚拟机,在同一台机器上同时启动5个进程,模拟分布式。
完全分布式至少有3个节点,其中一个做master,运行名称节点(namenode)、作业跟踪器(jobtracker)等主要进程,另外两个做datanode,运行tasktracker,最好有两个,否则没有冗余,谈不上集群。
下载hadoop 0.20.2安装包:
http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
解压后,放置在合适的位置,如/opt/Hadoop-0.20.2,执行以下命令:
tar -zxvf /opt/haddop-0.20.2
x表示展开文件,-x | --extract | --get 从存档展开文件
z表示用gzip对文档进行压缩或解压,-z | --gzip | --ungzip 用gzip对存档压缩或解压
-v | --verbose 详细显示处理的文件
-f | --file [HOSTNAME:]F 指定存档或设备(缺省为 /dev/rmt0)
如果指定解压目录,则最一个字符应当是“/”,否则就是文件了
进入Hadoop-0.20.2目录
vim conf/Hadoop-env.sh
其中的conf目录是config的缩写,通常是用来放置配置文件的目录,很多开源软件习惯于使用这个目录名称。Hadoop版本不同,配置文件可能也不同,要根据实际情况有所调整。
解压后,进入Hadoop-0.20.2目录,进行配置
本文配置这四个文件。
修改hadoop-env.sh文件
进入conf目录,找到图中的三个文件
vim hadoop-env.sh
找到JAVA_HOME那一项,或修改,或增加,由你选择,最后使
export JAVA_HOME=你的java目录
这一行生效。
此文件暂时仅配置这一项即可。
修改core-site.xml文件
然后
vim core-site.xml
最初的<configuration>项是空的,伪分布式完全按照图中的<property>部分添加即可。
完全分布式要把hdfs:项的主机名部分换成对应的IP或主机名,不管是什么,不会是localhost,此处要注意。
其中的fs.default.name用来指定namenode的IP地址和端口,用于和对应的节点联系。
修改hdfs-site.xml文件
vim hdfs-site.xml
与core-site相同,第一次进入时<configuration>项是空的,伪分布式完全按照红圈部分添加即可。完全分布式要修改dfs.replication部分的value,因为hadoop会往多个节点中复制数据用于备份,此处设置的是最大份数,也就是数据节点的数量,也就是小弟的数量,伪分布式只有一个节点,所以是1,写多了也没用。dfs.data.dir是数据节点的数据的存放位置。
其它参数不多讲。
修改mapred-site.xml
vim mapred-site.xml
作业跟踪器的位置,端口默认,无须修改。作业跟踪器是整个mapreduce系统调度的核心。
伪分布式照搬上图,完全分布式修改主机名。
其它参数,暂时不动。
生成SSH密钥对
- 输入su,切换到root用户
- cd /root,进入root目录
- 运行ssh-kengen -t rsa
给root用户创建一对密钥,公钥和私钥,不对称(不一样),公钥可公开,别人拿到公钥后,可对文件需要加密的内容进行加密,然后传给服务器,服务器可用私钥解密。公钥加密的,只有私钥才能解密。反之亦然,可以用私钥加密,用公钥可以解密,私钥本身无法解密,但这样做没有意义。
拿到公钥,反推私钥,基本上不可能,以目前的计算能力,需要几百年。
RSA算法,产生密钥过程时间很短,但反推消耗时间非常长。例如,两个上千位的素数相乘,所得到的结果,如果反推,可能性太多,只能逐一尝试,这样就会消耗非常长的时间。
Enter file in which to save the key,这一句是问把生成的公钥和私钥存放在哪个文件,如果输入a,则生成a.pub和a两个文件。如果不输入,直接回车,则生成默认文件名id_rsa.pub和id_rsa。
可以使用任何编辑工具查看它们的内容,比如cat id_rsa.pub,里面是人类无法理解的字符串。
然后执行命令:
cp id_isa.pub authorized_keys
authorized_keys中存在id_rsa.pub公钥,就可以免密码连入
至此,hadoop0.20.2的伪分布式就配完了。
格式化分布式文件系统
hadoop目录下执行bin/hadoop namenode -format
此操作的目的在于,在“名称节点”上建立一系列结构,用来存放整个HDFS的元数据,
出现绿圈的提示has been successfully formatted即是配置成功。
下面在hadoop目录下执行以下命令:
bin/start-all.sh
(如果进入bin目录,然后执行start-all.sh,会报“未找到命令”)
如果没有看到denied之类的提示,就是启动成功了。
检测守护进程启动情况
在root用户下,使用java的jps,会看到类似以下的提示:
一样的规则,不能进入到java的bin目录下执行jps,而是java目录下执行bin/jps
表示伪分布式hadoop0.20.2配置成功。