Hadoop学习笔记0001——Hadoop安装配置

Hadoop配置主要事项

1、 保证Master和Slave能够ping通;

2、 配置/etc/hosts文件;

3、 能够ssh无密码切换各台主机;

4、 安装sun公司的jdk,在/etc/profile中设置好环境变量;

5、 下载Hadoop,安装、配置、搭建Hadoop集群;

1.Hadoop简介

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop
Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

  对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

从上面的介绍可以看出,HDFSMapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

2.环境说明

  集群中包括4个节点:1个Master,3个Salve,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:


机器名称


IP地址


Master.Hadoop


192.168.1.2


Salve1.Hadoop


192.168.1.3


Salve2.Hadoop


192.168.1.4


Salve3.Hadoop


192.168.1.5

  四个节点上均是CentOS6.0系统,并且有一个相同的用户hadoop。Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master机器。

 3.网络配置

Hadoop集群要按照1.2小节表格所示进行配置,我们在"Hadoop集群(第1期)"的CentOS6.0安装过程就按照提前规划好的主机名进行安装和配置。如果实验室后来人在安装系统时,没有配置好,不要紧,没有必要重新安装,在安装完系统之后仍然可以根据后来的规划对机器的主机名进行修改。

  下面的例子我们将以Master机器为例,即主机名为"Master.Hadoop",IP为"192.168.1.2"进行一些主机名配置的相关操作。其他的Slave机器以此为依据进行修改。

1)查看当前机器名称

用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。

hostname命令查看主机名

2)修改当前机器名称

  假定我们发现我们的机器的主机名不是我们想要的,通过对"/etc/sysconfig/network"文件修改其中"HOSTNAME"后面的值,改成我们规划的名称。

  这个"/etc/sysconfig/network"文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。

  设定形式:设定值=值

"/etc/sysconfig/network"的设定项目如下:

NETWORKING 是否利用网络

GATEWAY 默认网关

IPGATEWAYDEV 默认网关的接口名

HOSTNAME 主机名

DOMAIN 域名

  用下面命令进行修改当前机器的主机名(备注:修改系统文件一般用root用户)

vim /etc/sysconfig/network

3)修改当前机器IP

假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对"ifcfg-eth0"文件进行配置,该文件位于"/etc/sysconfig/network-scripts"文件夹下。

  在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-
eth3,……。

  这里面的文件是相当重要的,涉及到网络能否正常工作。

  设定形式:设定值=值

  设定项目项目如下:

DEVICE接口名(设备,网卡)

BOOTPROTOIP的配置方法(static:固定IP,
dhcpHCP, none:手动)

HWADDRMAC地址

ONBOOT系统启动的时候网络接口是否有效(yes/no)

TYPE 网络类型(通常是Ethemet)

NETMASK网络掩码

IPADDR IP地址

IPV6INITIPV6是否有效(yes/no)

GATEWAY默认网关IP地址

查看"/etc/sysconfig/network-scripts/ifcfg-eth0"内容,如果IP不复核,就行修改。

修改ip:vim /etc/sysconfig/network-scripts/ifcgf-eth0

4.安装JDK,配置java环境变量

1.解压jdk-7u71-linux-i586.gz到/usr/java目录下

2.配置java环境变量

vi /etc/profile

在文件后面添加下列几句,配值java坏境变量

# setjava environment

exportJAVA_HOME=/usr/java/jdk1.6.0_31

exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

输入source /etc/profile 
让它生效;

验证是否成功

       java –version

5.配置ssh无密码访问

       设置master和slave之间ssh无密码访问

master  #ssh-keygen -t rsa

slave   #ssh-keygen -t rsa

master  # scp .ssh/id_rsa.pub [email protected]Slave1.Hadoop:/root/.ssh/authorized_keys

slave   # scp .ssh/id_rsa.pub [email protected]Master.Hadoop:/root/.ssh/authorized_keys

 

6.hadoop安装和配置

6.1 将Hadoop文件解压到/usr/hadoop

6.2 修改hadoop的文件所有者为hadoop用户chown
–R hadoop:hadoop hadoop

最后在"/usr/hadoop"下面创建tmp文件夹,把Hadoop的安装路径添加到"/etc/profile"中,修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效:

# set hadoop path

exportHADOOP_HOME=/usr/hadoop

exportPATH=$PATH :$HADOOP_HOME/bin

重启"/etc/profile"

6.3 配置hadoop

1)配置hadoop-env.sh

hadoop1.x版本,该"hadoop-env.sh"文件位于"/usr/hadoop/conf"目录下,其他版本略有不同

在文件的末尾添加下面内容。

# setjava environment

exportJAVA_HOME=/usr/java/jdk1.6.0_31

说明:Hadoop配置文件在conf目录下,之前的版本的配置文件主要是Hadoop-default.xml和Hadoop-site.xml。由于Hadoop发展迅速,代码量急剧增加,代码开发分为了core,hdfs和map/reduce三部分,配置文件也被分成了三个core-site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在HDFS角度上配置文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。

2)配置core-site.xml文件

  修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。

<configuration>

<property>

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

<value>/usr/hadoop/tmp</value>

备注:请先在 /usr/hadoop
目录下建立 tmp
文件夹)

<description>A base for other temporary directories.</description>

</property>

<!--file system properties -->

<property>

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

<value>hdfs://192.168.1.2:9000</value>

</property>

</configuration>

备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。

3)配置hdfs-site.xml文件

修改Hadoop中HDFS的配置,配置的备份方式默认为3。

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

(备注:replication是数据副本数量,默认为3,salve少于3台就会报错)

</property>

<configuration>

4)配置mapred-site.xml文件

 修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。

<configuration>

<property>

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

<value>http://192.168.1.2:9001</value>

</property>

</configuration>

5)配置masters文件

vi master

在master中输入主服务器名称:master即可

6)配置slaves文件(Master主机特有)

有两种方案:

(1)第一种

去掉"localhost",每行只添加一个主机名,把剩余的Slave主机名都填上。

例如:添加形式如下

Slave1.Hadoop

Slave2.Hadoop

Slave3.Hadoop

(2)第二种

去掉"localhost",加入集群中所有Slave机器的IP,也是每行一个。

例如:添加形式如下

192.168.1.3

192.168.1.4

192.168.1.5

  原因和添加"masters"文件一样,选择第二种方式。

master的配置到此结束了,剩下的就是slave的配置;

 

slave配置比较方便,可以选择解压hadoop安装文件,然后配置,在这里采用一个简单的方法,直接将master主机上的hadoop文件拷贝到slave的/usr/hadoop下即可;

使用命令:scp -r /usr/hadoop root@服务器IP:/usr/

chown -R hadoop:hadoop(用户名:用户组)hadoop(文件夹

接着在"Slave1 .Hadoop"上修改"/etc/profile"文件(配置 java
环境变量的文件),将以下语句添加到末尾,并使其有效(source /etc/profile):

# set hadoopenvironment

exportHADOOP_HOME=/usr/hadoop

exportPATH=$PATH :$HADOOP_HOME/bin

如果不知道怎么设置,可以查看前面"Master.Hadoop"机器的"/etc/profile"文件的配置,到此为此在一台Slave机器上的Hadoop配置就结束了。

4.3 启动及验证

1)格式化HDFS文件系统

  在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需
start-all.sh)

hadoopnamenode -format

2)关闭防火墙

       service iptablesstop

3)启动hadoop

      start-all.sh

3)验证hadoop

(1)验证方法一:用"jps"命令

  在Master上用 java自带的小工具jps查看进程。

 如果在查看Slave机器中发现"DataNode"和"TaskTracker"没有起来时,先查看一下日志的,如果是"namespaceID"不一致问题,采用"常见问题FAQ6.2"进行解决,如果是"No
route to host"问题,采用"常见问题FAQ6.3"进行解决。

(2)验证方式二:用"hadoopdfsadmin -report"

  用这个命令可以查看Hadoop集群的状态。

4.4 网页查看集群

1)访问"http:192.168.1.2:50030"

2)访问"http:192.168.1.2:50070"

5.1 关于 Warning: $HADOOP_HOME is deprecated.

hadoop 1.0.0版本,安装完之后敲入hadoop命令时,是提示这个警告:

Warning:$HADOOP_HOME is deprecated.

  经查hadoop-1.0.0/bin/hadoop脚本和"hadoop-config.sh"脚本,发现脚本中对HADOOP_HOME的环境变量设置做了判断,笔者的环境根本不需要设置HADOOP_HOME环境变量。

  解决方案一:编辑"/etc/profile"文件,去掉HADOOP_HOME的变量设定,重新输入hadoop
fs命令,警告消失。

  解决方案二:编辑"/etc/profile"文件,添加一个环境变量,之后警告消失:

exportHADOOP_HOME_WARN_SUPPRESS=1

  解决方案三:编辑"hadoop-config.sh"文件,把下面的"if - fi"功能注释掉。

时间: 2024-10-07 01:41:11

Hadoop学习笔记0001——Hadoop安装配置的相关文章

Hadoop学习笔记0004——eclipse安装hadoop插件

Hadoop学习笔记0004--eclipse安装hadoop插件 1.下载hadoop-1.2.1.tar.gz,解压到win7下hadoop-1.2.1: 2.如果hadoop-1.2.1中没有hadoop-eclipse-plugin-1.2.1.jar包,就到网上下载下来: 3.关闭eclipse,然后将hadoop-eclipse-plugin-1.2.1.jar拷贝到eclipse安装目录下的eclipse-x.x\plugins文件夹下,重启eclipse 4.在eclipse中顶

hadoop学习笔记(一)——hadoop安装及测试

这几天乘着工作之余,学习了一下hadoop技术,跌跌撞撞的几天,终于完成了一个初步的hadoop的安装及测试,具体如下: 动力:工作中遇到的数据量太大,服务器已经很吃力,sql语句运行老半天,故想用大数据技术来改善一下 环境:centos5.11+jdk1.7+hadoop2.5.2 1.  伪分布安装步骤 关闭防火墙 修改ip 修改hostname 设置ssh自动登录 安装jdk 安装hadoop 注:此部分涉及到的Linux操作部分可以再下面的链接中找到,Linux初级操作 2.  安装jd

[Hadoop] Hadoop学习笔记之Hadoop基础

1 Hadoop是什么? Google公司发表了两篇论文:一篇论文是“The Google File System”,介绍如何实现分布式地存储海量数据:另一篇论文是“Mapreduce:Simplified Data Processing on Large Clusters”,介绍如何对分布式大规模数据进行处理.Doug Cutting在这两篇论文的启发下,基于OSS(Open Source software)的思想实现了这两篇论文中的原理,从而Hadoop诞生了. Hadoop是一种开源的适合

Hadoop学习笔记—6.Hadoop Eclipse插件的使用

开篇:Hadoop是一个强大的并行软件开发框架,它可以让任务在分布式集群上并行处理,从而提高执行效率.但是,它也有一些缺点,如编码.调试Hadoop程序的难度较大,这样的缺点直接导致开发人员入门门槛高,开发难度大.因此,Hadop的开发者为了降低Hadoop的难度,开发出了Hadoop Eclipse插件,它可以直接嵌入到Hadoop开发环境中,从而实现了开发环境的图形界面化,降低了编程的难度. 一.天降神器插件-Hadoop Eclipse Hadoop Eclipse是Hadoop开发环境的

Docker学习笔记 之 Docker安装配置使用

简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal.OpenStack 集群和其他的基础应用平台. 环境:CentOS7.3 地址:192.168.1.137 首先注册阿里云开发者帐号帐号 https://cr.console.aliyun.com/ 登陆后取得专属加速器地址:https://XXXXX.mirror.aliyuncs.com

Hadoop学习笔记之Hadoop伪分布式环境搭建

搭建为伪分布式Hadoop环境 1.宿主机(Windows)与客户机(安装在虚拟机中的Linux)网络连接. a) Host-only 宿主机与客户机单独组网: 好处:网络隔离: 坏处:虚拟机和其他服务器之间不能通讯: b) Bridge 桥接 宿主机与客户机在同一个局域网中. 好处:窦在同一个局域网,可以互相访问: 坏处:不完全. 2.Hadoop的为分布式安装步骤 a) 设置静态IP 在centos下左面上右上角图标右键修改: 重启网卡service network restart; 验证:

Hadoop学习笔记(3) Hadoop文件系统二

1 查询文件系统 (1) 文件元数据:FileStatus,该类封装了文件系统中文件和目录的元数据,包括文件长度.块大小.备份.修改时间.所有者以及版权信息.FileSystem的getFileStatus()方法用于获取文件或目录的FileStatus对象. 例:展示文件状态信息 public class ShowFileStatusTest{ private MiniDFSCluster cluster; private FileSystem fs; @Before public void

Hadoop 学习笔记五 ---Hadoop系统通信协议介绍

本文约定: DN: DataNode TT: TaskTracker NN: NameNode SNN: Secondry NameNode JT: JobTracker 本文介绍Hadoop各节点和Client之间通信协议. Hadoop的通信是建立在RPC的基础上,关于RPC的详解介绍大家可以参照 "hadoop rpc机制 && 将avro引入hadoop rpc机制初探" Hadoop中节点之间的通信是比较复杂的一个网络,若可以把它们之间的通信网络了解清楚,那么

openstack学习笔记八 glance安装配置

镜像    安装过系统的虚拟硬盘 管理是用glance来完成. 镜像的状态: active   镜像已经上传完成,并且是可用的 saving         正在被上传,还没有完成 killed          上传出错 queued       并没有真的上传完成,但是被标记有这个镜像 安装glance 在 keystone注册 glance所需要的账户 创建glance服务 指定glance服务的endpoint 安装 [[email protected] ~]# yum -y insta