一、虚拟机环境

见我的另一篇博客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
2、hadoop.tmp.dir默认配置/tmp/hadoop-${user.name},hadoop文件数据会默认配置在此目录,由于tmp目录,linux重启后自动清空,因此这里对hadoop.tmp.dir进行手动指定。

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
centos2  (一个节点一行)

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 集群搭建与环境配置的更多相关文章

  1. Hadoop集群搭建-02安装配置Zookeeper

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  2. hadoop高可用集群搭建小结

    hadoop高可用集群搭建小结1.Zookeeper集群搭建2.格式化Zookeeper集群 (注:在Zookeeper集群建立hadoop-ha,amenode的元数据)3.开启Journalmno ...

  3. Hadoop集群搭建-05安装配置YARN

    Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...

  4. Hadoop集群搭建-04安装配置HDFS

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  5. 从零自学Hadoop(06):集群搭建

    阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...

  6. hadoop伪分布式集群搭建与安装(ubuntu系统)

    1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...

  7. Hadoop介绍及集群搭建

    简介 Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理.它的核 ...

  8. Hadoop完全分布式集群搭建

    Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和 ...

  9. 大数据之Hadoop完全分布式集群搭建

    1.准备阶段 1.1.新建三台虚拟机 Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建.我们准备3台服务器(关闭防火墙.静态IP.主机名称).如果没 ...

随机推荐

  1. 当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

  2. WCF的行为与异常-------配置文件说明

    ServiceBehavior and OperationBehavior(这些都是应用在实现类上) http://msdn.microsoft.com/zh-cn/library/system.se ...

  3. node.js 异步式I/O 与事件驱动

    Node.js 最大的特点就是异步式 I/O(或者非阻塞 I/O)与事件紧密结合的编程模式.这种模式与传统的同步式 I/O 线性的编程思路有很大的不同,因为控制流很大程度上要靠事件和回调函数来组织,一 ...

  4. C#中string.Format()和ToString()格式化方法

    C#数字格式化输出是我们在编程中经常需要处理的事情,那么这里向你介绍了一些C#数字格式化输出的例子,这样就会方便你来选择和比较,什么方式是比较适合自己项目的. int a = 12345678; C# ...

  5. 【HDOJ】4336 Card Collector

    概率DP的题目,一直就不会做这类题目.dp[s]表示状态为s的时候再买多少张牌可以买全,表示的是一个期望值.dp[s] = 1 + P(empty) * dp[s] + P(had) * dp[s] ...

  6. poj3694Network(tarjan+lca)

    http://poj.org/problem?id=3694 用tarjan算出桥,用lca算出公共祖先 把路上的边更新掉 原来的桥变为不是桥 看一解题报告感觉有一部分是不用加的 不知道是不是数据水 ...

  7. 函数flst_get_last

    flst_node_t中存有12个字节的内容,前6个字节(page:4 boffset:2)表示相对自己前一个node的fil_addr_t信息,后6个字节表示相对自己后1个node的fil_addr ...

  8. linq .dbml转化成sql脚本

    public String ConvertDBMLToSqlScript(System.Data.Linq.DataContext DBContext)  {         String DBCon ...

  9. Java多线程同步——生产者消费者问题

    这是马士兵老师的Java视频教程里的一个生产者消费者问题的模型 public class ProduceConsumer{ public static void main(String[] args) ...

  10. JVM内存结构之一--总体介绍

    Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域. 有的人把JVM管理的内存简单地分为堆内存和栈内存,这样分未免有些太肤浅了. Java ...