hdfs安装和配置过程以及hadfs的工作原理(备忘)

在老师的帮助下,折腾了大半天终于把hdfs部署到ubuntu上去了。在这里记录一下各步骤备忘:


在讲步骤之前,先总结一下自己对hadoop的工作你原理的理解:

1.这个分布式系统是通过一个namenode(运行在master上的一个进程)来作为master来统筹管理多个作为slavers的datanode(运行在slavers上的一个进程);

2.master将各slavers的实际物理空间虚拟成一个统一有根的文件系统。

3.对于hdfs管理员,可以通过控制master或slaver主机,再远程登录到master主机,人工手动控制上本地的某个文件传到该虚拟文件系统中,

     如:bin/hadoop fs -put /etc/profile /user/hadoop/first/   (意思是调用bin/hadoop脚本程序将当前所在主机作为client(master或slaver)

     上的etc/profile 文件上传到该虚拟文件系统的    /user/hadoop/first/下面)同理可直接:hadoop fs -mkdir first在该虚拟文件系统上新建first文件夹

4.作为程序员,不用通过ssh服务,可以直接利用hdfs提供的api,直接访问master主机。想上传什么文件,直接上传给master就可以了,而master将

  传来的文件,放在slavers中,不排除将一个大文件切块儿的可能。



部署步骤:

一:安装ssh

1:sudo apt-get install openssh-server openssh-client

     安装ssh远程登录服务,因为SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。而hadloop就是基于这个协议来实现,分布式统筹管理

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386


2:ssh-keygen -t rsa -P ""

创建ssh-key,~/.ssh目录下(即当前用户的/home/hadoop/ssh)将生成id_rsa  id_rsa.pub  known_hosts三个文件,如果将这三个文件复制到另一台已经安装ssh的主机上,

那么他们之间相互访问就不用每次输入登录密码。

3:cat id_rsa.pub >> authorized_keys

将id_rsa.pub 复制一份到authorized_keys中,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件


二:

1:sudo addgroup hadoop

     创建一个名为hadoop的用户组

2:sudo adduser -ingroup hadoop hadoop

      在用户组hadoop中创建一个hadoop用户

3:sudo gedit /etc/sudoers

     给hadoop用户添加权限,打开/etc/sudoers文件;

     在已有的root   ALL=(ALL:ALL)   ALL下 

     添加hadoop   ALL=(ALL:ALL)  ALL

     给hadoop用户赋予root用户同样的权限。

4:su - hadoop

切换用户到hadoop



三:下载安装hadoop-1.0.4.tar.gz

1:tar -zxvf  hadoop-1.0.4.tar.gz

解压

2:mv hadoop-1.0.4 hadoop

重命名

3:cp hadoop /usr/local/

并将其复制到/usr/local/目录下


之后就是修改conf下的配置:


 
sudo  gedit hadoop /conf/core-site .xml

(1)编辑如下:property后面需要手工敲

 
<? xml version = "1.0" ?>
<? xml-stylesheet type = "text/xsl" href = "configuration.xsl" ?>
                                                                                                               
<!-- Put site-specific property overrides in this file. -->
                                                                                                               
< configuration >
< property >  
   < name >fs.default.name</ name >  
   < value >hdfs://localhost:9000</ value >   
  </ property >  
</ configuration >

(2). 打开conf/mapred-site.xml文件;

 
sudo  gedit hadoop /conf/mapred-site .xml

编辑如下property后面需要手工敲:

 
<? 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 >localhost:9001</ value >   
      </ property >  
     </ configuration >

(3). 打开conf/hdfs-site.xml文件;

1
sudo  gedit hadoop /conf/hdfs-site .xml

编辑如下:

 
< configuration >
< property >
< name >dfs.name.dir</ name >
< value >/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</ value >
</ property >
< property >
< name >dfs.data.dir</ name >
< value >/usr/local/hadoop/data1,/usr/local/hadoop/data2</ value >
</ property >
< property >
< name >dfs.replication</ name >
< value >2</ value >
</ property >
</ configuration >

(4). 作为单机版环境,只需在hadoop/conf/masters
hadoop/conf/slavers中填写localhost 就Ok了

打开conf/masters文件,添加作为secondarynamenode的主机名,

(5) 如果是将本主机做master,也只需要在hadoop/conf/masters中添加localhost

hadoop/conf/slaves中添加作为slaver的:主机名(可以不用加“@用户名”)

对于slavers上(老师说这个是不需要的):也只需要在hadoop/conf/masters中添加前面那台master主机的:主机名

hadoop/conf/slaves中和前面master的那台一样


四:安装jdk

1:sudo apt-get install openjdk-7-jdk
安装java编译环境

2:配置JAVA_HOME环境变量

首先确定的是java默认安装位置为:/usr/lib/jvm/java-1.6.0-openjdk-i386

方案一:

(1):在~/.bashrc里面添加

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386                  
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

之后退出,在终端运行source bashrc可使得刚修改的环境变量立即生效


(2)之后在解压后的hadoop(原名为:hadoop-1.0.4)文件夹下的conf下,找到hadoop-env.sh文件,在里面添加

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386

就可以将JAVA_HOME设为hadoop可识别的单位变量

方案二:

(1):在/etc/profile里面添加export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386

即将所有用户的环境变量中添加一个JAVA_HOME变量


(2)之后在解压后的hadoop(原名为:hadoop-1.0.4)文件夹下的conf下,找到hadoop-env.sh文件,在里面添加

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386

就可以将JAVA_HOME设为hadoop可识别的单位变量


五:运行hadoop

1:cd  /usr/local/hadoop/
跳转到/usr/local/hadoop/目录下
2:bin /hadoop  namenode  - format
格式化namenode文件系统

3: 当你看到下图时,就说明你的hdfs文件系统格式化成功了。


4: 启动bin/start-all.sh

bin /start-all .sh

5. 检测hadoop是否启动成功

(1):
jps
列出正在运行的java程序


千万要注意这里,我使用这个命令只能看到jps自己的进程,纠结了很长时间,忽然发现得用 sudo jps果然能出现6个进程,坑爹啊,大家千万要注意。

如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机版环境配置好了!

如下图:

 (2):kill -9 2748

可以直接杀死NameNode进程

(3):

然后可以通过firefox浏览器查看,使用http://localhost:50030/

这个网页显示的是正在运行的任务

如果看到下面激动人心的画面,就说明你成功了。

localhost Hadoop Map/Reduce Administration

State:  RUNNING
Started:  Fri Apr 12 17:51:46 CST 2013
Version:  1.0.4, r1393290
Compiled:  Wed Oct 3 05:13:58 UTC 2012 by hortonfo
Identifier:  201304121751

Cluster Summary (Heap Size is 15.5 MB/966.69 MB)

Running Map TasksRunning Reduce TasksTotal SubmissionsNodesOccupied Map SlotsOccupied Reduce SlotsReserved Map SlotsReserved Reduce SlotsMap Task CapacityReduce Task CapacityAvg. Tasks/NodeBlacklisted NodesGraylisted NodesExcluded Nodes
00010000224.00000


Scheduling Information

Queue NameStateScheduling Information
defaultrunningN/A

Filter (Jobid, Priority, User, Name)  
Example: 'user:smith 3200' will filter by 'smith' only in the user field and '3200' in all fields

Running Jobs

none

Retired Jobs

none

Local Logs

Log  directory, Job Tracker History
This is  Apache Hadoop  release 1.0.4

 

然后可以通过firefox浏览器查看,使用http://localhost:50070/

这个页面显示的是涉及的数据


NameNode 'localhost:9000'

Started:Sun Apr 21 21:58:20 CST 2013
Version:1.0.4, r1393290
Compiled:Wed Oct 3 05:13:58 UTC 2012 by hortonfo
Upgrades:There are no upgrades in progress.

Browse the filesystem
Namenode Logs

Cluster Summary

10 files and directories, 2 blocks = 12 total. Heap Size is 31.57 MB / 966.69 MB (3%) 
Configured Capacity:119.49 GB
DFS Used:76 KB
Non DFS Used:21.59 GB
DFS Remaining:97.9 GB
DFS Used%:0 %
DFS Remaining%:81.93 %
Live Nodes:1
Dead Nodes:0
Decommissioning Nodes:0
Number of Under-Replicated Blocks:2


NameNode Storage:

Storage DirectoryTypeState
/usr/local/hadoop/datalog1IMAGE_AND_EDITSActive
/usr/local/hadoop/datalog2IMAGE_AND_EDITSActive
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值