hadoop分布式搭建

一、首先是搞好master

  1、创建用户组

    groupadd hadoop  添加一个组

    useradd hadoop -g hadoop  添加用户

  2、jdk的安装

    这里安装的版本是jdk-7u9-linux-i586.tar.gz ,使用 tar -zsvf jdk-7u9-linux-i586.tar.gz  -C /opt/  命令将其解压到/opt目录下,并将解压后的文件夹jdk-7u9-linux-i586改名为java.

    jdk安装好就要配置环境变量了,使用vi /etc/profile命令编辑添加如下内容:

    export JAVA_HOME=/opt/java/jdk
    exprot PATH=$JAVA_HOME/bin:$PATH

    配置好之后要用命令source /etc/profile使配置文件生效,这样jdk就安装完毕了。安装完之后不要忘了将所有者设置为hadoop。

使用命令chown -R hadoop:hadoop java/

  3.hadoop的安装

    hadoop的版本是hadoop-0.20.2.tar.gz,也把它解压到/opt目录下面,改名为hadoop。

    hadoop也要设置环境变量,使用vi /etc/profile命令编辑添加如下内容:

    export HADOOP_HOME=/opt/hadoop

    export PATH=$HADOOP_HOME/bin:$PATH

    同样也要执行source /etc/profile使配置文件生效,然后执行命令使用命令chown -R hadoop:hadoop hadoop/将其所有者改为hadoop

  4、修改地址解析文件/etc/hosts,加入

    192.168.137.110 master

    192.168.137.111 slave1

    192.168.137.112 slave2

  5、修改hadoop的配置文件

  首先切换到hadoop用户,su hadoop

  ①修改hadoop目录下的conf/hadoop-env.sh文件

    加入java的安装路径export JAVA_HOME=/opt/java/jdk

  ②把hadoop目录下的conf/core-site.xml文件修改成如下:

 1 <property>
 2   <name>hadoop.tmp.dir</name>
 3   <value>/hadoop</value>
 4 </property>
 5 <property>
 6   <name>fs.default.name</name>
 7   <value>hdfs://master:9000</value>
 8 </property>
 9 <property>
10   <name>dfs.name.dir</name>
11   <value>/hadoop/name</value>
12 </property> 

  ③把hadoop目录下的conf/ hdfs-site.xml文件修改成如下:

1 <property>
2     <name>dfs.replication</name>
3     <value>3</value>
4 </property>
5 <property>
6     <name>dfs.data.dir</name>
7     <value>/hadoop/data</value>
8 </property>

  ④把hadoop目录下的conf/ mapred-site.xml文件修改成如下:

 1 <property>
 2     <name>mapred.job.tracker</name>
 3     <value>master:9001</value>
 4 </property>
 5 <property>
 6     <name>mapred.system.dir</name>
 7     <value>/hadoop/mapred_system</value>
 8 </property>
 9 <property>
10     <name>mapred.local.dir</name>
11     <value>/hadoop/mapred_local</value>
12 </property>

  ⑤把hadoop目录下的conf/ masters文件修改成如下:

    master

  ⑥把hadoop目录下的conf/ slaves文件修改成如下:

    master

    slave1

    slave2

  6、复制虚拟机

      我使用Virtual Box的克隆功能,将主机master完全克隆两份:slave1和slave2,并修改相应的主机名和IP地址,这样就可以简单地保持hadoop环境基本配置相同。

  7、SSH设置无密码验证

      切换到Hadoop用户,在Hadoop家目录下面创建.ssh目录,并在master节点上生成密钥对:ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa   。然后一直按[Enter]键,按默认的选项生成密钥对保存在.ssh/id_rsa文件中。

    然后执行如下命令:

$ ssh ~/.ssh

$ cp id_rsa.pub authorized_keys

$ scp authorized_keys slave1:/home/hadoop/.ssh

$ scp authorized_keys slave2:/home/hadoop/.ssh

    执行远程复制文件的时候记得要把slave1和slave2的防火墙关掉。复制完毕后记得要到slave1和slave2去修改该文件的权限。

从master向slave1和slave2发起SSH连接,第一次登录时需要输入密码,以后就不需要了。

$ ssh slave1

$ ssh slave2

我们只需要配置从master向slaves发起SSH连接不需要密码就可以了,但这样只能在master(即在主机master)启动或关闭hadoop服务。

  8、运行hadoop

    使用Hadoop用户,切换到hadoop/bin目录下

    格式化分布式文件系统./hadoop namenode -format

    执行命令./start-all.sh启动hadoop

    在master上执行jps命令查看运行的进程如下:

[[email protected] hadoop]$ jps
3200 SecondaryNameNode
3271 JobTracker
3370 TaskTracker
3002 NameNode
3106 DataNode
5687 Jps

    在slave1和slave2上执行jps结果如下:

[[email protected] ~]$ jps
1477 DataNode
3337 Jps
1547 TaskTracker

    访问http://master:50070可以查看分布式文件系统的状态

  9、运行单词统计程序

    WordCount是hadoop自带的实例,统计一批文本文件中各单词出现的资料,输出到指定的output目录中,输出目录如果已经存在会报错。

$ cd /opt/hadoop
$ hadoop fs -mkdir input
$ hadoop fs -copyFromLocal /opt/hadoop/*.txt input/
$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output
$ hadoop fs -cat output/*    #最后查看结果

运行结果如下:

13/06/16 19:32:26 INFO input.FileInputFormat: Total input paths to process : 4
13/06/16 19:32:26 INFO mapred.JobClient: Running job: job_201306161739_0002
13/06/16 19:32:27 INFO mapred.JobClient:  map 0% reduce 0%
13/06/16 19:32:35 INFO mapred.JobClient:  map 50% reduce 0%
13/06/16 19:32:36 INFO mapred.JobClient:  map 100% reduce 0%
13/06/16 19:32:47 INFO mapred.JobClient:  map 100% reduce 100%
13/06/16 19:32:49 INFO mapred.JobClient: Job complete: job_201306161739_0002
13/06/16 19:32:49 INFO mapred.JobClient: Counters: 18
13/06/16 19:32:49 INFO mapred.JobClient:   Job Counters
13/06/16 19:32:49 INFO mapred.JobClient:     Launched reduce tasks=1
13/06/16 19:32:49 INFO mapred.JobClient:     Rack-local map tasks=2
13/06/16 19:32:49 INFO mapred.JobClient:     Launched map tasks=4
13/06/16 19:32:49 INFO mapred.JobClient:     Data-local map tasks=2
13/06/16 19:32:49 INFO mapred.JobClient:   FileSystemCounters
13/06/16 19:32:49 INFO mapred.JobClient:     FILE_BYTES_READ=179182
13/06/16 19:32:49 INFO mapred.JobClient:     HDFS_BYTES_READ=363457
13/06/16 19:32:49 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=358510
13/06/16 19:32:49 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=133548
13/06/16 19:32:49 INFO mapred.JobClient:   Map-Reduce Framework
13/06/16 19:32:49 INFO mapred.JobClient:     Reduce input groups=10500
13/06/16 19:32:49 INFO mapred.JobClient:     Combine output records=10840
13/06/16 19:32:49 INFO mapred.JobClient:     Map input records=8968
13/06/16 19:32:49 INFO mapred.JobClient:     Reduce shuffle bytes=179200
13/06/16 19:32:49 INFO mapred.JobClient:     Reduce output records=10500
13/06/16 19:32:49 INFO mapred.JobClient:     Spilled Records=21680
13/06/16 19:32:49 INFO mapred.JobClient:     Map output bytes=524840
13/06/16 19:32:49 INFO mapred.JobClient:     Combine input records=47258
13/06/16 19:32:49 INFO mapred.JobClient:     Map output records=47258
13/06/16 19:32:49 INFO mapred.JobClient:     Reduce input records=10840

  运行该程序一定得注意将slave1和slave2的防火墙给关闭,否则会报异常的。

时间: 2024-08-26 23:59:09

hadoop分布式搭建的相关文章

完全分布式模式的Hadoop环境搭建

一.本文说明:本次测试在五台虚拟机系统上进行完全分布式搭建.Hadoop分布式模式是在多台机器上分布式部署,配置非常类似于伪分布式,名称节点和数据节点都分布在不同的主机上,每台数据节点上都有相应的任务调度. 二.环境说明:       虚拟软件:VM10.0       操作系统:Cent Os 6.7       hadoop版本:hadoop-2.7.2       JDK版本:jdk1.8_77备注:基于独立模式基础上搭建,参考文章:独立模式的Hadoop环境搭建. 三.基本环境配置   

伪分布式模式的Hadoop环境搭建

一.本文说明:     本次测试在一台虚拟机系统上进行伪分布式搭建.Hadoop伪分布式模式是在单机上模拟Hadoop分布式,单机上的分布式并不是真正的伪分布式,而是使 用线程模拟分布式.Hadoop本身是无法区分伪分布式和分布式的,两种配置也很相似.唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均 是一个机器. 二.环境说明:      操作系统:Cent Os 6.7      hadoop版本:hadoop-2.7.2      JDK版本:jdk1.8_77     备注:

Hadoop 分布式环境搭建

Hadoop 分布式环境搭建 一.前期环境 安装概览 IP Host Name Software Node 192.168.23.128 ae01 JDK 1.7 NameNode, SecondaryNameNode, DataNode, JobTracker, TaskTracker 192.168.23.129 ae02 JDK 1.7 DataNode, TaskTracker 192.168.23.130 ae03 JDK 1.7 DataNode, TaskTracker 若使用虚拟

Hadoop简单入门之伪分布式搭建

前面两章主要讲解了完全分布式的搭建,这章主要讲解服务器单机完成伪分布的搭建,介绍Hadoop配置,启动,以及简单测试.我的机器:阿里云服务器,64位,Java64,Hadoop2.4.1(64) ? 所有软件下载百度云 密码:uup8 讲在开头:对于笔者的完全分布式环境请见该文:Hadoop完全分布式安装 写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github:多谢: 1,Hadoop简单介绍: Apache Hadoop是一款支持数据密集型分布式应用,并以A

使用Docker在本地搭建Hadoop分布式集群

学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟机系统就得搞半天……). 那么,问题来了! 有没有更有可行性的办法? 提到虚拟化,Docker最近很是火热!不妨拿来在本地做虚拟化,搭建Hadoop的伪分布式集群环境.虽然有点大材小用,但是学习学习,练练手也是极好的. 文章比较长,建议先倒杯水,听我慢慢到来…… 先说一下我的思路吧: 先使用Dock

Ganglia环境搭建并监控Hadoop分布式集群

简介 Ganglia可以监控分布式集群中硬件资源的使用情况,例如CPU,内存,网络等资源.通过Ganglia可以监控Hadoop集群在运行过程中对集群资源的调度,作为简单地运维参考. 环境搭建流程 1.我们先在主机master01上面搭建好Ganglia环境 2.在master01主机上解压JDK和Hadoop到安装目录.修改配置文件 3.克隆出两台主机slave01,slave02并修改主机名和IP主机名映射.做免密码登录 4.启动Ganglia和Hadoop集群.实现wordcount实例

Spark入门 - 1 搭建Hadoop分布式集群

安装Ubuntu系统 不论是通过虚拟机方式还是直接在物理机上安装Ubuntu系统,网上都有丰富的教程,此处不再赘述. 为了方便起见,此处设置的机器名最好与书本的设置一致:Master.Slave1和Slave2. 配置root用户登录 这里有一步与普通教程不同.在安装好系统,重启之后,完成了相关配置.可以进行这一步,设置使用root用户登录,方便以后多个服务器相互操作.如下所示. 为了简化权限问题,需要以root用户的身份登录使用Ubuntu系统.而在默认情况下,Ubuntu没有开启root用户

Hadoop分布式集群环境搭建

分布式环境搭建之环境介绍 之前我们已经介绍了如何在单机上搭建伪分布式的Hadoop环境,而在实际情况中,肯定都是多机器多节点的分布式集群环境,所以本文将简单介绍一下如何在多台机器上搭建Hadoop的分布式环境. 我这里准备了三台机器,IP地址如下: 192.168.77.128 192.168.77.130 192.168.77.134 首先在这三台机器上编辑/etc/hosts配置文件,修改主机名以及配置其他机器的主机名 [[email protected] ~]# vim /etc/host

Hadoop分布式集群搭建完全详细教程

Hadoop分布式集群环境搭建步骤如下 实验环境: 系统:win7 内存:8G(因要开虚拟机,内存建议不低于8G) 硬盘:建议固态 虚拟机:VMware 12 Linux:Centos 7 jdk1.7.0_67 hadoop-2.5.0.tar.gz 1.安装VMware虚拟机环境2.安装Centos操作系统3.修改主机名配置网络4.配置ssh无密码登录5.上传jdk配置环境变量6.上传hadoop配置环境变量7.修改hadoop配置文件8.格式化namenode9.启动hadoop并测试1安