hadoop安装时遇到了好多问题,现在闲着无事,回过头来总结一波,现在用的是伪分布式(分布式安装好了,发现电脑同时运行三个虚拟机很伤,伪分布已足够学习用,所以果断卸载),发现当你遇见问题时,还是问度娘来的快,等你解决后,学习一段时间,回头看看这些问题,可能明白了许多!
hadoop安装主要是以下几大步骤:
教程:http://dblab.xmu.edu.cn/blog/install-hadoop/
1.安装linux
本人用的是乌班图
2.创建hadoop用户
sudo adduser hadoop sudo 给hadoop用户sudo权限,以后用很方便(centos下是修改/etc/sudouser隐藏文件来将hadoop用户放到sudo组中) a()
3.安装并配置ssh无密登录
没啥说的,不会百度即可
4.安装java环境
注意环境变量的配置
5.安装hadoop伪分布环境并配置
非分布式不多说,来看伪分布式:
(1)注意将hadoop 安装目录的所有者改为hadoop用户,因为hadoop用户是使用者,可避免权限问题!
sudo chown -R hadoop hadoop-2.7.1
(2) core-sitt.xml hdfs-site.xmlhadoop-env.sh(配置java_home) 的配置
(3)hadoop2.0版本用的是yarn,若要启动yarn,要配置yarn-site.xml mapred-site.xml(原文件是.template 需改名)文件,不用的话将mapred-site.xml改为mapred-site.xml。template即可
(4) 配置好后注意格式化namenode
hdfs namenode -format
以上是安装过程,下面是遇到的问题:
1.格式化namenode时,Error: JAVA_HOME is not set and could not be found. 的错误,说明之前设置 JAVA_HOME 环境变量那边就没设置好
2.启动 Hadoop 时提示 Could not resolve hostname
我是喜欢直接修改/etc/profile 这个是对所有用户起作用的配置文件,配置后记得source /etc/profile来生效
3.启动时datanode或namenode无法启动,原因是你关机前没有结束hadoop造成的
先stop-all.sh 结束所有进程,然后rm -rf hadoop2.7.1/tmp 删除hdfs的工作目录,接着可以重新创建工作目录 tmp、tmp/data、tmp/name 然后执行hdfs namenode -format格式化,最后重启 start-all.sh即可
but,多次格式化namenode几点会带来一个问题,就是datanode无法启动问题:
原因:
每次格式化会给namenode产生一个新的id,而datanode的id却还是原来的,导师两者id不一致,所以会启动不了
解决:
修改工作目录下两个的id,使datanode和namenode的id保持一致,vim hadoop2.1.1/tmp/data/current/VERSION vim hadoop2.1.1/tmp/name/current/VERSION 修改里面的id值,参考http://blog.youkuaiyun.com/u014432433/article/details/50543993
http://blog.youkuaiyun.com/shizhixin/article/details/50402648
path变量没配置好: http://blog.youkuaiyun.com/dianzishijian/article/details/52073841
5.在执行start-all.sh的时候出现root@localhost's password:localhost:permission denied,please try again。
ssh配置文件有问题
http://www.cnblogs.com/hmy-blog/p/6500909.html
6.现在还没解决的问题:访问hdfs web界面 用localhost:50070不可以 但是用127.0.0.1/192.168.0.200:50070就可以,我的hosts文件没问题啊,奇怪!(已解决,hosts文件的配置有问题!)
http://blog.youkuaiyun.com/shizhixin/article/details/50469566 百度了好多,然并卵
7.大佬的错误总结
http://blog.youkuaiyun.com/iam333/article/details/16359133
接下来是用eclispe编写程序遇到的问题:
1.jar包依赖问题:
写一个简单的访问hdfs文件系统程序就有问题,原因是要用到好多jar包,所以就把好多jar包都到了进来,不然会报错误:classnotfound异常 但是这样很麻烦,以后用maven仓库就好了
2.window用eclispe-hadoop插件 远程访问linux上的hdfs系统问题:
windows下环境搭建:http://www.cnblogs.com/duking1991/p/6056923.html
我的ip总是跳来跳去,访问失败,暂时用不到,就先不管。
http://www.aboutyun.com/thread-5104-1-1.html
3.还有个warn 是本地库不对,是版本的问题
http://www.secdoctor.com/html/yyjs/31101.html
还有一些其他问题:
http://blog.youkuaiyun.com/u013281331/article/details/17992077
http://blog.youkuaiyun.com/jack85986370/article/details/51902871
http://blog.youkuaiyun.com/songchunhong/article/details/47057151
先写这些,以后持续更新!