大数据学习之--hadoop2.7.3环境搭建

前言

最近在搞一些大数据方面产品的开发工作,运用的都是公司已经搭建好的大数据计算相关环境:比如 hive、hbase、storm等。要想更深入的了解这些计算框架,准备自己搭建一套大数据计算开发环境。

 

目前的大数据计算相关体系,基本都是建立在hadoop基础上,比如hive、hbase、spark、flume等。所以准备先自己搭建一套hadoop环境。以下是我的搭建流程,以及遇到的问题等。

 

前期准备

1、hadoop2.7.3 下载地址 http://hadoop.apache.org/releases.html


 

2.jdk 1.8 linux 版 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

3、VMware 虚拟机下载、以及centos 7镜像下载

 

安装步骤

我是一台笔记本,win7操作系统,内存是8G。准备安装好vmware中虚拟出三台机器,部署1个master、2个slaves的hadoop环境:

1、首先安装好vmware虚拟机,并在虚拟机中安装好centos。注意虚拟机内存一定要设置为2G以上,否则执行MapReduce任务会卡住。

2、在centos中进行jdk1.8安装,参考http://www.cnblogs.com/shihaiming/p/5809553.html

3、通过vmware的clone功能,克隆出另外两台虚拟机

     参考:http://jingyan.baidu.com/article/6b97984d9798f11ca2b0bfcd.html

     我的创建结果如下:

      

 准备用 CentOS1 作为master,这三台机器的ip分别为:192.168.26.129、192.168.26.130、192.168.26.131

 

4、安装 hadoop,参考http://www.cnblogs.com/lavezhang/p/5237042.html

特别说明下,他这里安装配置文件(hdfs-site.xml、slaves等几个配置文件)里都是用的ip,需要在三台机器上配置host(ip换成自己的):

192.168.26.129 hadoop1

192.168.26.130 hadoop2

 

192.168.26.131 hadoop3

否则会出现异常:

 

2017-01-24 04:25:33,929 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-7673552-127.0.0.1-1485202915222 (Datanode Uuid null) service to /192.168.26.128:9000 Datanode denied communication with namenode because hostname cannot be resolved (ip=192.168.26.129, hostname=192.168.26.129): DatanodeRegistration(0.0.0.0:50010, datanodeUuid=170341fa-ef80-4279-a4a3-dca3663b89b7, infoPort=50075, infoSecurePort=0, ipcPort=50020, storageInfo=lv=-56;cid=CID-9bcf1a8a-449a-4238-9c5c-b2bb0eadd947;nsid=506479924;c=0)
        at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:873)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:4529)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:1286)
        at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:96)
        at org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:28752)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)

 最好 把配置文件(hdfs-site.xml、slaves等几个配置文件)中ip全部替换成 hostname(我的是hadoop1、hadoop2、hadoop3)。

 

 

启动hadoop:

bin/hadoop namenode -format
sbin/start-hdfs.sh
sbin/start-yarn.sh 

执行jps查看是否启动成功

 

 

5.传入一个本地文件,测试下

bin/hadoop fs -mkdir /test
bin/hadoop fs -copyFormLocal README.txt /test
bin/hadoop fs -cat /test/README.txt

 如果线上出 README.txt中的文件内容,说明成功了。

 

如果执行:bin/hadoop fs -copyFormLocal README.txt /test,报如下错误:

2017-01-24 01:48:58,282 INFO org.apache.hadoop.ipc.Server: IPC Server handler 5 on 9000, call org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock from 192.168.26.128:32964 Call#5 Retry#0
java.io.IOException: File /test/README.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.
        at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1571)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3107)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3031)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:725)
        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)
        at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)

 

说明启动失败了,检查下hadoop的日志,根据日志分析下是哪个配置错了。主要检查几个配置文件,已经host设置。

 

ok,本机hadoop已经跑起来啦,接下来准备用idea搭建一个win的开发环境,运行mapreduc程序。

 

<!--[if !supportLists]-->

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值