搭建hadoop环境

1、解压Hadoop的安装包,解压到modules文件夹中。(安装包下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.7.2/)
  $ tar -zxf /softwares/installations/hadoop-2.7.2.tar.gz -C /modules/
  查看hadoop是不是64位:
  在hadoop-2.7.2/lib/native 下,执行file libhadoop.so.1.0.0

2、删除/home/admin/modules/hadoop-2.7.2/etc/hadoop目录下,cmd文件
  $ rm -rf *.cmd
  重命名文件
  $ mv mapred-site.xml.template mapred-site.xml

3、配置文件:/home/admin/modules/hadoop-2.7.2/etc/hadoop
  配置结果:
  Linux01 : namenode、datanode、nodeManager
  Linux02 : resourceManager、datanode、nodeManager
  Linux03 : datanode、nodeManager

  evn文件:把JAVA_HOME 环境变量改为,实际路径
    hadoop-env.sh
      修改# export JAVA_HOME=$JAVA_HOME
      为:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
    mapred-env.sh
      修改# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      为:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
    yarn-env.sh
      修改# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
      为:export JAVA_HOME=/home/admin/modules/jdk1.8.0_191
  site文件:(参考官网文档:https://hadoop.apache.org/docs/r2.7.2/)
    core-site.xml
      在https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/core-default.xml中,
      fs.defaultFS 是用来配置namenode的路径的,是namenodeRPC通信地址。value:hadf://linux01:8020
      RPC是跨进程通信协议
      hadoop.tmp.dir是用来配置文件最终存储位置。value:haoop根目录/hoadoop-data
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://linux01:8020</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/admin/modules/hadoop-2.7.2/hadoop-data</value>
        </property>
      </configuration>
    hdfs-site.xml
      <configuration>
        <!-- 指定数据冗余份数,默认3份,会占用磁盘空间 -->
        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>
        <!-- 关闭权限检查,非hadoop用户不可以操作hadoop集群 -->
        <property>
          <name>dfs.permissions.enabled</name>
          <value>false</value>
        </property>
        <!-- 配置namenode,减少namenode的压力 -->
        <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>linux03:50090</value>
        </property>
        <!-- namenode网页地址 -->
        <property>
          <name>dfs.namenode.http-address</name>
          <value>linux01:50070</value>
        </property>
        <!-- 浏览hdfs的方式,一种是webhdfs,一种格式https -->
        <property>
          <name>dfs.webhdfs.enabled</name>
          <value>true</value>
        </property>
    </configuration>
  mapred-site.xml
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      <!-- 配置mapreduce的历史服务端口,产生的日志服务 -->
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>linux01:10020</value>
      </property>
      <!-- 配置mapreduce的历史服务页面端口,产生的日志服务 -->
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>linux01:19888</value>
      </property>
    </configuration>
  yarn-site.xml
    <configuration>
      <!-- 是否允许调度mapreduce的shuffle过程 -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <!-- 配置mapreduce到linux02 -->
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>linux02</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
      </property>
      <!-- -->
      <property>
        <name>yarn.log.server.url</name>
        <value>http://linux01:19888/jobhistory/logs/</value>
      </property>
    </configuration>
  slaves文件:配置三台从节点,配置三台虚拟机的名称

    linux01
    linux02
    linux03

    配置datanode和nodeManager从节点

4、分发,将hadoop安装包,分发到linux02、Linux03(在modules目录,执行)

  scp -r hadoop-2.7.2/ linux02:/home/admin/modules
  scp -r hadoop-2.7.2/ linux03:/home/admin/modules
    说明:scp 命令是跨服务器复制文件。

5、格式化namenode (在hadoop的根目录下执行)
  linux01: bin/hdfs namenode -format

6、启动服务,(在hadoop根目录执行)
  HDFS:
    linux01:$ sbin/start-dfs.sh
    相当于:
    $ sbin/hadoop-daemon.sh start namenode 开namenode的命令
    $ sbin/hadoop-daemon.sh start datanode 开namenode的命令
  YARN: (在resourceManager所在的机器上启动)
    linux02:$ sbin/start-yarn.sh
  JobHistory:
    linux01:$ sbin/mr-jobhistory-daemon.sh start historyserver

  如果因为断电关系,造成启动过程中,发现NameNode已启动的提示。

    处理方式:删除/tmp下namenode对应的pid文件,rm -rf /tmp/hadoop-namenode.pid

7、启动检测(如果无法访问,请在windows的hosts文件中,配置虚拟机名称及对应的ip)
  浏览器访问:http://linux01:50070
    检查概览overview下的安全模式safemode一定要关闭,如果是打开的,说明有问题,安全模式数据只能读取,不能写入。
    datenode节点有三台服务器
    utilties中输入hdfs根目录/

  浏览器访问:http://linux02:8088

    8088是默认端口。点击左侧Notes选项,查看三台服务器的noteManager是否已经是Running状态,在判断资源是否不足。

  判断集群是否开启正确,输入命令 jps
    说明:jps是查看所有java进程的命令

8、测试成功后,配置工具脚本

  系统变量与用户变量

    使用xshell开启一个远程回话时,linux01 SSH linux02 默认加载用户变量配置文件,不会加载系统变量。

      /etc/profile (系统变量)

      /home/admin/.bash_profile (用户变量)

      /home/admin/.bashrc (用户变量)

    执行命令,配置系统变量中的环境变量到用户变量配置文件中:(三台linux都执行)

      $ cat /etc/profile >> .bashrc (在/home/admin下执行,把profile中内容,追加到.bashrc)

  编写shell脚本,查看三台服务器的jsp状态:

    #!/bin/bash

    # admin为用户名。
    for i in admin@linux01 admin@linux02 admin@linux03
    do
      echo "=============$i================"
      ssh $i 'jps'
    done

  编写shell脚本,在第一台及其执行脚本,启动hadoop所有节点:

    #!/bin/bash

    #HDFS
    modules/hadoop-2.7.2/sbin/start-dfs.sh

    #YARN
    ssh admin@linux02 modules/hadoop-2.7.2/sbin/start-yarn.sh

    #JobHistory
    modules/hadoop-2.7.2/sbin//mr-jobhistory-daemon.sh start historyserver

大数据 - hadoop三台linux虚拟服务器 - 初始化部署的更多相关文章

  1. 12.Linux软件安装 (一步一步学习大数据系列之 Linux)

    1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...

  2. 大数据学习之Linux基础01

    大数据学习之Linux基础 01:Linux简介 linux是一种自由和开放源代码的类UNIX操作系统.该操作系统的内核由林纳斯·托瓦兹 在1991年10月5日首次发布.,在加上用户空间的应用程序之后 ...

  3. LVS (Linux虚拟服务器)模型及算法

    LVS(Linux Virtual Server)Linux虚拟服务器 LVS集群采用IP负载均衡技术和基于内容请求分发技术. 用户请求发给负载均衡调度器,由负载均衡调度器根据设定的调度算法将请求发给 ...

  4. 云计算分布式大数据Hadoop实战高手之路第八讲Hadoop图文训练课程:Hadoop文件系统的操作实战

    本讲通过实验的方式讲解Hadoop文件系统的操作. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发布云 ...

  5. 14周事情总结-机器人-大数据hadoop

    14周随着考试的进行,其他该准备的事情也在并行的处理着,考试内容这里不赘述了 首先说下,关于机器人大赛的事情,受益颇多,机器人的制作需要机械和电控两方面 昨天参与舵机的测试,遇到的问题:舵机不动 排查 ...

  6. 成都大数据Hadoop与Spark技术培训班

    成都大数据Hadoop与Spark技术培训班   中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...

  7. 大数据Hadoop学习之搭建hadoop平台(2.2)

    关于大数据,一看就懂,一懂就懵. 一.概述 本文介绍如何搭建hadoop分布式集群环境,前面文章已经介绍了如何搭建hadoop单机环境和伪分布式环境,如需要,请参看:大数据Hadoop学习之搭建had ...

  8. 我搭建大数据Hadoop完全分布式环境遇到的坑---hadoop: command not found

    搭建大数据hadoop环境,遇到很多问题,这里记录一部分,以备以后查看. [遇到问题].在安装配置完hadoop以后,需要格式化namenode,输入指令:hadoop namenode -forma ...

  9. Linux虚拟服务器--LVS

    LVS 百科名片 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是L ...

随机推荐

  1. 面试题3--数组中的重复数字(new数组的新写法)

    总是忘了一些条件的判断,比如非空或者其他之类. #include<iostream> using namespace std; int Frepeat(int num[],int leng ...

  2. 自己常用vs code 插件

    subline   快捷键配置插件 Auto Close Tag — 自动闭合HTML标签 Auto Rename Tag — 修改HTML标签时,自动修改匹配的标签 background — 背景 ...

  3. javascript高级程序设计第3版——第6章 面向对象的程序设计

    第六章——面向对象的程序设计 这一章主要讲述了:面向对象的语言由于没有类/接口情况下工作的几种模式以及面向对象语言的继承: 模式:工厂模式,构造函数模式,原型模式 继承:原型式继承,寄生式继承,以及寄 ...

  4. 什么是ORM?

    什么是ORM? MVC框架中重要的一部分就是ORM,实现了数据模型与数据库的解耦,即数据模型不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库. ORM是对象关系映射的简称,主要任务是: 根 ...

  5. Python_Mix*函数名的使用以及第一类对象,闭包,迭代器,for循环的内部机制

    一:函数名的应用(第一类对象) 函数名的命名规范和变量是一样的,函数名其实就是变量名, 0)函数名可以赋值给其他变量 def func(): #定义一个名为func的函数 print('my ange ...

  6. C# [Win32] [API] WS_TABSTOP 無效的解決辦法

    關鍵: IsDialogMessage function MSG msg; int bRet = 1; while (bRet != 0) { if (PeekMessageW(&msg, ( ...

  7. easyui combobox模糊搜索

    combobox实现模糊搜索功能 <input class="easyui-combobox" id="hybq_PADD" name="hyb ...

  8. php处理ajax请求,ajax+php实现跨域

    第一种方法通过设置Access-Control-Allow-Origin来实现跨域 1.首先要了解什么是域? 什么是域,简单来说就是协议+域名或地址+端口,3者只要有任何一个不同就表示不在同一个域.跨 ...

  9. C语言:递归函数n!

    #include <stdio.h> long recursion(int n); void main(){ int n; long result; printf("input ...

  10. 20175224 2018-2019-2 《Java程序设计》第七周学习总结

    教材学习内容总结 第八章 常用实用类 String类 构造String对象:常量对象:String对象:引用String常量. 字符串的并置:String对象使用“+”进行并置运算,即首尾相接. 字符 ...