原创文章:转载请注明出处
最近有幸开始接触云。哈哈,先从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查看信息
分享到:
相关推荐
对于 90%以上想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一, 为了解决大家构建 Spark 集群的一切困难,家林把 Spark 集群的构建分为了四个步骤,从 零起步,不需要任何前置知识,涵盖操作的每一个...
第3章 Hadoop的元数据备份方案 3.1 运行机制分析 4 3.1.1 NameNode启动加载元数据情景分析 3.1.2 元数据更新及日志写入情景分析 3.1.3 Checkpoint过程情景分析 3.1.4 元数据可靠性机制 3.1.5 元数据一致性机制 3.2 ...
王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第九讲Hadoop图文训练课程:剖析NameNode和Secondary NameNode的工作机制和流程. 此教程来自于王家林免费发布的3本Hadoop教程:云计算分布式大数据...
linux:centos6.5 hadoop版本:2.6.0 集群方式:伪分布式 已经通过 内容比较详尽
centos7安装和基础环境配置:Hadoop分布式搭建前期准备工作.docx
王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第八讲Hadoop图文训练课程:Hadoop文件系统的操作. 此教程来自于王家林免费发布的3本Hadoop教程:云计算分布式大数据Hadoop实战高手之路(共3本书)...
Hadoop2.x版本完全分布式安装与部署,介绍完整过程,有图,条理十分清晰,包看包会。上课专用。
Hadoop分布式文件系统:架构和设计要点.pdf
资源名称:云计算Hadoop:快速部署Hadoop集群内容简介: 近来云计算越来越热门了,云计算已经被看作IT业的新趋势。云计算可以粗略地定义为使用自己环境之外的某一服务提供的可伸缩计算资源,并按使用量付费。可以...
Hadoop分布式文件系统:架构和设计要点中文翻译
hadoop HA高可用性完全分布式集群安装 内付下载地址和说明文档
Linux运维-运维课程MP4频-06-大数据之Hadoop部署-21hadoo伪分布式服务启动.mp4
hdfs官方文档 Hadoop分布式文件系统:结构与设计.pdf
部署全分布模式Hadoop集群 实验报告一、实验目的 1. 熟练掌握 Linux 基本命令。 2. 掌握静态 IP 地址的配置、主机名和域名映射的修改。 3. 掌握 Linux 环境下 Java 的安装、环境变量的配置、Java 基本命令的使用。 ...
Hadoop分布式文件系统:架构和设计.pdf
1、hadoop单机模式和伪分布式 2、hadoop集群 3、hadoop运行WordCount程序 4、编码实践并在Hadoop上运行 题目:输入两个文件,一个代表工厂表,包含工厂名列和地址编号列;另一个代表地址表,包含地址名列和地址编号...
第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件系统.pdf第四章(Hadoop大数据处理实战)Hadoop分布式文件...