`
wangwei3
  • 浏览: 120987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop第一步:部署分布式服务

阅读更多
原创文章:转载请注明出处
最近有幸开始接触云。哈哈,先从hadoop入手
部署hadoop的文档很多,但是还是遇到了不少问题,下面和大家分享一下我的部署全过程吧

版本号:hadoop 0.21.0
下载地址:[url]http://www.apache.org/dyn/closer.cgi/hadoop/core/ [/url]
系统环境:红帽linux

1.硬件配置
准备3-4台机器,为他们配置上IP,保证相互可以ping通

至少有3台作为NameNode因为hadoop默认作为备份的机器数量为3
NameNode也可以作为DataNode
hadoop1:192.168.1.144(NameNode)
hadoop2:192.168.1.145(DataNode)
hadoop3:192.168.1.146(DataNode)
hadoop4:192.168.1.146(DataNode)

修改/etc/hosts文件 如果是144
就加上一下信息
192.168.1.144 hadoop1
192.168.1.145 hadoop2
192.168.1.146 hadoop3
192.168.1.147 hadoop4
145则写
192.168.1.144 hadoop1
192.168.1.145 hadoop2
146则写
192.168.1.144 hadoop1
192.168.1.146 hadoop3
147则写
192.168.1.144 hadoop1
192.168.1.147 hadoop4

2.配置SSH
1.在hadoop1中生成密匙对:ssh-keygen -t -P '' -f ~/.ssh/id_dsa
命令执行后将会在/home/.ssh中生成id_dsa和id_dsa.pub
2.cat ~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
拷贝id_dsa.pub命名为authorized_keys
3.为hadoop2-hadoop4的home目录下创建.ssh文件夹
mkdir .ssh
4.scp authorized_keys hadoop2:/home/.ssh
把authorized_keys拷贝到hadoop2-hadoop4的.ssh目录下
5.为每台机器执行chmod 640 authorized_keys
必须保证authorized_keys的所有者有读写权限,其他人只有读的权限
6.修改每台机器的/etc/ssh/sshd_config
AuthorizedKeysFile 指向authorized_keys
例如 AuthorizedKeysFile /home/authorized_keys
用于去除密码认证

这里必须注意:hadoop1-hadoop4的每台机器必须可以相互连接。此例只是hadoop1连接其他机器,其他机器并不能连接到hadoop1。所以要按上面方法为hadoop2-hadoop4配置ssh连接
配置完成:在hadoop1中执行 ssh hadoop2
如果能连接上表示配置成功:退出链接用exit命令

3.hadoop配置
首先下载hadoop,系统java环境变量已经配置完成
目录结构
由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。
我的三台机器上是这样的:都有一个hadoop的帐户,主目录是/home/hadoop。
解压:[hadoop@ hadoop1:~]$tar  -zxvf  hadoop-0.21.0.tar.gz
Hadoop部署目录结构如下:/home/hadoop/hadoop0.21.0,所有的hadoop版本放在这个目录中。
将hadoop0.21.0压缩包解压至hadoop0.21.0中,为了方便以后升级,建议建立一个链接指向要使用的hadoop版本,不妨设为hadoop,
[hadoop@ hadoop1:~]$ln  -s  hadoop0.21.0  hadoop
这样一来,所有的配置文件都在/home/hadoop/hadoop/conf/目录中,所有执行程序都在/home/hadoop/hadoop/bin目录中。但是由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因此建议将配置文件与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,/home/hadoop/hadoop/hadoop-config,然后将/home/hadoop/hadoop/conf/目录中的masters,slaves,hadoop_env.sh三个文件拷贝到hadoop-config目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/home/hadoop/.bashrc和/etc/profile中设定。
如:
HADOOP_CONF_DIR=/home/hadoop/hadoop/hadoop-config
export HADOOP_CONF_DIR
综上所述,为了方便以后升级版本,我们需要做到配置文件与安装目录分离,并通过设定一个指向我们要使用的版本的hadoop的链接,这样可以减少我们对配置文件的维护。

Hadoop环境变量
在/home/hadoop/hadoop/hadoop-config目录下的hadoop_env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量。HADOOP_HOME变量可以设定也可以不设定,如果不设定,HADOOP_HOME默认的是bin目录的父目录,即本文中的/home/hadoop/hadoop。我的是这样设置的:
export  HADOOP_HOME=/home/hadoop/hadoop
export  JAVA_HOME=/usr/java/jdk1.6.0

重点:env.sh还要加一句
export HADOOP_PID_DIR=/home/hadoop/hadoop/tmp

Hadoop配置文件

修改slaves文件
如前所述,在hadoop1(NameNode)的hadoop-config/目录下,打开slaves文件,该文件用来指定所有的DataNode,一行指定一个主机名。即本文中的hadoop2、hadoop3,因此slaves文件看起来应该是这样的:
hadoop2
hadoop3
hadoop4

修改masters文件
打开masters文件,该文件用来指定NameNode,内容如下:
localhost
hadoop1

修改core-site.xml
1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.        <name>fs.default.name</name>  
7.        <value>hdfs://master:9000</value>  
8.        <description>  
9.            The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation.   
10.        </description>  
11.    </property>  
12.</configuration> 


修改mapred-site.xml
1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.        <name>mapred.job.tracker</name>  
7.        <value>master:9001</value>        
8.        <description>The host and port that the MapReduce job tracker runsat.</description>  
9.   </property>  
10.</configuration>  

修改hdfs-site.xml 
1.<?xml version="1.0"?>  
2.<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
3.<!-- Put site-specific property overrides in this file. -->  
4.<configuration>  
5.    <property>  
6.            <name>dfs.replication</name>  
7.            <value>3</value>          
8.            <description>  
9.                  The actual number of replications can be specified when the file is created.   
10.            </description>  
11.      </property>  
12.</configuration>  



4.启动Hadoop
启动之前,我们先要格式化namenode,先进入~/hadoop/目录,执行下面的命令:
[hadoop@hadoop1 hadoop]$bin/hadoop  namenode  –format
不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件。
下面就该正式启动hadoop啦,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
在这里,简单启动所有守护:
[hadoop@hadoop1:hadoop]$bin/start-all.sh
同样,如果要停止hadoop,则
[hadoop@hadoop1:hadoop]$bin/stop-all.sh

HDFS操作
运行bin/目录的hadoop命令,可以查看Haoop所有支持的操作及其用法,这里以几个简单的操作为例。建立目录:
[hadoop@hadoop1 hadoop]$bin/hadoop  dfs  -mkdir  testdir
在HDFS中建立一个名为testdir的目录,复制文件:
[hadoop@hadoop1 hadoop]$bin/hadoop dfs -put /home/large.zip  testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/hadoop/下,文件名为testfile.zip,查看现有文件:
[hadoop@hadoop1 hadoop]$bin/hadoop dfs -ls
用http://localhost:50070查看信息
0
0
分享到:
评论

相关推荐

    hadoop 分布式部署全过程

    第一步:安装介质的选择 在安装 Hadoop 之前,我们需要选择合适的安装介质。这里我们选择 VMware Workstation 10 作为虚拟机软件,安装介质为 rhel-server-6.3-x86_64-dvd.iso。同时,我们还需要安装 JDK,选择 jdk...

    Spark集群构建:第一步:搭建 Hadoop,单机和伪分布式环境;

    对于 90%以上想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一, 为了解决大家构建 Spark 集群的一切困难,家林把 Spark 集群的构建分为了四个步骤,从 零起步,不需要任何前置知识,涵盖操作的每一个...

    hadoop 文档:Hadoop开发者下载

    3. **开发环境搭建**:安装和配置Hadoop开发环境是开发者的第一步,包括Java环境、Hadoop版本选择、配置Hadoop环境变量、集群部署或伪分布式部署等。 4. **Hadoop API**:学习使用Hadoop API进行数据读写和处理,...

    大型网站架构演变和知识体系【架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代】

    本篇将详细探讨这个架构演变的第十个阶段——进入大型分布式应用时代和廉价服务器群梦想时代,同时会涉及到与之相关的源码分析和工具使用。 一、大型分布式应用时代的到来 1. 分布式系统的定义:分布式系统是由多...

    基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc

    - 第一步:部署Hadoop环境,包括安装VMware作为虚拟化平台,准备源数据。 - 第二步:编写并运行使用Python编写的Mapper和Reducer程序,对日志数据进行预处理。 - 第三步:创建Hive数据库,将处理后的数据导入Hive,...

    1.Hadoop入门进阶课程_第1周_Hadoop1.X伪分布式安装.pdf

    ### Hadoop 1.X 伪分布式安装知识点概览 #### 1. Hadoop 简介 - **定义**: Apache Hadoop 是一个开源框架,它允许...对于初学者来说,理解这些基础知识是非常重要的第一步,它可以帮助更好地掌握 Hadoop 的实际应用。

    Hadoop与HBase部署文档

    【Hadoop与HBase部署文档】 Hadoop是一个开源的分布式计算框架,主要由Apache基金会维护。它被设计成能够处理和存储大量...然而,部署只是第一步,后期的运维和优化同样重要,包括性能监控、故障排查和系统升级等。

    hadoop安装部署说明文档

    《Hadoop安装部署详解》 Hadoop是一款开源的分布式计算框架,由Apache基金会开发,用于处理和存储海量数据。本文将详细介绍如何在Linux...在大数据处理的道路上,理解并熟练掌握Hadoop的安装部署是至关重要的第一步。

    第一步-hadoop-hadoop-2.7.3在centos7上部署安装(单机版).zip

    接下来,我们将介绍如何在Hadoop单机版上安装HBase,一个基于列族的分布式数据库。 1. **下载HBase**:获取HBase的相应版本,与你的Hadoop版本兼容。 2. **配置HBase**:类似Hadoop,设置HBASE_HOME和HADOOP_CONF_...

    Hadoop完全分布式 大数据 入门 学习

    格式化NameNode是启动Hadoop集群的第一步,使用`hdfs namenode –format`命令。然后,通过`start-dfs.sh`脚本启动Hadoop DFS服务。在所有节点上运行`jps`命令,检查Hadoop进程是否正确启动。 为了验证Hadoop集群的...

    16.3、hadoop--01.pdf

    2. 安装JDK:Hadoop需要Java环境来运行,所以第一步是安装Java开发包(JDK)。文档中指定了安装的JDK版本为java-1.8.0-openjdk,并使用yum命令进行安装。安装完成后,通过rpm查询命令来确认JDK的安装路径,以便后续...

    Hadoop2.7.1——NFS部署

    部署NFS前的第一步是确保本地服务器上的NFS服务和RPCBIND服务处于关闭状态。这是因为NFS部署过程中需要重新配置这些服务,以避免冲突。 **对于 CentOS 6 系统:** ```bash service nfs stop service rpcbind stop ``...

    Hadoop简介及Apache Hadoop三种搭建方式

    Apache Hadoop 是一个开源的分布式计算框架,专为处理和存储大规模数据集而设计。它由Apache软件基金会维护,是大数据...理解其架构和搭建过程是掌握大数据技术的关键,而正确配置虚拟机环境是成功部署Hadoop的第一步。

    Hadoop.Beginners.Guide

    《Hadoop初学者指南》是一本专为对大数据处理感兴趣的初学者设计的教程。Hadoop是Apache软件基金会开发的一个开源框架,主要用于存储和处理...这本教程是迈进大数据世界的第一步,为后续的进阶学习和实战打下坚实基础。

    hadoop安装与部署.docx

    首先,我们来看第一步——设置SSH无密钥登录。这是为了在集群中的不同节点之间实现安全无密码的通信。通过执行`ssh-keygen`命令生成RSA公钥和私钥,然后将公钥复制到其他datanode节点,添加到authorized_keys文件中...

    Centos7+hadoop2.6.0分布式集群搭建

    安装Hadoop的第一步是从Apache官网上下载Hadoop 2.6.0的安装包,并解压到指定目录。然后配置JDK和Hadoop的环境变量,这涉及到编辑`/etc/profile`文件,使其对所有用户生效,并且检查环境变量是否设置正确。 ### 11....

    hadoop1.0.2 hbase0.94安装

    在IT行业中,分布式计算框架Hadoop和NoSQL数据库HBase是大数据处理的重要工具。本教程主要涵盖的是在较旧版本的Hadoop 1.0.2上安装并配置HBase 0.94,以及...记住,理解并熟练掌握这些基础是进入大数据领域的第一步。

Global site tag (gtag.js) - Google Analytics