阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop 1.2 集群搭建与环境配置

141次阅读
没有评论

共计 5192 个字符,预计需要花费 13 分钟才能阅读完成。

一、虚拟机环境

见我的另一篇 http://www.linuxidc.com/Linux/2016-12/137955.htm

需要安装 JDK 环境,CentOS 下安装 JDK 可参考:http://www.linuxidc.com/Linux/2016-12/137956.htm

注意三台机器均要配置,因为启动时,namenode 会启动其它机器。

二、Hadoop 环境

hadoop1.2.1

idk7u79-linux-i586.tar.gz

三、开始搭完全分布式 hadoop

三台机器,角色配置如下

hostname角色配置
centos1namenode
centos2datanode, secondaryNameNode
centos3datanode

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.shexport 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.
masterscentos1master 文件用来配置 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.linuxidc.com/Linux/2016-12/137956.htm

(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

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

CentOS 6.3 下 Hadoop 伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop 2.6.0 HA 高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/137957.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5192字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中