【Hadoop环境搭建】Centos6.8搭建hadoop伪分布模式
阅读目录
概要
- 独立(或本地)模式 : 无需运行任何守护进程,所有程序都在同一个JVM上运行。在此模式下测试和调试MapReduce程序很方便,因此该模式在开发阶段比较合适。
- 伪分布模式: Hadoop守护进程运行在本地机器上,模拟一个小规模的集群;
- 全分布模式: Hadoop守护进程运行在一个集群上。
- 操作系统 :Centos 6.8
- java版本 :jdk1.6.0_45
- hadoop版本:hadoop-1.2.1
- java文件 :jdk-6u45-linux-x64.bin
- hapoop文件:hadoop-1.2.1.tar.gz
- 安装Java1.6;
- 设置ssh无密码登录;
- 安装hadoop1.2.1,并修改配置文件;
- Hadoop启动;
- 测试hadoop;
二、设置ssh无密码登录
- 在伪分布模式下工作必须启动守护进程,而启动守护进程的前提是已经安装SSH。
- Hadoop并不严格区分伪分布模式和全分布模式,它只是在集群内的(多台)主机(由slaves文件定义)上启动守护进程:SSH到各个主机并启动一个守护进程。
- 伪分布模式是全分布模式的一个特例。
- 在伪分布模式下,(单)主机就是本地计算机(localhost),因此需要确保用户能够SSH到本地机器,并且可以不输入密码。
rpm -qa| grep ssh //检查是否安装service sshd status //查看ssh运行状态yum install ssh //安装sshchkconfig --list sshd //查看是否开机启动chkconfig sshd on //设置开机启动
groupadd hadoopuseradd -g hadoop -d /home/hadoop hadooppasswd hadoop
3. 设置ssh无密码登录
su - hadoopssh-keygen -t rsa //在~/.ssh/目录下生成id_rsa私钥和id_rsa.pub公钥cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
su - hadoopssh-keygen -t rsa -P '' -f ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
ssh localhost //首次时会让输入yes/no,但是不需要密码
三、Hadoop的安装(在Hadoop用户下)
su - hadoopmkdir ~/hadoop-env //将hadoop-1.2.1.tar.gz拷贝到该文件夹下cd hadoop-env/tar zxvf hadoop-1.2.1.tar.gz //安装Hadoop
su -vi /etc/profile
# set hadoopexport HADOOP_HOME=/home/hadoop/hadoop-env/hadoop-1.2.1export PATH=$HADOOP_HOME/bin:$PATH
source /etc/profileexit //退回到Hadoop用户
四、配置Hadoop相关配置文件
- hadoop-env.sh;
- core-site.xml:用于配置通用属性;
- hdfs-site.xml:用于配置HDFS属性;
- mapred-site.xml:用于配置MapReduce属性;
- masters和slaves文件;
- /etc/hosts;
- core-default.html
- hdfs-default.html
- mapred-default.html
下面介绍不同模式的关键配置属性:
| 组件名称 | 属性名称 | 独立模式 | 伪分布模式 | 全分布模式 |
| Common | fs.default.name | file:///(默认) | hdfs://localhost/ |
hdfs://namenode/ |
| HDFS | dfs.replication | N/A | 1 | 3(默认) |
| MapReduce 1 | mapred.job.tracker | local | localhost:8021 | jobtracker:8021 |
| YARN(MapReduce 2) | yarn.resource.manager.address | N/A |
localhost:8032 |
resourcemanager:8032 |
cd /home/hadoop/hadoop-env/hadoop-1.2.1/conf/cp hadoop-env.sh hadoop-env.sh.origvi hadoop-env.sh
#set java environmentexport JAVA_HOME=/usr/program/jdk1.6.0_45export HADOOP_HOME_WARN_SUPPRESS=true
cd /home/hadoop/hadoop-envmkdir hadooptmpchmod 777 -R /home/hadoop/hadoop-env/hadooptmp/ (以root用户执行)cp core-site.xml core-site.xml.origvi core-site.xml
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration><property><name>fs.default.name</name><value>hdfs://localhost:9000/</value> 注:9000后面的“/”不能少</property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/hadoop-env/hadooptmp</value></property></configuration>
cp hdfs-site.xml hdfs-site.xml.origvi hdfs-site.xml
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration><property><name>dfs.replication</name><value>1</value></property></configuration>
cp mapred-site.xml mapred-site.xml.origvi mapred-site.xml
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration><property><name>mapred.job.tracker</name><value>localhost:9001</value></property></configuration>
cd /home/hadoop/hadoop-env/hadoop-1.2.1/confcp masters masters.origcp slaves slaves.origvi mastersvi slaves
localhost
cp /etc/hosts /etc/hosts.origvi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6127.0.0.1 master127.0.0.1 slave
五、Hadoop启动
- 在使用Hadoop前必须格式化生成一个全新的HDFS安装。
- 该过程创建一个空文件系统,仅包含存储目录和namenode持久化数据结构的初始版本。由于namenode管理文件系统的元数据,并且datanode可以动态的加入或离开集群,因此这个格式化过程不针对datanode。
- 同理,文件系统的规模也无从谈起,集群中datanode的数量将决定文件系统的规模。
- datanode可以在文件系统格式化很久之后按需增加。
su - hadoopcd /home/hadoop/hadoop-env/hadoop-1.2.1/bin/hadoop namenode -format //nodename和-format中间有空格
- hadoop.tmp.dir/dfs/name目录;
su -chmod -R 777 /home/hadoop/hadoop-env/hadoop-1.2.1/libexec/../logs/service iptables stop //关闭防火墙
su - hadoopcd /home/hadoop/hadoop-env/hadoop-1.2.1/bin/./start-all.sh
- hadoop.tmp.dir/dfs/data: 存放datanode上的数据块数据;
- hadoop.tmp.dir/dfs/namesecondary :是namenode的一个备份;
- hadoop.tmp.dir/mapred/local目录;
jps
- start-dfs.sh
- start-mapred.sh
- namenode;
- datanode;
- secondarynamenode;
- jobtracker;
- tasktracker;
11761 SecondaryNameNode //是namenode的一个备份12097 Jps11637 DataNode11524 NameNode11862 JobTracker11981 TaskTracker
- secondaryname是namenode的一个备份,里面同样保存了名字空间和文件到文件块的map关系。建议运行在另外一台机器上,这样master死掉之后,还可以通过secondaryname所在的机器找回名字空间,和文件到文件块得map关系数据,恢复namenode。
- 启动之后,会在$hadoop.tmp.dir/dfs目录下生成data目录,这里面存放的是datanode上的数据块数据;因为笔者用的是单机,所以name和 data都在一个机器上,如果是集群的话,namenode所在的机器上只会有name文件夹,而datanode上只会有data文件夹。
- 在Linux下关闭防火墙:使用service iptables stop命令;关闭hadoop:stop-all.sh
- 再次对namenode进行格式化:/home/hadoop/hadoop-env/hadoop-1.2.1/bin目录下执行hadoop namenode -format命令;
- 对服务器进行重启;
- 查看datanode或是namenode对应的日志文件,日志文件保存在/home/hadoop/hadoop-env/hadoop-1.2.1/logs目录下;
- 再次在/bin目录下用start-all.sh命令启动所有进程,通过以上的几个方法应该能解决进程启动不完全的问题了;
cd /home/hadoop/hadoop-env/hadoop-1.2.1/bin/hadoop dfsadmin -report
- Namenode:localhost:50070
- JobTracker:localhost:50030
下面是查看的结果:
- localhost:50070(或者 ip:50070查重,如:10.180.0.231::50070)
- 查看namenode

- localhost:50030(或者 ip:50030查重)
- 查看jobtracker启动情况

六、Hadoop环境测试
/home/hadoop/hadoop-env/hadoop-1.2.1mkdir testcd testvi file01 (输入数个单词)vi file02 (输入数个单词)
hadoop fs -mkdir input
hadoop fs -ls
drwxr-xr-x - hadoop supergroup 0 2016-09-30 06:30 /user/hadoop/input
hadoop dfsadmin -safemode leave
hadoop dfsadmin -safemode enter/leave/get/wait
hadoop fs -put /home/hadoop/hadoop-env/hadoop-1.2.1/test/* input
hadoop jar /home/hadoop/hadoop-env/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output
- hadoop jar:执行“jar”命令
- /home/hadoop/hadoop-env/hadoop-1.2.1/hadoop-examples-1.2.1.jar:wordcount所在的jar包
- wordcount:程序主函数名
- input output:输入输出文件夹
hadoop fs -ls
drwxr-xr-x - hadoop supergroup 0 2016-09-30 06:53 /user/hadoop/inputdrwxr-xr-x - hadoop supergroup 0 2016-09-30 06:56 /user/hadoop/output
hadoop dfs -cat output/*
......Summary 1The 1This 2Trap 1at 4by 1client 1counts 1......
cd /home/hadoop/hadoop-env/hadoop-1.2.1/bin/./stop-all.sh
七、参考链接
【Hadoop环境搭建】Centos6.8搭建hadoop伪分布模式的更多相关文章
- Hadoop运行模式:本地模式、伪分布模式、完全分布模式
1.本地模式:默认模式 - 不对配置文件进行修改. - 使用本地文件系统,而不是分布式文件系统. - Hadoop不会启动NameNode.DataNode.ResourceManager.NodeM ...
- 【Hadoop】Hadoop的安装,本地模式、伪分布模式的配置
Download hadoop-2.7.7.tar.gz 下载稳定版本的hadoop-2.7.7.tar.gz(我用的2.6.0,但是官网只能下载2.7.7的了) Required Software ...
- Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)
系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...
- Hadoop完全分布式集群搭建
Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和 ...
- linux运维、架构之路-Hadoop完全分布式集群搭建
一.介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件 ...
- 进阶2:Hadoop 环境搭建: hadoop3.1.1 jdk1.8 在centos6.5上的伪分布式安装
参考文章: https://blog.csdn.net/qq_38038143/article/details/82779016 https://blog.csdn.net/m0_37461645/a ...
- Hadoop环境搭建 (伪分布式搭建)
一,Hadoop版本下载 建议下载:Hadoop2.5.0 (虽然是老版本,但是在企业级别中运用非常稳定,新版本虽然添加了些小功能但是版本稳定性有带与考核) 1.下载地址: hadoop.apache ...
- Hadoop 2.2.0单节点的伪分布集成环境搭建
Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
首先要了解一下Hadoop的运行模式: 单机模式(standalone) 单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选 ...
随机推荐
- Qt之qSetMessagePattern
简述 改变默认的消息处理输出. 允许改变qDebug().qWarning().qCritical().qFatal()的输出. 简述 占位符 示例 qSetMessagePattern QT_MES ...
- linux安装sqlcmd登录sqlserver
首先从微软网站下载sqlncli安装文件,link. 因为是在内网安装,首先手工下载unixODBC2.3.0.tar.gz,下载后上传到服务器. 将下载的tar文件文件,放在同build_dm.sh ...
- ZOJ1238 Guess the Number
/*In this problems, we’ll talk about BIG numbers. Yes, I’m sorry, big numbers again…. Let N be a pos ...
- js confirm用法
<script> $('.tzshanchu').click(function(){ if(confirm('是否确认删除')){ alert('删除了') } });</scrip ...
- Codeforces Round #120 (Div. 2)
A. Vasya and the Bus 根据\(n,m\)是否为0分类讨论下. B. Surrounded 判断两圆是否有交点,否则构造的圆与两圆相切. C. STL 看代码比较清楚. void t ...
- P235 实战练习(集合类2)、摇奖程序和验证码(修改版)
1.分别向Set集合以及List集合中添加“A”.“a”.“c”.“C”.“a”5个元素,观察重复值“a”能否在List集合以及Set集合中成功添加. package org.hanqi.practi ...
- HDU-5806 NanoApe Loves Sequence Ⅱ(two-pointer或二分)
题目大意:给一个整数序列,统计<k,m>子序列的数目.<k,m>序列是满足第k大的数字不比m小的连续子序列. 题目分析:维护一个不小于m的数的个数的后缀和数组,可以枚举序列起点 ...
- POJ-2886 Who Gets the Most Candies?(线段树+模拟)
题目大意:n个小孩按顺时针站成一圈,每次会有一个小孩出队(第一个出队的小孩已知),在他出队时会指定下一个出队的小孩,直到所有的小孩全部出队游戏结束.第p个出队的小孩会得到f(p)个糖果,f(p)为p的 ...
- Meven笔记
技术交流群:233513714 1.Meven环境搭建 http://www.cnblogs.com/quanyongan/archive/2013/04/17/3025971.html 2.Ecli ...
- Android项目——短信发送器
因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限: <?xml version="1.0" encoding=" ...