hadoop 1.2 集群搭建与环境配置
一、虚拟机环境
见我的另一篇博客http://www.cnblogs.com/xckk/p/6000881.html,
需要安装JDK环境,centos下安装JDK可参考:
http://www.centoscn.com/image-text/install/2014/0827/3585.html
注意三台机器均要配置,因为启动时,namenode会启动其它机器。
二、hadoop环境
hadoop1.2.1
idk7u79-linux-i586.tar.gz
三、开始搭完全分布式hadoop
三台机器,角色配置如下
| hostname | 角色配置 |
| centos1 | namenode |
| centos2 | datanode, secondaryNameNode |
| centos3 | datanode |
1、hadoop配置
分别在三台虚拟机内拷贝hadoop-1.2.1.tar.gz,并解压: tar -zxvf hadoop-1.2.1.tar.gz
conf目录文件配置
| conf目录下文件 | 配置项 | 备注 |
| core-site.xml |
<configuration> <property> <name>fs.default.name</name> <value>hdfs://centos:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-tmp</value> </property> </configuration> |
1、fs.default.name:配置namenode站点地址。需要注意。9000端口是hdfs rpc协议端口,如果从浏览器访问,则是http协议,端口号是50070.例:http://cetnos:50070 |
| hadoop-env.sh | export JAVA_HOME=/usr/local/java/jdk1.7.0_79 |
配置jdk时在系统配置了JAVA_HOME,但是hadoop不认,必须要在这里修改成你现在的路径。 |
| hdfs-site.xml |
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration> |
lock最大附本数,配置2台dataNode,此处填2. |
| masters | centos1 | master文件用来配置secondaryNameNod, 注意是secondaryNameNode,不是nameNode |
| slaves |
centos1 |
slaves用来配置dataNode |
2、格式化dfs
cd /home/hadoop-1.2/bin/
./hadoop namenode -format (格式化成功后会在/opt/hadoop-tmp/dfs/name/下生成格式化文件)
3、hadoop路径每台机器要保持一致
配置完成后,NameNode机器上输入命令,即可完成hadoopo的hdfs分布式服务的启动。
root@centos bin]# ./start-dfs.sh
4、启动后结果
在浏览器中输入http://{NameNode IP}:50070即可访问配置的hdfs环境
四、配置中常见问题
1、JAVA_HOME is not set.
错误日志:
root@centos bin]# ./start-dfs.sh
starting namenode, logging to /home/alvin/hadoop-1.2.1/libexec/../logs/hadoop-root-namenode-centos.out
centos1: bash: line 0: cd: /home/alvin/hadoop-1.2.1/libexec/..: No such file or directory
centos2: bash: line 0: cd: /home/alvin/hadoop-1.2.1/libexec/..: No such file or directory
centos2: starting datanode, logging to /opt/hadoop-1.2/libexec/../logs/hadoop-root-datanode-centos2.out
centos1: starting datanode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-root-datanode-centos1.out
centos2: Error: JAVA_HOME is not set.
centos1: Error: JAVA_HOME is not set.
centos1: bash: line 0: cd: /home/alvin/hadoop-1.2.1/libexec/..: No such file or directory
centos1: starting secondarynamenode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-root-secondarynamenode-centos1.out
centos1: Error: JAVA_HOME is not set.
产生原因三种:
(1)、JDK未配置
解决方法:配置JDK解决,可参考
http://www.centoscn.com/image-text/install/2014/0827/3585.html
(2)、hadoop在每台机器路径不一致,会报JAVA_HOME is not set.问题
该问题首先会想到centos1, centos2两台机器JDK环境是否有配置JAVA_HOME,但是查看均已配了JDK环境。
仔细阅读日志,发现问题是No such file or directory
centos1: bash: line 0: cd: /home/alvin/hadoop-1.2.1/libexec/..: No such file or directory
centos2: bash: line 0: cd: /home/alvin/hadoop-1.2.1/libexec/..: No such file or directory
解决方法:hadoop在每台机器配置路径要一致
(3)、hadoop-env.sh里面没有配置JAVA_HOME
解决方法:配置jdk时在系统配置了JAVA_HOME,但是hadoop不认,必须要在这里修改成你现在的路径。
分析原因:
由于centos1下hadoop路径在/home/alvin/hadoop-1.2.1/下,centos2与centos3路径在/opt/hadoop-1.2/下,
启动datanode或secondaryNameNode节点时,报No such file or directory.
可以看到centos2与centos3都是按照centos1机器的hadoop路径去读取文件的。因此报 No such file or directory
2、启动dfs服务时,jps命令查看,NameNode启动,DataNode和SecondaryNameNode未启动。
防火墙未关,输入命令service iptables stop关闭三台机器防火墙
3、org.apache.hadoop.security.AccessControlException
解决方法
在 hdfs-site.xml 添加参数:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4、org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /opt/hadoop-tmp/dfs/data: namenode namespaceID = 1165565627; datanode namespaceID = 1468616188
解决方法:以name为准,将namenode节点上${hadoop-tmp}/hfs/data/current/VERSION文件的namespaceID改为${hadoop-tmp}/hfs/name/current/VERSION文件的namespaceID。同时将datanode节点上的${hadoop-tmp}/hfs/data/current/VERSION文件的namespaceID相应修改
5、org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid
发生错误的原因就是hdfs下的data文件夹权限设置错误,应为rwxr-xr-x,因此修改方式如下:
解决方法:chmod 755 /opt/hadoop-tmp/ –R
6、ERROR security.UserGroupInformation: PriviledgedActionException as:alvin cause:java.net.ConnectException: Call to 192.168.95.134/192.168.95.134:9091 failed on connection exception: java.net.ConnectException: Connection refused
java.net.ConnectException: Call to 192.168.95.134/192.168.95.134:9091 failed on connection exception: java.net.ConnectException: Connection refused
at org.apache.hadoop.ipc.Client.wrapException(Client.java:1142)
解决方法:确认IP和端口号是否正确,mapreduce端口号是9001,这里是9091.所以报错
7、启动hadoop时,log中出现:java.io.IOException: NameNode is not formatted.
解决方法:初始化namenode
./hadoop namenode –format
秀才坤坤 出品
转载请注明源链接地址:http://www.cnblogs.com/xckk/p/6124553.html
hadoop 1.2 集群搭建与环境配置的更多相关文章
- Hadoop集群搭建-02安装配置Zookeeper
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- hadoop高可用集群搭建小结
hadoop高可用集群搭建小结1.Zookeeper集群搭建2.格式化Zookeeper集群 (注:在Zookeeper集群建立hadoop-ha,amenode的元数据)3.开启Journalmno ...
- Hadoop集群搭建-05安装配置YARN
Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...
- Hadoop集群搭建-04安装配置HDFS
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- 从零自学Hadoop(06):集群搭建
阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...
- hadoop伪分布式集群搭建与安装(ubuntu系统)
1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...
- Hadoop介绍及集群搭建
简介 Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理.它的核 ...
- Hadoop完全分布式集群搭建
Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和 ...
- 大数据之Hadoop完全分布式集群搭建
1.准备阶段 1.1.新建三台虚拟机 Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建.我们准备3台服务器(关闭防火墙.静态IP.主机名称).如果没 ...
随机推荐
- P151、面试题27:二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向.(本质是中序遍历)二叉树结点的定义如下:struct BinaryTreeNod ...
- 关于TableView中出现deallocated问题
Message sent to deallocated instance 关于的ios 开发中 deallocated问题,相信大家遇到了不少了: 关于怎么查找解决这个问题,特别是当问题在tableV ...
- 高难度(1)常用的AR构架或库
Layar http://www.layar.com/ Layar旨在打造的一个开放的增强现实的平台,任何第三方都可以通过Layar的开发接口来打造基于Layar的自己的增强现实应用. 高通AR开发包 ...
- CSS和JavaScript以及Ajax实现预加载图片的方法及优缺点分析
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画 廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发 ...
- 如何查看你的 memcached 的状态
最近略忙,好久没有更新博客了,已长草,今天来除下草,好了,不废话了,开始! 现在很多web服务都会用到 memcached ,如何知道你的 memcached 是否正常工作,命中率如何呢,本文简单介 ...
- 函数lock_rec_get_nth_bit
/*********************************************************************//** Gets the nth bit of a rec ...
- 反编译.net dll
自己公司的程序,年代久了,没有源代码,修改一些小地方,只能反编译,还好当时没有混淆. 先ildasm 反编译. 删除 .publickey = ( ) 这段,去原来签名. 然后再用找要改的IL,这 ...
- bzoj1044
好题 第一问不难,毕竟二分答案类的题目在USACO上都练了好多遍了 第二问充分的暴露了我dp渣的本性 一开始楞是没想出来 f[i,j]表示到第i根木棒切了j刀满足最长段小于等于ans的方案数 式子是这 ...
- windows获取窗口句柄
1.使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置. #include <Windows.h> # ...
- LeetCode Maximum Depth of Binary Tree (求树的深度)
题意:给一棵二叉树,求其深度. 思路:递归比较简洁,先求左子树深度,再求右子树深度,比较其结果,返回:max_one+1. /** * Definition for a binary tree nod ...