adoop 0.20.2伪分布式安装详解java
hadoop有三种运行模式:node
伪分布式不须要安装虚拟机,在同一台机器上同时启动5个进程,模拟分布式。算法
彻底分布式至少有3个节点,其中一个作master,运行名称节点(namenode)、做业跟踪器(jobtracker)等主要进程,另外两个作datanode,运行tasktracker,最好有两个,不然没有冗余,谈不上集群。apache
下载hadoop 0.20.2安装包:vim
http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz服务器
解压后,放置在合适的位置,如/opt/Hadoop-0.20.2,执行如下命令:ssh
tar -zxvf /opt/haddop-0.20.2分布式
x表示展开文件,-x | --extract | --get 从存档展开文件工具
z表示用gzip对文档进行压缩或解压,-z | --gzip | --ungzip 用gzip对存档压缩或解压oop
-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配置成功。