`

Hadoop-分布式安装配置

 
阅读更多

 

基础环境
3台linux环境机器,本文采用3个VMWare做的虚拟机安装linux AS 5,本文采用vmware的NAT方式规划IP
分别为:

 

机器名 IP 说明
Hadoop00  192.168.91.10  Master, nameNode, SecondaryNamenode, jobTracker
Hadoop01 192.168.91.11  Slave,dataNode, tasktracker
Hadoop02 192.168.91.12 Slave,dataNode, tasktracker

 

在三台机器中配置好IP和HOST
/etc/hosts中添加
192.168.91.10   hadoop00
192.168.91.11   hadoop01
192.168.91.12   hadoop02

 

用户准备
创建hadoop运行的专用用户和组,这里我使用hadoop作为用户名和组名。在三台机器分别建立用户和组。
groupadd hadoop
useradd –g hadoop –G hadoop hadoop

 

配置密钥方式免密码登录
因为hadoop需要nameNode能无密码方式登录和访问各个dataNode,所以要配置操作系统hadoop运行用户的密钥方式无密码登录。

只需要在nameNode(hadoop00, 192.168.91.10)配置免密钥登录其它dataNade。在nameNode中生成公私钥对,然后把公钥发送到各个dataNode。

在nameNode上操作:
[hadoop@hadoop00 ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回车,完成后会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件):
[hadoop@hadoop00 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意:需要修改.ssh和authorized_keys的访问权限,否则可能无法正常登录
[hadoop@hadoop00 ~]$ chmod 700 ~/.ssh
[hadoop@hadoop00 ~]$ chmod 600 ~/.ssh/ authorized_keys
测试本机无密码登录
[hadoop@hadoop00 ~]$ ssh localhost

 拷贝公钥id_dsa.pub到各dataNode
 [hadoop@hadoop00 ~]$ scp ~/.ssh/id_dsa.pub hadoop@hadoop01:/home/hadoop/
[hadoop@hadoop00 ~]$ scp ~/.ssh/id_dsa.pub hadoop@hadoop02:/home/hadoop/
分别登录各个dataNode,追加公钥id_dsa.pub到dataNode的authorized_keys中

[hadoop@hadoop01 ~] mkdir .ssh
[hadoop@hadoop01 ~] chmod 700 .ssh
[hadoop@hadoop01 ~] cat id_dsa.pub >> .ssh/authorized_keys
[hadoop@hadoop01 ~] chmod 600 .ssh/authorized_keys
测试nameNode无密码访问dataNode
[hadoop@hadoop00 ~] ssh hadoop01
Last login: Thu Sep 22 07:57:07 2011 from hadoop00

 

 

安装配置环境变量
下载安装hadoop-0.21.0
http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.21.0/hadoop-0.21.0.tar.gz
下载JDK版本:jdk-6u24-linux-i586.bin

Hadoop下载后直接就要到hadoop的用户主目录
[hadoop@hadoop00 ~] cd /home/hadoop
[hadoop@hadoop00 ~] tar –xzvf hadoop-0.21.0.tar.gz
待配置完成后,直接拷贝到各个dataNode

JDK的安装配置,安装就免了,配置环境变量如下(master和各slave配置相同)
vi ~/.bash_profile
在文件结尾加入:
# java env
export JAVA_HOME=/usr/java/jdk1.6.0_24
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
# hadoop env
export HADOOP_HOME=/home/hadoop/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH

 

配置hadoop
配置nameNode的hadoop

1.配置hadoop环境shell文件:hadoop-0.21.0/conf/hadoop-env.sh
# The java implementation to use.  Required.
export JAVA_HOME=/usr/java/jdk1.6.0_24

2.配置:hadoop-0.21.0/conf/core-site.xml 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoopdata</value>
  </property>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop00:9000</value>
  </property>
  <property>
    <name>dfs.hosts.exclude</name>
    <value>excludes</value>
  </property>
</configuration>

 

3.配置:hadoop-0.21.0/conf/hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 
<!-- Put site-specific property overrides in this file. -->
<configuration>
     <property>
          <name>dfs.name.dir</name>
          <value>/home/hadoop/hadoopname</value>
     </property>
 
     <property>
          <name>dfs.data.dir</name>
          <value>/home/hadoop/hadoopdata</value>
     </property>
 
     <property>
          <name>dfs.replication</name>
          <value>1</value>
     </property>
</configuration>

 

4.配置:hadoop-0.21.0/conf/mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>hadoop00:9001</value>
  </property>
</configuration>

 

拷贝nameNode配置好的hadoop到各个dataNode相同的目录
[hadoop@hadoop00 ~] zip  -r hadoop-0.21.0.zip hadoop-0.21.0
[hadoop@hadoop00 ~] scp hadoop-0.21.0.zip hadoop@hadoop01:/home/hadoop
[hadoop@hadoop00 ~] scp hadoop-0.21.0.zip hadoop@hadoop02:/home/hadoop
分别登录两台dataNode,直接解压hadoop-0.21.0.zip
[hadoop@hadoop01 ~] unzip hadoop-0.21.0.zip
[hadoop@hadoop02 ~] unzip hadoop-0.21.0.zip

启动和停止hadoop
Hadoop直接在nameNode上运行命令启动,nameNode会负责自动连接,启动和停止所有的dataNode.
1.启动
[hadoop@hadoop00 ~]$ ~/hadoop-0.21.0/bin/start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-mapred.sh
starting namenode, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-namenode-hadoop00.out
192.168.91.11: starting datanode, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-datanode-hadoop01.out
192.168.91.12: starting datanode, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-datanode-hadoop02.out
192.168.91.10: starting secondarynamenode, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-secondarynamenode-hadoop00.out
starting jobtracker, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-jobtracker-hadoop00.out
192.168.91.12: starting tasktracker, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-tasktracker-hadoop02.out
192.168.91.11: starting tasktracker, logging to /home/hadoop/hadoop-0.21.0/bin/../logs/hadoop-hadoop-tasktracker-hadoop01.out

2.停止
[hadoop@hadoop00 ~]$ ~/hadoop-0.21.0/bin/stop-all.sh
This script is Deprecated. Instead use stop-dfs.sh and stop-mapred.sh
stopping namenode
192.168.91.12: stopping datanode
192.168.91.11: stopping datanode
192.168.91.10: stopping secondarynamenode
stopping jobtracker
192.168.91.11: stopping tasktracker
192.168.91.12: stopping tasktracker

初始配置HDFS
1、 格式化HDFS文件系统
[hadoop@hadoop00 ~]$ hadoop namenode -format

2、 查看HDFS
[hadoop@hadoop00 ~]$ hadoop fs -ls /
11/09/24 07:49:55 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/09/24 07:49:56 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
Found 4 items
drwxr-xr-x   - hadoop supergroup          0 2011-09-22 08:05 /home
drwxr-xr-x   - hadoop supergroup          0 2011-09-22 11:29 /jobtracker
drwxr-xr-x   - hadoop supergroup          0 2011-09-22 11:23 /user

3、 通过WEB查看hadoop
查看集群状态 http://192.168.91.10:50070/dfshealth.jsp

查看JOB状态 http://192.168.91.10:50030/jobtracker.jsp


运行hadoop的example-wordcount
Wordcount程序是一个简单的计算输入文件中每个单词出现的次数,并输出到指定的目录下。该程序是官方的例子,在hadoop-0.21.0安装目录下的:hadoop-mapred-examples-0.21.0.jar

在hdfs上建立程序的输入目录和文件,同时建立程序的输出目录.
[hadoop@hadoop00 ~]$ mkdir input
[hadoop@hadoop00 ~]$ cat a a a a a b b b c c c c c c c c c 1 1 1 > input/file
[hadoop@hadoop00 ~]$ hadoop fs –mkdir /wordcount
[hadoop@hadoop00 ~]$ hadoop fs –put input /wordcount

[hadoop@hadoop00 ~]$ hadoop jar hadoop-0.21.0/hadoop-mapred-examples-0.21.0.jar wordcount /wordcount/input /wordcount/output
11/09/24 08:11:25 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/09/24 08:11:26 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
11/09/24 08:11:26 WARN mapreduce.JobSubmitter: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
11/09/24 08:11:26 INFO input.FileInputFormat: Total input paths to process : 2
11/09/24 08:11:26 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
11/09/24 08:11:26 INFO mapreduce.JobSubmitter: number of splits:2
11/09/24 08:11:27 INFO mapreduce.JobSubmitter: adding the following namenodes' delegation tokens:null
11/09/24 08:11:27 INFO mapreduce.Job: Running job: job_201109240745_0002
11/09/24 08:11:28 INFO mapreduce.Job:  map 0% reduce 0%
11/09/24 08:11:44 INFO mapreduce.Job:  map 50% reduce 0%
11/09/24 08:11:50 INFO mapreduce.Job:  map 100% reduce 0%
11/09/24 08:11:57 INFO mapreduce.Job:  map 100% reduce 100%
11/09/24 08:11:59 INFO mapreduce.Job: Job complete: job_201109240745_0002
11/09/24 08:11:59 INFO mapreduce.Job: Counters: 34
……

[hadoop@hadoop00 ~]$ hadoop fs -cat /wordcount/output/part-r-00000
11/09/24 08:18:09 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/09/24 08:18:09 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
1       3
a       5
b       3
c       9

分享到:
评论

相关推荐

    Hadoop-0.21.0分布式集群配置

    Hadoop-0.21.0分布式集群配置.doc

    Hadoop技术-Hadoop完全分布式安装.pptx

    2. Hadoop完全分布式安装步骤:Hadoop完全分布式安装步骤包括创建三台虚拟机、配置虚拟机IP地址、修改主机名、添加IP映射、SSH免密码设置、安装JDK、配置环境变量、安装Hadoop、配置环境变量等多个步骤。 3. SSH免...

    Hadoop-2.7.1分布式安装手册

    《Hadoop-2.7.1分布式安装手册》是一份详尽的指南,旨在帮助用户在不同的模式下安装和配置Apache Hadoop 2.7.1。Hadoop是开源的大数据处理框架,它允许在廉价硬件上进行大规模数据处理,具有高容错性和可扩展性。这...

    hadoop-eclipse-plugin1.2.1 and hadoop-eclipse-plugin2.8.0

    在创建新项目时,可以指定Hadoop的配置文件路径,插件会自动识别并连接到集群。 总的来说,Hadoop-Eclipse-Plugin是Hadoop开发不可或缺的一部分,无论是1.2.1版本还是2.8.0版本,它们都为开发者提供了便利的工具,...

    hadoop-eclipse-plugin-3.1.1.tar.gz

    Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...

    Hadoop技术-Hadoop伪分布式安装.pptx

    伪分布式安装是Hadoop技术中的一个重要组件,通过设置SSH免密码、安装JDK和Hadoop、配置环境变量、修改配置文件等步骤,可以完成伪分布式安装。这种安装方式可以模拟一个小规模的集群,方便开发人员测试程序的执行。...

    hadoop-3.3.4 版本(最新版)

    的一套接口实现自己的分布式文件系统,然后经过简单的配置后,存储在该文件 系统上的数据便可以被 MapReduce 处理。 官网下载速度非常缓慢,因此将hadoop-3.3.4 版本放在这里,欢迎大家来下载使用!

    hadoop-common-2.6.0-bin-master.zip

    Hadoop是大数据处理领域的一个关键框架,...通过正确安装、配置和使用这个压缩包中的组件,开发者可以在没有Linux环境的情况下,也能顺利地进行Hadoop相关的工作,这对于学习和理解Hadoop的分布式计算原理非常有帮助。

    基于Greenplum Hadoop- 分布式平台的大数据解决方案26 - 查询数据(3).zip

    通过学习这一课程,你将能够掌握在Greenplum和Hadoop分布式平台上构建高效大数据查询解决方案的关键技术和实践,这对于任何希望在大数据领域深入工作的专业人士来说都是极其宝贵的。理解并熟练运用这两个工具的组合...

    hadoop伪分布式安装.pdf

    ### Hadoop伪分布式安装知识点详解 #### 一、Hadoop伪分布式概述 Hadoop是一种能够处理海量数据的大规模分布式计算框架。它通过将任务分解到多个计算机节点上并行处理来提高数据处理效率。Hadoop支持多种运行模式,...

    Hadoop-2.8.0分布式安装手册

     本文的目的是为当前最新版本的Hadoop 2.8.0提供最为详细的安装说明,以帮助减少安装过程中遇到的困难,并对一些错误原因进行说明,hdfs配置使用基于QJM(Quorum Journal Manager)的HA。本文的安装只涉及了hadoop-...

    基于Greenplum Hadoop- 分布式平台的大数据解决方案03 - 安装Greenplum(1)

    **基于Greenplum Hadoop的分布式大数据解决方案** 在大数据领域,Greenplum和Hadoop是两个重要的技术组件,它们在处理大规模数据时提供了强大的能力。本篇内容将深入探讨这两个平台如何结合,以及如何安装Greenplum...

    apache-hadoop-3.1.3-winutils-master.zip

    在这个"apache-hadoop-3.1.3-winutils-master.zip"压缩包中,包含了在Windows环境下配置Hadoop HDFS客户端所需的组件,特别是`hadoop-winutils`和`hadoop.dll`这两个关键文件,它们对于在Windows系统上运行Hadoop...

    hadoop2.7分布式完全安装配置手册

    hadoop2.7分布式完全安装配置手册,含hbase1.2安装配置,图文并茂,一看就会。

    基于Greenplum Hadoop- 分布式平台的大数据解决方案04 - 安装Greenplum(2)

    本篇内容将深入探讨如何在分布式平台上安装和配置Greenplum,以实现高效的数据管理和分析。 **Greenplum简介** Greenplum是一款开源的企业级数据仓库系统,它基于PostgreSQL数据库,专门设计用于大数据环境。...

    hadoop-eclipse2.7.1、hadoop-eclipse2.7.2、hadoop-eclipse2.7.3

    1. **Hadoop-Eclipse插件安装与配置**:要使用Hadoop-Eclipse插件,首先需要在Eclipse中安装该插件。这可以通过Eclipse的“Help”菜单 -&gt; "Install New Software" -&gt; "Add" 来完成,然后提供下载的插件JAR文件路径...

    Hadoop-eclipse-plugin-2.7.6下载与说明

    1. **安装插件**:首先,你需要下载Hadoop-eclipse-plugin-2.7.6对应的JAR文件,然后将其放入Eclipse的plugins目录下。重启Eclipse后,插件会被自动加载。确保你的Eclipse版本与Hadoop版本兼容,否则可能会出现不...

Global site tag (gtag.js) - Google Analytics