【Hadoop环境搭建】Centos6.8搭建hadoop伪分布模式
阅读目录
- 概要
- 章节1:安装java 1.6
- 章节2:设置ssh无密码登录
- 章节3:Hadoop的安装(在Hadoop用户下)
- 章节4:配置Hadoop相关配置文件
- 章节5:Hadoop启动
- 章节6:Hadoop环境测试
- 章节7:参考链接
概要
- 独立(或本地)模式 : 无需运行任何守护进程,所有程序都在同一个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;
回到顶部
一、安装java 1.6
二、设置ssh无密码登录
- 在伪分布模式下工作必须启动守护进程,而启动守护进程的前提是已经安装SSH。
- Hadoop并不严格区分伪分布模式和全分布模式,它只是在集群内的(多台)主机(由slaves文件定义)上启动守护进程:SSH到各个主机并启动一个守护进程。
- 伪分布模式是全分布模式的一个特例。
- 在伪分布模式下,(单)主机就是本地计算机(localhost),因此需要确保用户能够SSH到本地机器,并且可以不输入密码。
rpm -qa| grep ssh //检查是否安装
service sshd status //查看ssh运行状态
yum install ssh //安装ssh
chkconfig --list sshd //查看是否开机启动
chkconfig sshd on //设置开机启动
groupadd hadoop
useradd -g hadoop -d /home/hadoop hadoop
passwd hadoop
3. 设置ssh无密码登录
su - hadoop
ssh-keygen -t rsa //在~/.ssh/目录下生成id_rsa私钥和id_rsa.pub公钥
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
su - hadoop
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost //首次时会让输入yes/no,但是不需要密码
三、Hadoop的安装(在Hadoop用户下)
su - hadoop
mkdir ~/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 hadoop
export HADOOP_HOME=/home/hadoop/hadoop-env/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH
source /etc/profile
exit //退回到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.orig
vi hadoop-env.sh
#set java environment
export JAVA_HOME=/usr/program/jdk1.6.0_45
export HADOOP_HOME_WARN_SUPPRESS=true
cd /home/hadoop/hadoop-env
mkdir hadooptmp
chmod 777 -R /home/hadoop/hadoop-env/hadooptmp/ (以root用户执行)
cp core-site.xml core-site.xml.orig
vi 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.orig
vi 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.orig
vi 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/conf
cp masters masters.orig
cp slaves slaves.orig
vi masters
vi slaves
localhost
cp /etc/hosts /etc/hosts.orig
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 master
127.0.0.1 slave
五、Hadoop启动
- 在使用Hadoop前必须格式化生成一个全新的HDFS安装。
- 该过程创建一个空文件系统,仅包含存储目录和namenode持久化数据结构的初始版本。由于namenode管理文件系统的元数据,并且datanode可以动态的加入或离开集群,因此这个格式化过程不针对datanode。
- 同理,文件系统的规模也无从谈起,集群中datanode的数量将决定文件系统的规模。
- datanode可以在文件系统格式化很久之后按需增加。
su - hadoop
cd /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 - hadoop
cd /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 Jps
11637 DataNode
11524 NameNode
11862 JobTracker
11981 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.1
mkdir test
cd test
vi 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/input
drwxr-xr-x - hadoop supergroup 0 2016-09-30 06:56 /user/hadoop/output
hadoop dfs -cat output/*
......
Summary 1
The 1
This 2
Trap 1
at 4
by 1
client 1
counts 1
......
cd /home/hadoop/hadoop-env/hadoop-1.2.1/bin/
./stop-all.sh
七、参考链接
【Hadoop环境搭建】Centos6.8搭建hadoop伪分布模式相关推荐
- windows搭建hadoop环境(解决HADOOP_HOME and hadoop.home.dir are unset)
一.软件安装 1.JDK1.8 链接:https://pan.baidu.com/s/1jqqWb-3JNMDW3DbvibYlJQ?pwd=agoi 提取码:agoi 2.hadoop-3.1.3版 ...
- 三、Hadoop运行模式(本地模式、伪分布模式)
上篇博客介绍了Linux下搭建Hadoop运行环境,本篇主要介绍Hadoop的本地运行模式和伪分布式模式,关注专栏<破茧成蝶--大数据篇>查看相关系列的文章~ 目录 一.本地模式 1.1 ...
- Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)
系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...
- hadoop环境搭建(详解)
hadoop 环境搭建 引言: 随着人工智能和大数据的热潮的到来,大数据变得越来越火了,坏蛋哥的信念就是致力于大数据的发展和进步,希望能为大数据的发展和推广尽一份绵薄之力.如果要做大数据,那么大数据相 ...
- Ubuntu18.04+Docker+Hadoop+Spark分布式集群搭建
题前记:因为课程需求,下面将搭建过程用学术论文的格式写.(其实我并不想写的,没办法,学习作业嘛QAQ...) 我的联系方式:630056108 文章目录 Docker上的Hadoop大数据平台搭建与测 ...
- Hadoop全分布式集群搭建(全网最详细,保姆级教程)
在上一篇Hadoop环境搭建(全网最详细,保姆级教程)中已经搭建好了一个单机Hadoop环境,接下来搭建全分布式Hadoop集群 首先对Hadoop全分布示集群进行简单介绍和规划 一个集群由一个主机, ...
- Hadoop伪分布模式安装
Hadoop伪分布模式安装 Hadoop的运行模式分为3种: 本地运行模式,伪分布运行模式,完全分布运行模式. (1)本地模式(local mode) 这种运行模式在一台单机上运行,没有HDFS分布式 ...
- hadoop环境搭建之伪分布集群环境搭建(单节点)
首先,尼玛哥是一名研究生,可以说很多学习的知识都是来源于同门师兄弟,本着将自己学习到的东西以博客的形式分享到网络上,不仅仅可以让自己回顾,也可以帮助需要学习的小伙伴们,供大家一同学习. 首先,hado ...
- Hadoop学习总结(3)——Hadoop伪分布式环境搭建
一.Hadoop运行模式 Local (Standalone) Mode 本地模式 适用于开发人员测试Debug 使用本地文件系统 Pseudo-Distributed Mode 伪分布式模式 适用于 ...
最新文章
- Git的学习与使用(一)——Git 与 SVN 区别
- Android 软键盘的显示和隐藏,这样操作就对了
- java应用的优化【转】
- 四级计算机网络考试大纲,2017年全国计算机等级考试四级计算机网络考试大纲...
- python爬虫企业级技术点_Python爬虫必备技术点(一)
- 【Linux导论】Linux引导流程(The Boot Process)
- hibernate VS mybatis
- 如何全局自动化注册异步组件?
- 回归模型的score得分为负_逻辑回归评分卡实现和评估
- Python Tricks(十五)—— repeat(字符串重复)
- python使用dbm持久字典详解
- 计算机语言排行之我见
- 接收蓝牙信号并发送到云端服务器,蓝牙如何可以与云服务器连接
- HTML 语法教学之连结标签
- 怎样用CorelDRAW中透镜效果制作镂空球体
- outlook 禁用不安全_在Outlook 2007中禁用即时搜索
- 杰奇linux伪静态,nginx 杰奇 nginx 伪静态规则
- 数据源的配置简单介绍
- c语言去除字符串的空格,C语言实现去除字符串中空格
- crypto lib