Hadoop伪分布式安装 – 风又奈何

本文介绍的主要是Hadoop的伪分布式的搭建以及遇到的相关问题的解决,做一下记录,jdk的安装这里就不做太多的介绍了,相信大家根据网上的安装介绍很快就能安装成功。

?

?

?

环境

操作系统 Oracle VM VirtualBox-rhel-6.4_64 ?
本机名称 yanduanduan ?
本机IP 192.168.1.102 ?
JDK 1.7.0_79 ?
hadoop 2.7.3 点此下载

?

?

?

?

?

?

?

?

Hadoop 有两个主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,比较老的教材上用的可能是 0.20 这样的版本。Hadoop 2.x 版本在不断更新,本教程均可适用。如果需安装 0.20,1.2.1这样的版本,本教程也可以作为参考,主要差别在于配置项,配置请参考官网教程或其他教程。如果用的jdk为1.8.x,本教程同样适用。

?

?

?

?

hadoop安装


?

解压hadoop安装包

解压到/usr/local/目录下

配置环境变量

vi /etc/profile

maven、jdk、Hadoop所有添加的相关配置如下:

 1 #set java enviroment
 2 export JAVA_HOME=/usr/local/jdk7
 3 export HADOOP_HOME=/usr/local/hadoop
 4 export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
 5 export classpath=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 6 HADOOP_OPT="-Dfile encoding=UTF-8"
 7 
 8 MAVEN_HOME=/usr/local/maven3
 9 export MAVEN_HOME
10 export PATH=${PATH}:${MAVEN_HOME}/bin
11 
12 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
13 
14 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

?

如果只是针对Hadoop则只加入如下配置

1 export HADOOP_HOME=/usr/local/hadoop
2 export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
3 
4 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
5 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

?

?

测试安装成功与否

命令行输入命令

1 hadoop version

?

成功则显示

1 Hadoop 2.7.3
2 Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
3 Compiled by root on 2016-08-18T01:41Z
4 Compiled with protoc 2.5.0
5 From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
6 This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar

?

?

大家要是在这一步没有成功,可以考虑换个目录安装Hadoop,可以和我一样在/usr/local目录下安装,或者是在根目录下其他可以访问的目录下安装。看好你啊。

?

?

?

至此,Hadoop安装完成。

?

伪分布式安装


?

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

?

?

?

Hadoop 的配置文件位于 /$HADOOP_HOME/etc/hadoop/ 中,伪分布式至少需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。
Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

?

修改hosts文件

1 vi /etc/hosts

?

添加到最后一行

1 192.168.1.102 yanduanduan

?

修改core-site.xml

 1 
 2 
 3  
 4       hadoop.tmp.dir
 5       file:/usr/local/hadoop/tmp
 6       Abase for other temporary directories.
 7  
 8 
 9  
10      fs.defaultFS
11      hdfs://yanduanduan:9000
12  
13 
14 

?

?

修改hdfs-site.xml

 1 
 2 
 3              dfs.replication
 4              1
 5 
 6 
 7 
 8             dfs.namenode.name.dir
 9             file:/data/dfs/name
10  
11 
12  
13            dfs.datanode.data.dir
14            file:/data/dfs/data
15  
16 

?

伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

修改mapred-site.xml
文件默认不存在,只有一个模板,复制一份

1 cp mapred-site.xml.template mapred-site.xml

?

configration下添加

 1 
 2      mapreduce.framework.name
 3      yarn
 4  
 5  
 6      mapreduce.jobhistory.address
 7      master:10020
 8  
 9  
10      mapreduce.jobhistory.webapp.address
11      master:19888
12  

?

修改yarn-site.xml

 1 
 2 
 3 
 4 
 5   yarn.nodemanager.aux-services
 6   mapreduce_shuffle
 7  
 8  
 9   yarn.nodemanager.aux-services.mapreduce.shuffle.class
10   org.apache.hadoop.mapred.ShuffleHandler
11  
12  
13   yarn.resourcemanager.address
14   yanduanduan:8032
15  
16  
17   yarn.resourcemanager.scheduler.address
18   yanduanduan:8030
19  
20  
21   yarn.resourcemanager.resource-tracker.address
22   yanduanduan:8035
23  
24  
25   yarn.resourcemanager.admin.address
26   yanduanduan:8033
27  
28  
29   yarn.resourcemanager.webapp.address
30   yanduanduan:8088
31  
32 

?

修改hadoop-env.sh,设置JAVA_HOME

将原有的注释掉,改为绝对路径

1 #export JAVA_HOME=${JAVA_HOME}
2 export JAVA_HOME="/usr/local/jdk7"

?

?

格式化namenode

1 [[email?protected] hadoop]$ hdfs namenode –format

?

启动hadoop

进入该目录

1 /usr/local/hadoop/sbin

?

输入命令

1 ./start-all.sh

?

输入jps命令

1 10514 Jps
2 8706 SecondaryNameNode
3 8528 DataNode
4 8382 NameNode
5 9158 NodeManager
6 8866 ResourceManager

?

如果少了哪一个就要看日志了。

用命令查看日志

1 cat /usr/local/hadoop/logs/hadoop-root-namenode-yanduanduan.log

?

显示如下

 1 2017-05-30 16:32:22,517 INFO org.mortbay.log: Stopped [email?protected]:50070
 2 2017-05-30 16:32:22,517 WARN org.apache.hadoop.http.HttpServer2: HttpServer Acceptor: isRunning is false. Rechecking.
 3 2017-05-30 16:32:22,517 WARN org.apache.hadoop.http.HttpServer2: HttpServer Acceptor: isRunning is false
 4 2017-05-30 16:32:22,518 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping NameNode metrics system...
 5 2017-05-30 16:32:22,519 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system stopped.
 6 2017-05-30 16:32:22,519 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete.
 7 2017-05-30 16:32:22,519 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
 8 java.io.IOException: NameNode is not formatted.
 9     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:225)
10     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:975)
11     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:681)
12     at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:585)
13     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:645)
14     at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:812)
15     at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:796)
16     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1493)
17     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)
18 2017-05-30 16:32:22,522 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1  注:1代表失败,0代表成功。
19 2017-05-30 16:32:22,524 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 
20 /************************************************************
21 SHUTDOWN_MSG: Shutting down NameNode at yanduanduan/192.168.1.102
22 ************************************************************/

?

解决办法

删除core-site.xml配置文件中配置的tmp目录下的所有文件;

将hadoop所有服务停止;

再次启动hadoop。

详细参考

?

远程访问http://192.168.1.102:50070

发现无法访问,本地可以访问.

锦囊妙计:

本机直接访问50070是可以访问到,但是别的机子ip:端口无法访问到,

原因是装了Hadoop的机子的防火墙是打开的,将防火墙关闭即可访问。

关闭防火墙方法:

??????? 查看防护墙状态
??????? service iptables status
?????? ?
??????? 关闭
??????? service iptables stop
?????? ?
??????? 查看防火墙开机启动状态
??????? chkconfig iptables –list
?????? ?
??????? 关闭开机启动
??????? chkconfig iptables off

?

再次访问就可以了

?



You must enable javascript to see captcha here!

Copyright ? All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量