Hadoop 安装详解--新手必备

简介:
准备:
这次学习,我使用的是虚拟机vmware,安装了3台虚拟机,系统为centos 5(其它版本亦可),主机名依次命名为hdfs1、hdfs2、hdfs3,ip地址一次为:172.16.16.1、172.16.16.10、172.16.16.11
通过配置/etc/sysconfig/network 修改主机名
通过修改/etc/sysconfig/network-scripts/ifcfg-eth0 ,配置ip等信息
将 主机hdfs1作为hadoop作为分布式文件系统HDFS的namenode节点和MapReduce 运行过程中的 Job Tracker 结点, 我们将 hdfs1 称之为主结点。其它两台机器 (hdfs2, hdfs3) 作为 HDFS 的 Data Node 以 及 MapReduce 运行过程中的 Task Tracker 结点,这些结点可统称为从结点。如你需要部署更多的机器,也是很容易的,将新加入的机 器作为 Data Node 以及 Task Tracker 结点即可,其配置过程在您看完本文后就会了。
步骤一:
 vi /etc/hosts
172.16.16.10         hdfs2
172.16.16.11         hdfs3
172.16.16.1          hdfs1
先保证每一台主机都能ping通其他主机,ping 通其他任意节点的主机名
步骤二:
设置master到任意节点的无密码登录
[root@hdfs1 ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
09:ad:96:cf:9f:21:65:10:3d:39:f0:f9:99:69:3c:b2 root@hdfs1
[root@hdfs1 ~]# cd .ssh/
[root@hdfs1 .ssh]# mv id_rsa.pub id_rsahdfs1.pub
[root@hdfs1 .ssh]# touch authorized_keys
[root@hdfs1 .ssh]# cat id_rsahdfs1.pub > authorized_keys 
[root@hdfs1 .ssh]# ssh hdfs1
Last login: Sat Mar 24 12:25:53 2012 from hdfs1
在hdfs2和hdfs3主机上,依次操作cat id_rsahdfs1.pub > authorized_keys,之后,验证从hdfs1上其它两个节点上,登录是否需要输入密码?不输入密码是正确的
[root@hdfs1 .ssh]# ssh hdfs2
Last login: Sat Mar 24 12:31:44 2012 from hdfs1
[root@hdfs2 ~]# 
[root@hdfs1 .ssh]# ssh hdfs3
Last login: Fri Mar 23 21:18:29 2012 from 172.16.16.110
[root@hdfs3 ~]# 
Ok , ssh验证均不需要密码
步骤三:安装jdk和hadoop,我的系统是32位的,
cp hadoop-1.0.1.tar.gz  jdk-6u31-linux-i586.bin  /usr/local/
chmod 755 jdk-6u31-linux-i586.bin 
[root@hdfs1 local]# ./jdk-6u31-linux-i586.bin  赋予可执行权限
tar zxvf hadoop-1.0.1.tar.gz   安装hadoop 
注意: Jdk和hadoop程序是一样的,在那个目录下解压包,就是将程序安装在当前目录下
因为安装jdk,就是安装Java程序,看系统默认的程序是否卸载掉,可以手动删除,然后在做一个软连接
默认的java
[root@hdfs1 local]# java -version
java version "1.6.0"
OpenJDK  Runtime Environment (build 1.6.0-b09)
OpenJDK Client VM (build 1.6.0-b09, mixed mode)
删除/usr/bin 的Java符号链接
[root@hdfs1 bin]# rm java
rm:是否删除 符号链接 “java”? Y
然后再做一个软连接:
[root@hdfs1 bin]# java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
这个才是我们安装的版本
所有的主机的Java都调整好后,开始编辑hadoop的配置文件
vi hadoop-env.sh        此文件指定JAVA程序的安装目录
添加一行,export JAVA_HOME=/usr/local/jdk1.6.0_31
编辑:vi core-site.xml
<configuration>
<property>
        <name>fs.default.name</name>
参数 fs.default.name 指定 Name Node 的 IP 地址和端口号,这里指定就是namenode的9000端口   
        <value>hafs://hdfs1:9000</value>
</property>
</configuration>
 
vi hdfs-site.xml
<configuration>
<property>
        <name>dfs.name.dir</name>
 参数 dfs.name.dir 指定 Name Node 相关数据在本地文件系统上的存放位置
        <value>/home/hadoop/dfs.name.dir</value>
</property>
<property>
        <name>dfs.data.dir</name>
参数 dfs.data.dir 指定 Data Node 相关数据在本地文件系统上的存放位置
        <value>/home/hadoop/dfs.data.dir</value>
</property>
<property>
        <name>dfs.replication</name>
设置hdfs系统备份文件数,此值设置为2,说明当一个文件上传到hdfs系统中,会被备份2个
        <value>2</value>
</property>
</configuration>
 vi mapred-site.xml 
<configuration>
<property>
        <name>mapred.job.tracker</name>
参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号
        <value>hdfs1:9001</value>
</property>
</configuration>
设置主从节点:
  修 改 conf/masters 文件,将其中的 localhost 改为 hdfs1 ,修改 conf/slaves 文件。 删掉其中的 localhost, 将我们的另两台机器 hdfs2、hdfs3 加入, 注意每个机器一行。masters里面的是主机节点,slaves里面是从 机节点。
步骤四:
同样的配置文件,拷贝到其它两台slave节点中
[root@hdfs1 hadoop-1.0.1]# scp -r conf/  root@hdfs2:/usr/local/hadoop-1.0.1/
[root@hdfs1 hadoop-1.0.1]# scp -r conf/ root@hdfs3:/usr/local/hadoop-1.0.1/
开启hdfs防火墙端口:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT~
重启防火墙,使新添加的防火墙规则生效
步骤五:
在hdfs 节点上,格式化一个HDFS文件系统
[root@hdfs1 hadoop-1.0.1]# /usr/local/hadoop-1.0.1/bin/hadoop namenode -format
2/03/24 13:19:17 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = hdfs1/172.16.16.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 1.0.1
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1243785; compiled by 'hortonfo' on Tue Feb 14 08:15:38 UTC 2012
************************************************************/
12/03/24 13:19:17 INFO util.GSet: VM type       = 32-bit
12/03/24 13:19:17 INFO util.GSet: 2% max memory = 19.33375 MB
12/03/24 13:19:17 INFO util.GSet: capacity      = 2^22 = 4194304 entries
12/03/24 13:19:17 INFO util.GSet: recommended=4194304, actual=4194304
12/03/24 13:19:18 INFO namenode.FSNamesystem: fsOwner=root
12/03/24 13:19:18 INFO namenode.FSNamesystem: supergroup=supergroup
12/03/24 13:19:18 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/03/24 13:19:18 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
12/03/24 13:19:18 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
12/03/24 13:19:18 INFO namenode.NameNode: Caching file names occuring more than 10 times 
12/03/24 13:19:18 INFO common.Storage: Image file of size 110 saved in 0 seconds.
12/03/24 13:19:18 INFO common.Storage: Storage directory /home/hadoop/dfs.name.dir has been successfully formatted.
12/03/24 13:19:18 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hdfs1/172.16.16.1
************************************************************/
Ok
步骤六:
启动hadoop进程
/usr/local/hadoop-1.0.1/bin/start-all.sh 
starting namenode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-namenode-hdfs1.out
hdfs3: starting datanode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-datanode-hdfs3.out
hdfs2: starting datanode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-datanode-hdfs2.out
hdfs1: starting secondarynamenode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-secondarynamenode-hdfs1.out
starting jobtracker, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-jobtracker-hdfs1.out
hdfs3: starting tasktracker, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-tasktracker-hdfs3.out
hdfs2: starting tasktracker, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-root-tasktracker-hdfs2.out
启动完成后,用ps -ef 可以查到hdfs上启动了3个关于hadoop有关的java进程,
jar org.apache.hadoop.hdfs. server.namenode.NameNode
 org.apache.hadoop.hdfs.server. namenode.SecondaryNameNode
org.apache.hadoop. mapred.JobTracker
在其它的节点上,hdfs2、hdfs3有两个与hadoop相关的两个java进程
org.apache.hadoop.hdfs. server.datanode.DataNode
org.apache.hadoop .mapred.TaskTracker
现在再调整系统的环境变量
Vi /etc/profile
export PATH=/usr/local/jdk1.6.0_31/bin:/usr/local/hadoop-1.0.1/bin:$PATH  USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
source /etc/profile
同步到其他slave节点上
[root@hdfs1 bin]# scp /etc/profile root@hdfs2:/etc/
profile                                                                                    100% 1091     1.1KB/s   00:00    
[root@hdfs1 bin]# scp /etc/profile root@hdfs3:/etc/
profile  
到其它节点上,执行命令 source /etc/profile  让文件生效,这样hadoop/bin下的和jdk/bin/下的命令,可以任意调用
查看hadoop是否安装ok
使用命令jps
[root@hdfs1 bin]# jps
8517 SecondaryNameNode
8943 Jps
8592 JobTracker
8343 NameNode
[root@hdfs2 bin]# jps
8600 Jps
8306 TaskTracker
8220 DataNode
[root@hdfs3 bin]# jps
11833 DataNode
12211 Jps
11902 TaskTracker
由此可看出,hadoop安装、部署是ok的
通过
http://hdfs1:50070  看看分布式文件系统概况日志  
http://hdfs1:50030   可以查看分布式文件系统的工作状况
以上所有的步骤,是hadoop集群系统的安装、配置部分,后续将继续发表出hdfs的命令、操作等其它文章
我也是新手,愿有志同道合的朋友,一起学习!
以后操作如有不当之处,请指出,一起学习!
因为jdk包和hadoop包计较大,无法上传,有需要的,可以从官网上下载,也可以联系我索要




本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/916193,如需转载请自行联系原作者
目录
相关文章
|
5天前
|
分布式计算 Hadoop 数据安全/隐私保护
现成Hadoop安装和配置,图文手把手交你
现成Hadoop安装和配置,图文手把手交你
|
13天前
|
弹性计算 分布式计算 Hadoop
Linux(阿里云)安装Hadoop(详细教程+避坑)
Linux(阿里云)安装Hadoop(详细教程+避坑)
59 3
|
13天前
|
存储 分布式计算 Hadoop
【分布式计算框架】Hadoop伪分布式安装
【分布式计算框架】Hadoop伪分布式安装
11 2
|
13天前
|
分布式计算 资源调度 Hadoop
安装hadoop学习笔记
安装hadoop学习笔记
22 0
安装hadoop学习笔记
|
13天前
|
分布式计算 Hadoop Linux
找到Hadoop的安装目录
【4月更文挑战第19天】具体的安装目录可能因您的安装方式和环境而有所不同。如果您在安装Hadoop时遵循了特定的教程或文档,建议参考该教程或文档中的安装目录信息。
29 3
|
13天前
|
分布式计算 Hadoop 大数据
[大数据] mac 史上最简单 hadoop 安装过程
[大数据] mac 史上最简单 hadoop 安装过程
|
13天前
|
资源调度
Hadoop3的安装
Hadoop3的安装
24 0
|
13天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
43 0
|
13天前
|
分布式计算 资源调度 Hadoop
在Linux系统上安装Hadoop的详细步骤
【1月更文挑战第4天】在Linux系统上安装Hadoop的详细步骤
494 0
|
13天前
|
存储 分布式计算 Hadoop
hadoop 安装系列教程二——伪分布式
hadoop 安装系列教程二——伪分布式
49 0