没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论




















Cygwin 安装 hadoop 的,笔者认为 hadoop 原始设计就
网上有很多讲授在 windows 下通过
是在 linux 下安装使用的,在 windows 下通过 Cygwin 安装也无非是模拟 linux
环境再在这个模拟的环境上装 hadoop,既然要学 hadoop 就真枪实弹的在 linux
下安装来学习,但是要搞一台真正的 linux 系统对一般个人来说不容易,但是我
们可以用虚拟机 VMware Player,就是在 windows 下装一个虚拟机(VMware
Player 就是个很好的虚拟机),然后在虚拟机上装一个 linux 系统,实现和本机
windows 的通信,具体的怎么安装虚拟机,怎么在虚拟机上安装 linux,以及怎
么实现和本机 windows 的通信,这里就不讲了,这个网上有很多资料。
2、在本机 windows 下,通过 eclispe 连接到 linux 虚拟机上安装好的 haoop,
进行开发调试
linux 上装好 hadoop 之后,可以等陆到 linux 上通过 hadoop 的 shell 命令查看 hadoop 的 hdfs 文件系统,执行写好的
mapreduce 程序,但是这样会很不方便,我们通常 的做法是在 windows 下开发程序,调试成功之后,再发布到 linux
上执行,这一部分就是来分享一下如何配置 windows 下的 eclipse,可以链接到 linux 下的 hadoop。
接下来就先说说第一部分的内容:
hadoop 安装有三种模式:单机模式,伪分布式,完全分布式。
1、单机模式: 没意义,pass 掉,不讨论。
2、 伪分布式: 就是在一台机器上模拟 namenode、datanode、jobtracker、tasktracker、secondaryname。每一个存
在的形式是一个 java 进程。
3、完全分布式:就是一个 hadoop 集群,有 n 台机器组成,一般组织方式是:一台机器作为 master,上 面 运行 namenode
和 jobtracker,另外的机器作为 slave,上面运行 datanode 和 tasktracker,至于 secondaryname,可以运行在 master 上,
也可以运行在另外一台机器上。secondaryname 是 namenode 的一个备份里面同样保存了名字空间,和文件到文件块的
map 关系。建议运行在另外一台机器上,这样 master 死掉之后,还可以通过 secondaryname 所在的机器找回名字空间,
和文件到文件块得 map 关系数据,恢复 namenode。

这里条件有限,就只能实现伪分布式,就是在虚拟机上装一个linux。其实也可以在虚拟机上装 n 个 linux,来实现完全
分布式,但是我怕我的小本本,吃不消。就只能装伪分布式了。
首先确保 windows 下已经安装了虚拟机,并在虚拟机上安装了linux,且能和 windows 通信了(在 windows 的 cmd 里
ping linux 的 ip 能 ping 通说明可以通信了,ask:怎么知道 linux 的 ip? ,answer:进 入 linux 终端,ifconfig 即可看到)
笔者 window 上已经安装了虚拟机并在虚拟机上装了 linux 系统,装 linux 的时候会有一个 root 用户,接下来我们就全
部用这个 root 用户来操作,网上好多资料说新建一个用户比如hadoop,来安装hadoop,这里为了方便,就用root(其
实是偷懒,不想弄得复杂,哇咔咔,(*^__^*) 嘻嘻… …)。
2、在 linux 下安装 jdk,并配好环境变量
3、修改 linux 的机器名,并配置 /etc/hosts
5、把修改好的 hadoop 整个文件夹传到 linux 下
6、把 hadoop 的 bin 加入到环境变量
7、格式化 hadoop,启动 hadoop
8、验证是否启动,并执行 wordcount
#这个顺序并不是一个写死的顺序,就得按照这个来,如果你知道原理,可以打乱顺序来操作,比如1、2、3,先那个
后那个,都没问题,但是有些步骤还是得依靠一些操作完成了才能进行,新手建议按照顺序来。#
ask:为什么要配置 ssh 无密码验证
answer:
Hadoop 需要使用 SSH 协议,namenode 将使用 SSH 协议启动
namenode 和 datanode 进程,(datanode 向 namenode 传递心跳
信息可能也是使用 SSH 协议,这是我认为的,还没有做深入了解)。许
多教程上介绍 Hadoop 集群配置时只说明了 namenode 上 SSH 无密码
登录所有 datanode,我在配置时发现必须使 datanode 上也能 SSH

无密码登录到 namenode,Hadoop 集群才能正常启动(也许这不是必
须的,只是我的一个失误,但是这样能够正常启动 Hadoop 集群)。上
述蓝色字体,是我粘的某个前辈的话,大概意思是,namenode 和
datanode 之间发命令是靠 ssh 来发的,发命令肯定是在运行的时候
发,发的时候肯定不希望发一次就弹出个框说:有一台机器连接我,让
他连吗。所以就要求后台 namenode 和 datanode 无障碍的进行通信,
这个无障碍怎么实现呢?,就是配置 ssh 无密码验证.上述中前辈有个
顾虑,说实现了 namenode 到 datanode 无障碍链接到,那还用实现
datanode 和 namenode 的无障碍连接吗?,这个我就不考虑了,我
这里是伪分布的,就一台机器,namenode 和 datanode 都在一个机
器上,能实现自己连自己就行了。 不是自己的问题就不去伤脑筋了,
哇咔咔~~,读者如果弄完全分布式的时候,碰到这个问题,可以自己试
试,不行,也就实现 datanode 到 namenode 的无障碍的通信,试试
又累不死~~~。
ask:实现无密码验证就能无障碍连接,这其中原理是神马捏?
answer:以 namenode 到 datanode 为例子:
Namenode 作为客户端,要实现无密码公钥
认证,连接到服务端 datanode 上时,需要在 namenode 上生成一个
密钥对,包括一个公钥和一个私钥,而后将公钥复制到datanode 上。
当 namenode 通过 ssh 连接 datanode 时 ,datanode 就会生成一个
随机数并用 namenode 的公钥对随机数进行加密,并发送给
namenode。namenode 收到加密数之后再用私钥进行解密,并将解密
数回传给 datanode,datanode 确认解密数无误之后就允许

namenode 进行连接了。这就是一个公钥认证过程,其间不需要用户手
工输入密码。重要过程是将客户端 namenode 公钥复制到 datanode
上。这也是我粘的某个前辈的话,啥也不说了,前辈说的很清楚,就是
这么回事。
我这里就一台机器,所以操作很简单
在 linux 命令行里输入:
ssh-keygen -t rs,a 然后一路回车。
root@hadoopName-desktop:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangtao/.ssh/id_rsa): / /密钥保存位置,直接回车保持默认;
Created directory '/home/zhangtao/.ssh'.
id_rsa.pub,id_rsa,
然后进入 /root/.ssh/下面,会看到两个文件
然后 ssh localhost 验证是否成功,第一次要你输入 yes,以后就不需要了。
二、安装 jdk,并配置环境变量
先在 linux 下面建一个目录用来安装 jdk,我建的目录是 /usr/program,就是以后 jdk 安装到这个目录下面。
先去下载一个 linux 下面的 jdk 版本,我的是 jdk-6u6-linux-i586.bin, 也有-rpm.bin 结尾的,这种结尾的安装不如直
接.bin 的简单,这个怎么下,就不说了,网上一大堆的,下载1.6 包括 1.6 以上的哦~~,然后用工具传到 linux 的
/usr/program 这个目录下,就是刚才我新建的那个,上传工具好多,ftp 也行,ssh 客户端也行,这个不多说,继续~~。
1、执行 chmod +x jdk-6u6-linux-i586.bin,(这是因为这个文件传过来不是可执行的文件,要把他变成可执行文件)。
2、执行 ./jdk-6u6-linux-i586.bin,(1、2 步骤都是在 /usr/program 目录下执行的,2 步骤,一路回车,遇到 yes/no?
全部 yes,最后会 done,安装成功).

3、执行 ls,会发现/usr/program 这个目录下有个文件,一个是jdk-6u6-linux-i586.bin 就是我们上传上来的,另一个
就是 dk1.6.0_06,就是 jdk 的安装根目录.
开始配置环境变量
1、执行 cd /etc, 进入/etc 目录下。
2、执行 vi profile, 修改 profile 文件
在里面加入以下四行
#set java environment export JAVA_HOME=/usr/program/jdk1.6.0_06 export
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
三、修改 linux 机器名
[root@hadoopName ~]#
读者也看到了,命令行的前缀 [root@hadoopName ~], @符号后面的就是机器名,前面的是当前用户名
下面说说怎么修改 redhat linux 下的机器名,下面的方法只适合修改 redhat 的,别的版本改机器名不是这样的
1、执行 cd /etc/sysconfig,进入/etc/sysconfig 目录下
2、执行 vi network,修改 network 文件,
NETWORKING=yes
HOSTNAME=hadoopName
剩余23页未读,继续阅读
资源评论


我是你的春哥!
- 粉丝: 1w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 向往C语言程序设计教案.pptx
- 西门子S7-200PLC与MCGS组态在污水处理控制系统中的应用及优化
- 基于单片机微型打印机系统控制设计.doc
- 网络购物的发展前景-怎样看待网络购物的发展前景趋势.docx
- 校园网络设计方案(网络规划)模板.doc
- 网络传输介质与网络设备.ppt
- 蓝代斯克网络安全准入解决方案.doc
- CoSec-Kotlin资源
- 知识表示方法语义网络和框架表示方法.ppt
- 网络营销教学实验——网络定价策略.doc
- 智慧城市时空信息云平台项目设计书.docx
- 电子商务实习报告总结(2).doc
- 信息网络安全保护方案.doc
- 基于Comsol技术的弯曲波导模式分析:有效折射率与损耗精确计算方法 电磁仿真 详解
- 社会网络研究样本.doc
- 信息系统安全和社会责任.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
