Hadoop入门进阶步步高(一)-环境准备

前言

Hadoop从存储上来说,是类似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System);从计算上来说,它通过MapReduce模型,将大数据的计算分发到多台计算机上完成,再将结果合并,减少计算的时间。

Hadoop适合于:

1、超大数据的计算;

2、一次写入、多次读取的模式;

3、可以跑在普通的硬件上。

Hadoop不适合:

1、低延迟的数据访问,它是为高数据吞吐量应用优化的;

2、大量的小文件

Hadoop客户端需要和namenode进行交互,而namenode中存放的是datanode的文件属性,且都是在内存中,如果小文件过多,namenode是存放不了的;

3、多用户写入,任意修改文件。

Hadoop适合于一次计算,多次读取的场景,如搜索引擎,只支持随机读取不支持随机写入,如Hadoop和Lucene的集成就不能够直接集成,因为Lucene支持随机写入。

本文将从使用的角度上谈了如何搭建Hadoop、如何配置Hadoop、如何验证Hadoop及在Hadoop上面执行计算,以及可能会遇到些什么样的问题。

一、Hadoop环境搭建

因为Hadoop需要在Linux运行,并且Hadoop是基于Java的,在继续进行下面的步骤之前,请确认你已经准备好Linux操作系统以及Java 6或以上版本,并且已经正确的设置了JAVA_HOME。

1、下载Hadoop

搭建Hadpp的版本为1.2.1 下载地址为:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-1.2.1/

2、安装Hadoop

解压缩Hadoop到任意目录,我当前的Hadoop是将其解压到目录/usr/local/hadoop-1.2.1,并在/etc/profile中设置好环境变量HADOOP_HOME(这个变量不是必须的,在1.2.1已经是Deprecated了,这里我之所以设置,还是为了方便),以及将$HADOOP_HOME/bin目录加入到PATH中,这样我们就可以在任意地方执行hadoop命令了,为了使用上的方便,再给”hadoop fs”设一个名为hdfs的alias方便使用,以下是我机器上/etc/profile增加的内容:


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

export HADOOP_HOME=/usr/local/hadoop-1.2.1

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

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

#Alias for hadoop

alias hdfs=‘hadoop fs‘

注:该文件的编辑需要root权限,修改完成后,如果想立即生效,需要通过source命令操作一下:


source /etc/profile

否则就只有退出重新登陆才会生效。

3、准备ssh

Hadoop需要通过SSH和其它计算服务器进行沟通,所以首先要确定本机或者是其它Hadoop计算服务器,是否都已经安装了ssh。

(1)、确定系统是否安装了ssh和ssh-keygey

可以通过which命令来确认


which ssh

which ssh-keygen

如果出现

/usr/bin/which: no ssh in (/usr/.....)则表示系统里面没有安装SSH服务,可以通过www.openssh.com下载安装

(2)、发布公钥证书

执行如下命令:


ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa

在~/.ssh/ 目录会生成id_rsa和id_rsa.pub两个文件,将id_rsa.pub复制一份在~/.ssh/目录下,并重命名为authorized_keys,如果是单机搭建伪分布式,此时ssh的准备工作已经完成了,如果使用全分布式环境,那么需要将authorized_keys及id_rsa两个文件复制到各台分布式slave机器的“~/.ssh目录中”中,这样任意两台机器之间互相通过ssh访问,都不需要输入密码了,如果只是拷贝到authorized_keys到slave机器中,就只能够实现主到从的不输密码访问。

(3)测试登陆验证

在本例中,采用的是在单机中搭建伪分布式系统,通过如下ssh命令尝试登陆:


ssh localhost

ssh 127.0.0.1

如果不再提示输入密码,直接登陆成功,那么SSH登陆就设置成功了。

Hadoop入门进阶步步高(一)-环境准备

时间: 2024-10-10 17:37:43

Hadoop入门进阶步步高(一)-环境准备的相关文章

Hadoop入门进阶步步高(六)-Hadoop1.x与Hadoop2的区别

六.Hadoop1.x与Hadoop2的区别 1.变更介绍 Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更: l HDFS的NameNodes可以以集群的方式布署,增强了NameNodes的水平扩展能力和可用性: l MapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARN(Yet Another Re

Hadoop入门进阶步步高(二)-目录介绍

二.Hadoop目录结构 这里重点介绍几个目录bin.conf及lib目录. 1.$HADOOP_HOME/bin目录 文件名称 说明 hadoop 用于执行hadoop脚本命令,被hadoop-daemon.sh调用执行,也可以单独执行,一切命令的核心 hadoop-config.sh Hadoop的配置文件 hadoop-daemon.sh 通过执行hadoop命令来启动/停止一个守护进程(daemon). 该命令会被bin目录下面所有以"start"或"stop&quo

Hadoop入门进阶步步高(三)-配置Hadoop

三.配置Hadoop 1.设置$HADOOP_HOME/conf/hadoop-env.sh 这个文件中设置的是Hadoop运行时需要的环境变量,在1.2.1版中共有19个环境变量,如下: 变量名称 默认值 说明 JAVA_HOME 设置JDK的路径,这个必须设置,否则Hadoop无法启动,值如: /usr/local/jdk1.6.0_33 HADOOP_CLASSPATH 空 这个用以设置用户的类路径,也可以在执行计算之前设置 HADOOP_HEAPSIZE 1000m 设置Hadoop堆的

Hadoop入门进阶步步高(五)-搭建Hadoop集群

五.搭建Hadoop集群 上面的步骤,确认了单机可以执行Hadoop的伪分布执行,真正的分布式执行无非也就是多几台slave机器而已,配置方面的有一点点区别,配置起来就非常简单了. 1.准备三台服务器 192.168.56.101 192.168.56.102 192.168.56.103 在每台机器的/etc/hosts中都将ip及hostname给映射上: 192.168.56.101  nginx1 192.168.56.102  nginx2 192.168.56.103  nginx3

Hadoop入门进阶步步高(四)-测试Hadoop

四.测试Hadoop 一个简单的求每年温度最大值的程序. 1.准备两个文本测试数据 准备两个名为data1.txt及data2.txt的文件,用于做为计算的输入数据,将其放于/home/fenglibin/java/data目录下: data1.txt data2.txt 1999 10 1999 20 1999 25 2000 21 2000 22 2000 18 2000 40 2001 45 2001 65 2002 90 2002 89 2002 70 2003 40 2003 80 1

Hadoop入门进阶步步高(二)-文件夹介绍

二.Hadoop文件夹结构 这里重点介绍几个文件夹bin.conf及lib文件夹. 1.$HADOOP_HOME/bin文件夹 文件名 说明 hadoop 用于运行hadoop脚本命令,被hadoop-daemon.sh调用运行,也能够单独运行,一切命令的核心 hadoop-config.sh Hadoop的配置文件 hadoop-daemon.sh 通过运行hadoop命令来启动/停止一个守护进程(daemon). 该命令会被bin文件夹以下全部以"start"或"stop

Hadoop入门进阶课程12--Flume介绍、安装与应用案例

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  .该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237 [注]该系列所使用到安装包.测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.c

Hadoop入门一:Hadoop简介

  从数据爆炸开始...  1.1 第三次工业革命 第一次:18世纪60年代,手工工厂向机器大生产过渡,以蒸汽机的发明和使用为标志. 第二次:19世纪70年代,各种新技术新发明不断被应用于工业生产,以电力的发明使用为标志. 第三次:20世界四五十年代末,以高新技术为代表的新科学技术革命,以原子能.航天技术和电子计算机 为标志. 1.2 信息技术发展带来的数据爆炸 纽约证券所交易    每天 1TB FaceBook一千亿照片  1PB 腾讯 每天 300TB 淘宝 每天 pv20亿 数据量 50

Hadoop入门学习笔记---part4

紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操作,前提是按照<Hadoop入门学习笔记---part2>中的已经在虚拟机中搭建好了Hadoop伪分布环境:并且确定现在linux操作系统中hadoop的几个进程已经完全启动了. 好了,废话不多说!实际的例子走起. 在myeclipse中新建一个java工程: 在项目工程中新建一个lib包用于存放