设为首页 收藏本站
查看: 1286|回复: 0

[经验分享] win7中的eclipse连接虚拟机中Linux(Ubuntu)的Hadoop (附上配置时遇到的错误和解决的方法)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-9 10:06:36 | 显示全部楼层 |阅读模式
Hadoop的运行模式共有三种:
1、单机模式(standalone)
默认模式,安装简单,几乎不用作任何配置,但是仅限于调试用途

2、伪分布模式(Pseudo-DistributedMode)
单节点上同时启动nn、dn、jt、tt、sn等5个进程,模拟分布式运行的各个节点

3、全分布模式(FullyDistributed Mode)
正常的Hadoop集群,由多个各司其职的节点构成;一般我们要求至少要有三个节点,一个做Master,另外两个做slave(datanode,tasktraker);另外,datanode最好要有两个,如果只有一个datanode,那就没有冗余,这个根本就不叫集群,没有多大意思


版本:Ubuntu13.04  Hadoop_0.20.2
因为一些原因,我就不专门新增加用户用来测试hadoop了




一、安装jdk
Linux下安装JDK1.7



二、安装Hadoop
点击下载Hadoop_0.20.2


1.我的hadoop_0.20.2.tar.gz在"下载"里,现在将它复制到安装目录 /usr/local/下;


cd 下载

sudo cp hadoop-0.20.2.tar.gz /usr/local/

2. 解压hadoop-0.20.2.tar.gz;



cd /usr/local
sudo tar -zxf hadoop-0.20.2.tar.gz



3. 将解压出的文件夹改名为hadoop;



sudo mv hadoop-0.20.2 hadoop



4. (可选,如果之前建立了新的用户和组,则需要输入下面这条命令)将该hadoop文件夹的属主用户设为hadoop:
sudochown-R hadoop:hadoop hadoop



20131028110314968.jpg


进入Hadoop的解压目录,编辑conf/hadoop-env.sh文件(注意0.23版后配置文件的位置有所变化)
20131028111522546.jpg



让环境变量配置生效:source /usr/local/hadoop/conf/hadoop-env.sh




编辑conf目录下core-site.xml、hdfs-site.xml和mapred-site.xml三个核心配置文件
core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml:MapReduce守护进程的配置项,包括jobtracker和tasktracker。

首先在Hadooph目录下新建几个文件夹
jimmy@jimmy:/usr/local/hadoop$ sudo mkdir tmp
jimmy@jimmy:/usr/local/hadoop$ sudo mkdir hdfs
jimmy@jimmy:/usr/local/hadoop$ sudo mkdir hdfs/name
jimmy@jimmy:/usr/local/hadoop$ sudo mkdir hdfs/data

接着编辑三个核心配置文件 *-site.xml
sudo gedit conf/core-site.xml
sudo gedit conf/hdfs-site.xml
sudo gedit conf/mapred-site.xml
20131028115836000.jpg

Center.jpg

注意:这里设置了dfs.data.dir和dfs.name.dir两个属性,可能会出现两个问题:

一、提示不能创建 %HADOOP_HOME%/hdfs/name/current和%HADOOP_HOME%/hdfs/data/current这两个文件夹,自动手动创建即可!!

二、不能启动datanode,查看%HADOOP_HOME%/logs/下面的datanode的日志,发现提示“DataNode:
java.io.IOException: Incompatible namespaceIDs in /dfs/dfs/data: namenode namespaceID = 69”;
原因是namenode
与datanode的namespaceIDs 不一致,删除%HADOOP_HOME%/hdfs/name/current和%HADOOP_HOME%/hdfs/data/current目录下的VERSION文件,问题就可以解决子!还有一种方法就是比较namespaceID的值,如果不一致,先修改namenode的值,再修改datanode的值,保持一致,然后重启hadoop就ok了!

20131028115854546.jpg

格式化HDFS(初次运行Hadoop时一定要有该操作)

source conf/hadoop-env.sh
bin/hadoop namenode -format
20131028122911093.jpg
创建文件夹
20131028123608140.jpg

格式化:hadoop namenode -format
提示successfully formatted表示格式化成功

20131028124225890.jpg



启动Hadoop所有服务
20131028124903875.jpg
用java的jps命令列出所有守护进程来验证安装是否成功,如果出现上图黄色框内的5个进程,说明Hadoop伪分布式模式已经配置好了!

摘自网络:千万要注意这里,我使用这个命令只能看到jps自己的进程,纠结了很长时间,忽然发现得用sudojps果然能出现6个进程,坑爹啊,大家千万要注意。


===== 补充内容:配置hadoop的环境变量   (Begin)=======
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin

SouthEast.jpg

==== 补充内容:配置hadoop的环境变量   (End)  ========





三、安装ssh(安全外壳协议)

这里的ssh并不是struts、s文件夹pring、hibernate;而是一种安全的通信协议,Hadoop便是基于这种协议进行通信的。
安装ssh:sudo apt-get install openssh-server
安装期间需要回复‘y’以继续运行:您希望继续执行吗?[Y/n]y
20131028002342453.jpg


安装完成后,我们启动ssh服务:sudo /etc/init.d/ssh start
启动后,通过命令查看是否已经正确启动:ps -e | grep ssh
20131028002840625.jpg
ok,启动成功,接下来我们要配置免密码登录,要不然每次连接都需要输入密码,那还不累死人呀,不过免密码登录是存在安全隐患的,现在我们只是学习的目的,安全隐患并不是我们需要考虑的问题!!


以rsa算法生成公钥和私钥
20131028100344640.jpg
注意:
1、首先用命令sudo -i,从$变成#;
$为普通用户的标识,#为超级管理员用户(root)的标识


2、命令“ssh-keygen -t rsa”中,“ssh-keygen”并没有空格分隔的,之前见到网友写成“ssh -keygen”,当然安装失败喇!


3、进入root后输入ssh-keygen -t rsa命令回车后,系统会询问存放的目录,按缺省值即可(即直接按“Enter”)


4、如果是第一次操作,会提示输入密码(Enter passphrase),也是直接按Enter跳过即可; 如果已经生成过私钥,则系统会提示是否覆盖当前私钥,直接覆盖即可!


设置免密码登录:进入~/.ssh目录下,将id_rsa.pub追加到authorized_keys授权文件中(一开始是没有authorized_keys文件的)
# cd .ssh
# cat id_rsa.pub >> authorized_keys

20131028102255843.jpg


登录:ssh localhost

20131028102858500.jpg


登出后再登录:
20131028102906562.jpg
这样以后再登录就不需要输入密码了!!



===== 虚拟机hadoop部分已经配置完成,接下来配置Ubuntu的网络部分 ======


1、在终端输入命令:“ifconfig”查看ip地址和子网掩码等。


2、配置网卡参数到interfaces文件:
20131030185359250.jpg
重启网卡:
sudo /etc/init.d/networking restart
注:如果在重启网卡后黑屏,强制重启后发现上不了网,请留言;因为我当时弄的时候,第一次重启是成功的,当我第二次弄的时候,重启网卡一直卡在黑屏处!!
重启后再次输入ifconfig查看网卡的配置是否已生效,一般来说已经设置好了!
3、配置Ubuntu的hosts文件:sudo gedit /etc/hosts
20131030192540843.jpg

重启Ubuntu


(注意:这里我们虚拟机的网络方式是:桥接)

20131030193220578.jpg



==== Ubuntu网络部分已经配置完毕,接下来配置物理机win7 ====


一、配置hosts文件

20131030194523421.jpg

二、安装unix仿真工具cygwin
Center.jpg
Center.jpg

三、在“服务”中启动cygwin
Center.jpg
四、打开 cygwin(生成密钥对和解压hadoop)

20131030202106046.jpg

解压hadoop,这里就不贴出来了,请参照上面在Ubuntu解压hadoop的操作!!
安装hadoop的eclipse插件(实质上就是复制某个jar包到指定的位置就可),操作如下:
1、找到hadoop-eclipse插件jar包的位置

20131030202849703.jpg
2、把jar包复制到eclipse安装目录下的plugins文件夹下面
20131030202854828.jpg
重启eclipse
======== 配置win7下的eclipse ======
一、设置eclipse的Perspective

Center.jpg
Center.jpg


这里需要注意一下:在Package Explorer视图下是不显示“DFS Locations”的
Center.jpg
二、调出MapRedue的视图

Center.jpg
Center.jpg
Center.jpg
Center.jpg
Center.jpg
在Project Explorer窗口发现有报错,这个错误在之前就提及过的了:
Center.jpg
解决这个问题,主要修改三处地方:

修改core-site.xml
Center.jpg
修改mapred-site.xml

Center.jpg
修改ubuntu的hosts文件
Center.jpg
把这三处地方修改过后,win7下的eclipse应该可以连接到ubuntu下的hdfs了,连接成功可以在eclipse看到一目录树,如下:
Center.jpg 这样说明连接成功了!




但是还会有一个权限的问题,如图所示:
Center.jpg

org.apache.hadoop.security.AccessControlException: Permission denied: user=jimmy\jimmylincole, access=READ_EXECUTE
解决的方法是:
到服务器上修改hadoop的配置文件:conf/hdfs-site.xml, 找到 dfs.permissions 的配置项 , 将value值改为 false
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>
If "true", enable permission checking in HDFS.
If "false", permission checking is turned off,
but all other behavior is unchanged.
Switching from one parameter value to the other does not change the mode,
owner or group of files or directories.
</description>
</property>

修改完要重启下hadoop的进程才能生效!!
另一种解决的方法,解释了错误出现的原因,原文地址如下:
http://hi.baidu.com/hontlong/blo ... e16270d0164ec4.html
修改完成后,重新在eclipse连接,如果如下图所示,那么,恭喜您,前面的辛苦没有白费,成功连接ubuntu的hdfs:
20131031005916375.jpg

至此,所有工作已经完成了!

============ 快乐的分隔线 =============
ps:一路起来,不容易呀!能坚持下来,就是成功者;
上面所配置的ip地址和端口号,一定要参照按自己所配置的,不能照抄我的;还有一点需要说明的是,可能大伙在看这篇博客的时候,发现我的ip地址前后不一致,这是因为我在搭建的时候,ubuntu设置成静态的ip地址,突然上不了网,最后改了一下ip地址和设置了DNS才解决不能上网的问题!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-42268-1-1.html 上篇帖子: Ubuntu14.04下hadoop-2.6.0单机配置和伪分布式配置 下篇帖子: Mongodb的启动和停止
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表