hadoop本地模式和伪分布式(单节点)的部署

一、关于hadoop

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。

HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop解决哪些问题?

  • 海量数据需要及时分析和处理

  • 海量数据需要深入分析和挖掘

  • 数据需要长期保存

海量数据存储的问题:

  • 磁盘IO称为一种瓶颈,而非CPU资源

  • 网络带宽是一种稀缺资源

  • 硬件故障成为影响稳定的一大因素

HDFS采用master/slave架构

   Hadoop的三种运行模式 :

          1.独立(本地)运行模式:无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 。

          2.伪分布式模式:  Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。

          3.完全分布式模式:Hadoop守护进程运行在一个集群上。

实验环境:
操作系统:redhat6.5 iptables selinux off
hadoop-2.7.3版本,jdk 7版本

实验主机:server1  172.25.45.1

 注意:在本地模式下,将使用本地文件系统和本地MapReduce运行器。在分布式模式下,将启动HDFS和YARN守护进程。

二、Hadoop部署

1.创建hadoop用户及密码

[root@server1 ~]# useradd -u 800 hadoop       ##创建udi为800的hadoop用户
[root@server1 ~]# ls
hadoop-2.7.3.tar.gz  jdk-7u79-linux-x64.tar.gz
[root@server1 ~]# mv * /home/hadoop/          ##将hadoop相关安装包都放在hadoop用户家目录下
[root@server1 ~]# passwd hadoop               ##给hadoop用户设置密码

2.切换到hadoop用户安装jdk环境

[root@server1 ~]# su - hadoop
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz  jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ tar zxf jdk-7u79-linux-x64.tar.gz 
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz  jdk1.7.0_79  jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ ln -s jdk1.7.0_79/ java     ##软连接方便操作 
[hadoop@server1 ~]$ ls
hadoop-2.7.3.tar.gz  java  jdk1.7.0_79  jdk-7u79-linux-x64.tar.gz
[hadoop@server1 ~]$ cd java/
[hadoop@server1 java]$ cd bin/
[hadoop@server1 bin]$ pwd
/home/hadoop/java/bin    ##java命令的绝对路径
[hadoop@server1 bin]$ cd
[hadoop@server1 ~]$ vim .bash_profile     ##写入java命令绝对路径方便命令使用
   PATH=$PATH:$HOME/bin:/home/hadoop/java/bin
[hadoop@server1 ~]$ source .bash_profile  ##刷新系统配置
[hadoop@server1 ~]$ jps                   ##显示当前所有java进程pid的命令

3.安装hadoop

[hadoop@server1 ~]$ tar zxf hadoop-2.7.3.tar.gz 
[hadoop@server1 ~]$ cd hadoop-2.7.3/etc/hadoop
[hadoop@server1 hadoop]$ vim hadoop-env.sh         ##声明java

4.独立操作debug

[hadoop@server1 hadoop-2.7.3]$ mkdir input
[hadoop@server1 hadoop-2.7.3]$ cp etc/hadoop/*.xml input/
[hadoop@server1 hadoop-2.7.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce
  -examples-2.7.3.jar grep input output 'dfs[a-z.]+'

其中的“Storage directory /hadoop/temp/dfs/name has been successfully formatted”一行信息表明对应的存储已经格式化成功

[hadoop@server1 hadoop-2.7.3]$ cd output/
[hadoop@server1 output]$ cat *

三.伪分布集群搭建

1.配置core-site.xml      ###配置Hadoop的核心属性

[hadoop@server1 hadoop-2.7.3]$ cd etc/hadoop/
[hadoop@server1 hadoop]$ vim core-site.xml 
<configuration>
        <property> 
            <name>fs.defaultFS</name> 
            <value>hdfs://172.25.45.1:9000</value> 
        </property>
</configuration>

2.配置hdfs-site.xml    ##定义hdfs的属性

[hadoop@server1 hadoop]$ vim hdfs-site.xml 
<configuration>
      <property>       
         <name>dfs.replication</name>
         <value>1</value>
      </property>
</configuration>

3.设置免密登陆

[hadoop@server1 hadoop]$ ssh-keygen    ##enter-->enter-->enter

[hadoop@server1 hadoop]$ ssh-copy-id 172.25.45.1  ##把本地的ssh公钥文件安装到远程主机对应的账户

[hadoop@server1 hadoop]$ cd
[hadoop@server1 ~]$ cd .ssh/
[hadoop@server1 .ssh]$ ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[hadoop@server1 .ssh]$ diff authorized_keys id_rsa.pub  ##对比是两个文件是否由不同 
若不同在删除authorized_keys文件,并将id_rsa.pub文件复制一份命名为authorized_keys

测试:ssh 172.25.45.1    不需要密码则设置成功

4.启动hdf
格式化名称节点

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop-2.7.3/etc/hadoop
[hadoop@server1 hadoop]$ vim slaves   ##Hadoop集群的slave主机列表,master启动时会通过SSH
连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
   172.25.45.1                 ##将localhost改为本机ip
[hadoop@server1 hadoop]$/home/hadoop/hadoop-2.7.3
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs namenode -format   ##格式化

通过脚本启动

[hadoop@server1 hadoop-2.7.3]$ sbin/start-dfs.sh 
[hadoop@server1 hadoop-2.7.3]$ jps   如果jps查看不存在,只要进程或者端口开启说明服务也启动成功了

5.查看服务端口是否开启(50070):

在浏览器中测试:172.25.45.1:50070

测试:创建目录 

在HDFS中创建一个名为hadoop的目录,如果它的上级目录不存在,也会被创建,如同linux中的mkidr –p。

[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -mkdir /user
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -mkdir /user/hadoop
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -ls /user  查看目录下内容,包括文件名,权限,所有者,大小和修改时间
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -put input/ 将input目录上传到/user/hadoop/下
[hadoop@server1 hadoop-2.7.3]$ rm -fr input/ output/

在浏览器查看,点击utilities,在点击browse file system:

YARN单节点
配置mapred-site.xml

[hadoop@server1 hadoop-2.7.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-
 mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -ls
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -cat output/*
[hadoop@server1 hadoop-2.7.3]$ bin/hdfs dfs -get output
[hadoop@server1 hadoop-2.7.3]$ cd output/
[hadoop@server1 output]$ cat *

四、YARN单节点

1配置mapred-site.xml        ## HDFS的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,

                                              ##此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

[hadoop@server1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@server1 hadoop]$ vim mapred-site.xml

2.配置yarn-site.xml

[hadoop@server1 hadoop]$ vim yarn-site.xml 

3.启动yarn

[hadoop@server1 hadoop-2.7.3]# sbin/start-yarn.sh  ###停止的话把start换成stop即可

测试:在浏览器访问: 172.25.45.1:8088

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值