自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列《Hadoop学习笔记系列》。其实,早在2014年Hadoop2.x版本就已经开始流行了起来,并且已经成为了现在的主流。当然,还有一些非离线计算的框架如实时计算框架Storm,近实时计算框架Spark等等。相信了解Hadoop2.x的童鞋都应该知道2.x相较于1.x版本的更新应该不是一丁半点,最显著的体现在两点:

(1)HDFS的NameNode可以以集群的方式布署,增强了NameNodes的水平扩展能力和高可用性,分别是:HDFS Federation与HA;

(2)MapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARN(Yet Another Resource Negotiator);

因此,我决定趁着现在又变成了单身狗(满满的都是伤感)的时机,把Hadoop2.x学习一下,也顺带分享一些学习笔记的文章与园友们分享。

至于Hadoop2.x到底相较于1.x有哪些改变,如果你不太知道,那么你可以先阅读一下这篇文章《Hadoop2的改进内容简介》大概了解一下,本篇内容将不会介绍这些,直接上环境搭建与配置的内容。

一、准备工作

  (1)一台配置不错的电脑或笔记本(主要是内存、内存、内存,重要的事情说三遍)

  (2)一个你使用过的虚拟机软件(可以是VMWare、Virtual Box或者其他的,我用的VMWare WorkStation)

  (3)一个你使用过的SSH客户端软件(可以使XShell,XFtp、WinSCP等等,我用的XShell+XFtp)

  (4)Hadoop2.4.1、JDK1.7的linux安装包(当然你也可以直接在线下载)

  当然,体贴的我已为你准备了Hadoop2.4.1和JDK1.7的包,你可以通过这个链接下载:点我下载

二、伪分布式搭建

  2.1 基础网络配置

  安装完VMware Workstation之后,你的网络适配器会多出来两个,你要做的就是为多出来的第2个网卡设置静态IP地址,我这里是Ethernet 3  这里我们设置网关为192.168.22.1,为宿主机设置IP为192.168.22.2,也就是说我们的虚拟机必须要在192.168.22.x这个网段内。

  然后我们再为虚拟机设置网络连接方式,选择VMNET8(NAT模式),如果你不知道NAT是什么意思,请百度一下。

  2.2 为虚拟机安装Linux镜像

  这里我们选择的是CentOS,你也可以选择其他的Linux发行版本。

  2.3 设置静态IP地址

  输入命令 setup -> 进入Device Configuration -> 输入service network restart重启网卡

  另外,想要在宿主机访问虚拟机,需要开放端口,为了方便,我们直接将虚拟机的防火墙关闭:sudo service iptables stop

  检查状态:sudo chkconfig iptables off

  2.4 设置完全命令行模式启动

  输入命令 sudo vi /etc/inittab -> 修改id:3 -> 输入reboot重启虚拟机

  2.5 使用XShell代替VMware直接操作

  这个时候你就可以使用XShell而不再需要在VMware里直接敲命令了,你会发现XShell用起来很爽!

  2.6 将hadoop用户加入sudo用户组

  由于linux下root用户的权限太大,经常使用root用户会很不安全,所以我们一般使用一个一般用户去操作,在用到需要高权限时使用sudo命令去执行。因此,我们这里需要将hadoop用户加入sudo用户组。

  输入命令 su -> vi /etc/sudoers -> 找到这一行:root ALL=(ALL) ALL

  然后在它下面一行加上一行:hadoop  ALL=(ALL) ALL

  最后保存退出。

  2.7 更改主机名与IP地址映射关系

  (1) sudo vi /etc/sysconfig/network -> hadoop-master.manulife -> reboot
    (2) sudo vi /etc/hosts -> 加一行: 192.168.22.100 hadoop-master.manulife

  2.8 建立一个专门放安装包的文件夹(非必要)

  (1) rm -rf P* D* Music/ Videos/ Templates/
    (2) mkdir app -> 安装后的地方
    (3) mkdir local -> 放置安装包的地方

  2.9 安装JDK

  (1)上传jdk到虚拟机,这里借助SFtp软件

  (2)解压jdk:tar -zvxf jdk -C ../app/

  (3)设置环境变量:

sudo vi /etc/profile
  export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
  export PATH=$PATH:$JAVA_HOME/bin;
source /etc/profile  

  2.10 安装Hadoop

  (1)上传jdk到虚拟机,这里借助SFtp软件

  (2)解压jdk:tar -zvxf hadoop -C ../app/

  (3)删除hadoop中share文件夹中的多余doc文件(非必要):rm -rf doc

  (4)设置hadoop中etc文件夹中的一些重要配置文件:cd etc -> hadoop-env.sh,core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml

  hadoop-env.sh

vim hadoop-env.sh
  #第27行
  export JAVA_HOME=/home/hadoop/app/jdk  

  core-site.xml

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://hadoop-master.manulife:9000</value>
  </property>
  <!-- 指定hadoop运行时产生文件的存储目录 -->
  <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/hadoop/app/hadoop/tmp</value>
  </property>  

  hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
  <property>
     <name>dfs.replication</name>
     <value>1</value>
  </property>  

  yarn-site.xml

<!-- 指定YARN的老大(ResourceManager)的地址 -->
  <property>
     <name>yarn.resourcemanager.hostname</name>
     <value>hadoop-master.manulife</value>
  </property>
  <!-- reducer获取数据的方式 -->
  <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
  </property>  

  mapred-site.xml (需要首先换个名字:mv mapred-site.xml.template mapred-site.xml)

<!-- 指定mr运行在yarn上 -->
  <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
  </property>  

  (5)设置环境变量

sudo vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

  (6)格式化NameNode

  hadoop namenode -format

  (7)启动Hadoop两大核心功能:HDFS与YARN

  首先编辑slaves配置文件(这里我们的主节点既是DataNode又是NameNode):vi slaves -> add hadoop-master.manulife

  启动HDFS:sbin/start-dfs.sh

  启动YARN:sbin/start-yarn.sh

  验证是否启动:jps

  (8)在宿主机中访问Hadoop Manager

  首先将虚拟机的IP地址和主机名加入Windows Hosts:windows/system32/etc -> 加一行 : 192.168.22.100 hadoop-master.manulife

  打开浏览器输入:http://hadoop-master.manulife:50070

  2.11 HDFS简单测试

  上传一个文件至HDFS : hadoop fs -put xxxx.tar.gz hdfs://hadoop-master.manulife:9000/
    从HDFS下载一个文件 : hadoop fs -get hdfs://hadoop-master.manulife:9000/xxxx.tar.gz

  2.12 MapReduce简单测试

  这里直接运行一个hadoop自带的求圆周率的example:

  (1)cd /home/hadoop/app/hadoop/share/hadoop/mapreduce/
    (2)hadoop jar hadoop-mapreduce-examples-2.4.1.jar pi 5 5

  2.13 SSH免密码登录

  一般linux分布式集群中都会设置ssh免密码登录,这里我们首先将主节点设置为ssh免密码登录:

  (1)ssh-keygen -t rsa
    (2)cd .ssh -> cp id_rsa.pub authorized_keys
    (3)ssh localhost

三、Java开发环境搭建

  3.1 准备工作

  3.2 使用Java API操作HDFS

  3.3 简单测试

四、完全分布式搭建

作者:周旭龙

出处:http://www.cnblogs.com/edisonchou/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

Hadoop学习笔记—22.Hadoop2.x环境搭建与配置的更多相关文章

  1. Solr学习笔记之1、环境搭建

    Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...

  2. ESP32学习笔记(一) 环境搭建与下载

    ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...

  3. Java学习笔记【一、环境搭建】

    今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...

  4. Cocos2d-x 3.2 学习笔记(一)环境搭建

    目前项目无事,时间比较充裕,因此来学习下cocos2dx,当然本人也是新手一个, 写此笔记做备忘和脚步. 最近3.2版本更新出來了!官方说这是自2.x分支以来修复了超过450个bug,3.2版本是目前 ...

  5. 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】

    Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...

  6. Lua 学习笔记(一)环境搭建

    Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具:      1.Sublime Text 2 ...

  7. nodejs学习笔记<一>安装及环境搭建

    零零散散学了几天nodejs,进度一直停滞不前,今天沉下心来好好看了下nodejs的介绍和代码.自己也试着玩了下,算是有点入门了. 这里来做个学习笔记. ——————————————————————— ...

  8. Hadoop学习笔记—21.Hadoop2的改进内容简介

    Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更: (1)HDFS的NameNod ...

  9. 零基础Android学习笔记-01 安卓开发环境搭建

    安卓开发环境搭建. 1.首先准备JDK,从官网找到JDK下载地址,原来做.NET不熟悉JAVA,干脆用最新的,下载了JDK 1.7的版本.原来装过1.5还要配置环境变量什么的.但1.7好像很给力,装好 ...

随机推荐

  1. servlet文件下载

    创建web工程servlet,新建DownloadServlet.java package com.xmyself.servlet; import java.io.File; import java. ...

  2. Linux CentOS 配置Tomcat环境

    一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...

  3. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  4. NLP点滴——文本相似度

    [TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...

  5. prometheus监控系统

    关于Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等,以找到系统的 ...

  6. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  7. 解决IE8下不兼容rgba()的解决办法

    rgba()是css3的新属性,所以IE8及以下浏览器不兼容,这怎么办呢?终于我找到了解决办法. 解决办法 我们先来解释以下rgba rgba: rgba的含义,r代表red,g代表green,b代表 ...

  8. JS鼠标事件大全 推荐收藏

    一般事件 事件 浏览器支持 描述 onClick HTML: 2 | 3 | 3.2 | 4 Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDb ...

  9. java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

    Android发出HTTP请求时出现了这个错误: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INST ...

  10. Topshelf 支持Mono 扩展Topshelf.Linux

    使用Topshelf 5步创建Windows 服务 这篇文章大家可以了解到使用Topshelf可以很好的支持Windows服务的开发,但是它和Mono不兼容,Github上有一个扩展https://g ...