hadoop是什么?

Hadoop学习笔记--1_hadoop

What Is Apache Hadoop?

The Apache Hadoop project develops open-source softwarefor reliable, scalable, distributed computing.

解决问题:

海量数据的存储(HDFS

海量数据的分析(MapReduce

作者:Doug Cutting

Google三篇论文的启发(GFSMapReduceBigTable)

Hadoop学习笔记--1_hadoop_02

hadoop核心

HDFS: Hadoop Distributed FileSystem 分布式文件系统

MapReduce:并行计算框架

怎样解决海量数据的存储?

Hadoop学习笔记--1_hadoop_03

HDFS的架构

主从结构

主节点,只有一个: namenode

从节点,有很多个: datanodes

namenode负责:

接收用户操作请求

维护文件系统的目录结构

管理文件与block之间关系,blockdatanode之间关系

datanode负责:

存储文件

文件被分成block存储在磁盘上

为保证数据安全,文件会有多个副本

MapReduce的架构

主从结构

主节点,只有一个: JobTracker

从节点,有很多个: TaskTrackers

JobTracker负责:

接收客户提交的计算任务

把计算任务分给TaskTrackers执行

监控TaskTracker的执行情况

TaskTrackers负责:

执行JobTracker分配的计算任务

Hadoop的特点

扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。

成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。

可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。

Hadoop集群的物理分布

Hadoop学习笔记--1_hadoop_04

单节点物理结构

Hadoop学习笔记--1_hadoop_05

Hadoop部署方式

本地模式

伪分布模式

集群模式


在虚拟机上部署伪分布模式Hadoop

软件:vmware9、CentOS6.x、hadoop-1.1.2.tar.gz、jdk-6u45-linux-i586.bin、SecureCRT

1、安装vmware9,并安装虚拟机CentOS

2、配置Linux环境

   2.1、虚拟机选择Host-only方式连接,虚拟机的IP与虚拟网卡VMwareNetworkAdapterVMnet1配置在同一网段,这样虚拟机可以和主机通信。

   如下:

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:0c:29:bf:45:8b

IPV6INIT=yes

NM_CONTROLLED=yes

ONBOOT=yes

TYPE=Ethernet

UUID="99339c27-0884-46c0-85d5-2612e5c1f149"

IPADDR=192.168.232.129

NETMASK=255.255.255.0

DNS2=8.8.4.4

GATEWAY=192.168.232.1

DNS1=8.8.8.8

USERCTL=no

   2.2、修改主机名

       vi /etc/sysconfig/network

       Hadoop学习笔记--1_hadoop_06

       我将主机名修改为hadooptest

   2.3、修改主机名和IP的映射关系

       vi /etc/hosts

       添加一行 192.168.232.129 hadooptest

  •    有些版本的Linux只需修改/etc/hosts文件即可,2.2步不需要操作

    2.4、关闭防火墙

       service iptables status

       service iptables stop

       设置防火墙开机不启动

       chkconfig iptables --list

       chkconfig iptables off

3、安装JDK

   3.1、上传jdk并修改权限,使之可执行

       使用ftp工具上传,

       修改权限:chmod 777 jdk-6u45-linux-i586.bin

       .bin文件为自解压格式文件,执行就会解压到当前目录下

       #./jdk-6u45-linux-i586.bin

       将解压出来的文件夹jdk1.6.0_45移动到/usr/local/下

       #mv /usr/local/jdk1.6.0_45 /usr/local/

   3.2、配置环境变量

       修改/etc/profile文件,在末尾添加

       export JAVA_HOME=/usr/local/jdk1.6.0_45

       export PATH=$PATH:$JAVA_HOME/bin

       添加完之后,运行命令#source /etc/profile,来进行刷新

4、安装Hadoop

   4.1、上传并解压到指定路径

       在跟路径下新建一个cloud文件夹:#mkdir /cloud

       将hadoop-1.1.2.tar.gz解压到/cloud下:#tar -zxvf hadoop-1.1.2.tar.gz -C /cloud/

   4.2、修改Hadoop的4个配置文件

       第一个:hadoop-env.sh

           export JAVA_HOME=/usr/local/jdk1.6.0_45

       第二个:core-site.xml

           <configuration>

               <!-- 指定hdfs的老大namenode的地址 -->

               <property>

                   <name>fs.default.name</name>

                   <value>hdfs://hadooptest:9000</value>

               </property>

               <!-- 指定hadoop运行时产生的文件的位置 -->

               <property>

                   <name>hadoop.tmp.dir</name>

                   <value>/cloud/hadoop-1.1.2/tmp</value>

               </property>

           </configuration>

       第三个:hdfs-site.xml

           <configuration>

               <!-- 指定HDFS副本的数量 -->

               <property>

                   <name>dfs.replication</name>

                   <value>1</value>

               </property>

           </configuration>

       第四个:mapred-site.xml

           <configuration>

               <property>

                   <name>mapred.job.tracker</name>

                   <value>hadooptest:9001</value>

               </property>

           </configuration>

   4.3、将Hadoop添加到环境变量

       #vi /etc/profile

       export JAVA_HOME=/usr/local/jdk1.6.0_45

       export HADOOP_HOME=/cloud/hadoop-1.1.2

       export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

5、格式化HDFS

   #hadoop namenode -format

6、启动hadoop

   #start-all.sh

7、验证集群是否启动成功

   #jps    (jps命令的意思是查看java进程,ps的意思是查看所有进程)

   

jps(不包括jps应该有5个)

NameNode

SecondaryNameNode

DataNode

JobTracker

TaskTracker

还可以通过浏览器的方式验证

http://192.168.232.129:50070 (hdfs管理界面)

http://192.168.232.129:50030 (mr管理界面)

在这个文件中添加linux主机名和IP的映射关系

C:\Windows\System32\drivers\etc\hosts

192.168.232.129 hadooptest


8、配置ssh免登陆

   #ssh-keygen -t rsa

   #ssh-coyp-id -i localhost(强烈建议)

       或

   #cat ~/.ssh/id_rsa.put >> ~/.ssh/authorized_keys

   ssh免登陆原理

Hadoop学习笔记--1_hadoop_07

9、去除启动或者运行命令时的警告

       与HADOOP_HOME有关