apache hadoop 官方文档

** Hadoop介绍
  ** HDFS:分布式存储文件
    角色:NameNode和DataNode
  ** YARN:分布式资源调度框架(Hadoop2.x以上才引用)
    角色:ResourceManager和NodeManager
  ** MapReduce:分布式数据处理框架

一、下载hadoop拉到linux中,并解压到指定目录

官方下载地址

tips:用smb把hadoop压缩包从window拉到linux时,请注意smb的登陆用户,会导致后面一堆坑,慎用root登陆smb。

(1)将压缩包拉到/home/admin/softwares/installtions/目录

(2) 解压到/home/admin/modules目录

tar -zxf hadoop-2.7.2.tar.gz -C /home/admin/modules/

二、配置环境变量 

 

vim /etc/profile

在最下面添加

export HADOOP_HOME=/home/admin/modules/hadoop-2.7.2/bin
export PATH=$PATH:$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR" 保存退出后 source /etc/profile

  

配置成功后可用 hadoop version 查看版本,注意没有横杠!

三、配置

** 最终配置效果:
linux01:namenode、datanode、nodemanager

linux02:resourcemanager  、datanode 、nodemanager

linux03:datanode、nodemanager

(1)删除windows脚本

** 进入到hadoop的etc/hadoop目录下

$ rm -rf *.cmd

  

(2)重命名文件

$ mv mapred-site.xml.template mapred-site.xml

 

(3)配置evn文件

查看java路径:

echo $JAVA_HOME,我的机器:/home/admin/modules/jdk1.8.0_131

配置hadoop-env.sh


配置yarn-env.sh


配置mapred-env.sh

(4)配置site文件

配置 core-site.xml

 <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>
<!-- 指定数据冗余份数 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property> <!-- 关闭权限检查-->
<property>
<name>dfs.permissions.enable</name>
<value>false</value>
</property> <property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux03:50090</value>
</property> <property>
<name>dfs.namenode.http-address</name>
<value>linux01:50070</value>
</property> <property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

 配置yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <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>

  配置mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux01:10020</value>
</property> <!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux01:19888</value>
</property>
</configuration>

  

(5)配置slaves文件

四、分发安装配置完成的hadoop到linux02以及linux03

$ scp -r hadoop-2.7.2/ linux02:/home/admin/modules/
$ scp -r hadoop-2.7.2/ linux03:/home/admin/modules/

  

五、 格式化namenode(在hadoop-2.7.2的根目录下执行)

$ bin/hdfs namenode -format

  如果正常格式化会生成haddop-data文件夹

六、启动服务

HDFS:(linux01)
$ sbin/start-dfs.sh
YARN:(一定要在ResourceManager所在机器启动,linux02)
$ sbin/start-yarn.sh
JobHistoryServer:(linux01)
$ ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver' 

常见启动失败情况:

(1)hadoop处于安全模式,namenode启动失败,参考链接

  解决:磁盘空间不足,需要手动释放资源后再用命令 hdfs dfsadmin -safemode leave  离开安全模式

全部完成后查看:

在浏览器输入192.168.1.213:50070,如果不在安全模式证明namenode启动正常

输入192.168.1.214:8088

七、关闭全部服务

$ sbin/stop-all.sh

  

八、将系统变量追加到用户变量中(3台机器都要操作)

$ cd ~

$ cat /etc/profile >> .bashrc

 生效 $ source ~/.bashrc

九、编写脚本批量操作三台机器

$ cd ~
$ mkdir tools
$ vim /tools/jpsutil.sh 添加批量查看jps服务的脚本 #!/bin/bash
for i in admin@linux01 admin@linux02 admin@linux03
do
echo "==================$i==================="
ssh $i 'jps'
done 保存后查看 sh jpsutil.sh

  

十、遇到问题

  关闭虚拟机后重启,重启集群时,namenode启动失败,需要使用命令:bin/hdfs namenode -format

格式化,才能启动。

  格式化后datanode又有异常,需要把/hadoop-2.7.2/hadoop-data/dfs/name/current/VERSION里面的clusterID复制下来,依次替换/hadoop-2.7.2/hadoop-data/dfs/data/current/VERSION里的clusterID,再执行:sbin/hadoop-daemon.sh start datanode(全部机器都要操作)。

  格式化会导致集群原本存储的数据全部丢失,如何正常关机后,正常开启集群,这个有待研究。

大数据(2) - Hadoop完全分布式的部署的更多相关文章

  1. 大数据之Hadoop完全分布式集群搭建

    1.准备阶段 1.1.新建三台虚拟机 Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建.我们准备3台服务器(关闭防火墙.静态IP.主机名称).如果没 ...

  2. 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  3. 大数据和Hadoop生态圈

    大数据和Hadoop生态圈 一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop ...

  4. 大数据和Hadoop时代的维度建模和Kimball数据集市

    小结: 1. Hadoop 文件系统中的存储是不可变的,换句话说,只能插入和追加记录,不能修改数据.如果你熟悉的是关系型数据仓库,这看起来可能有点奇怪.但是从内部机制看,数据库是以类似的机制工作,在一 ...

  5. 大数据与Hadoop

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

  6. Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此 ...

  7. 大数据和Hadoop平台介绍

    大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...

  8. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  9. 老李分享:大数据框架Hadoop和Spark的异同 1

    老李分享:大数据框架Hadoop和Spark的异同   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

随机推荐

  1. enter 键登录的实现

    js 代码 document.onkeypress = function() { var iKeyCode = -1; if (arguments[0]) { iKeyCode = arguments ...

  2. 使用Material Design 创建App翻译系列---列表和卡片集的创建

    上一篇是使用Material Design 创建App翻译系列--材料主题的使用(Using Material Theme),进入正题: 想要在应用里创建Material Design风格的复杂列表和 ...

  3. 并发编程系列小结(线程安全,synchronized,脏读,线程间的通信wait/notify,线程的三种实现方式Demo,可替代wait/notify的方法)

    线程安全: 当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法就是线程安全的) synchronized: 可以在任意对象或方法上加锁,而加锁的这段代码称为 ...

  4. Solidworks如何设置零件材料,如何评估零件质量

    右击材质,然后编辑材料,在弹出菜单中在Solidworks materials中选择零件材料(一般钢或者铁,注意质量密度是否跟你需要的一致),完成之后点击应用和关闭   在评估-质量属性中可以看到当前 ...

  5. java中的Iterator接口

    Iterator接口 Iterator接口也是Java集合框架的成员,但它与Collection系列.Map系列的集合不一样:Collection系列集合.Map系列集合主要用于盛装其他对象,而Ite ...

  6. highcharts 坐标轴 数值 格式化

    以Y轴为示例: yAxis: { min: 0, gridLineColor: '#ececee', gridLineWidth: 1, lineColor: '#ececee', lineWidth ...

  7. iOS应用程序开发之应用间的跳转

    简介 配置和实现 判断应用启动方式 一.简介 最实际项目开发中,我们难免会遇到需要从一个应用跳转到另一个应用的情况.比如微信分享,实际就是一种应用间的跳转.但是有时候我们需要实现自己的两个应用间的跳转 ...

  8. HTML-HTML5+CSS3权威指南阅读(二、让IE支持HTML5标签及对CSS3 Media Query的兼容)

    兼容解决 HTML5是在低版本的浏览器(IE8-)的兼容是有限的,类似很多结构性的标 签<header>.<section>.<footer>等在IE8以下不会被识 ...

  9. (MVC)从客户端中检测到有潜在危险的 Request.Form 值

    在传统的.net Request验证中 ,只需要在WebConfig HttpRuntime节点 加入 RequestValidateMode 属性,值为2.0(此处2.0并非Framework版本) ...

  10. jQuery源代码学习:经常使用正則表達式

    转载自:http://nuysoft.iteye.com/blog/1217898 经常使用的数字正则(严格匹配) 正则 含义 ^[1-9]\d*$ 匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^ ...