hdfs安装和配置过程以及hadfs的工作原理(备忘)
来源:互联网 发布:多核优化好的网游 编辑:程序博客网 时间:2024/05/18 02:43
在老师的帮助下,折腾了大半天终于把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文件;
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的主机名,
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是否启动成功
jps
列出正在运行的java程序
如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机版环境配置好了!
如下图:
(2):kill -9 2748
(3):
然后可以通过firefox浏览器查看,使用http://localhost:50030/
这个网页显示的是正在运行的任务
如果看到下面激动人心的画面,就说明你成功了。
localhost Hadoop Map/Reduce Administration
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)
Scheduling Information
Queue NameStateScheduling InformationdefaultrunningN/AFilter (Jobid, Priority, User, Name)
Example: 'user:smith 3200' will filter by 'smith' only in the user field and '3200' in all fields
Running Jobs
noneRetired Jobs
noneLocal Logs
Log directory,Job Tracker HistoryThis is Apache Hadoop release 1.0.4
然后可以通过firefox浏览器查看,使用http://localhost:50070/
这个页面显示的是涉及的数据
NameNode 'localhost:9000'
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%)NameNode Storage:
- hdfs安装和配置过程以及hadfs的工作原理(备忘)
- hdfs安装和配置过程以及hadfs的工作原理(备忘)
- hdfs安装和配置过程以及hadfs的工作原理(备忘)
- HDFS的工作原理
- HDFS的工作原理
- HDFS的工作原理
- ganglia简介以及工作原理和配置
- ganglia简介以及工作原理和配置
- hibernate的配置以及工作原理介绍
- HDFS工作原理(1.0)
- 安装java和hadoop的过程以及配置环境变量
- 编译器的工作过程和原理
- svn工作原理以及服务搭建和配置
- Hadoop分布式文件系统HDFS的工作原理
- Hadoop分布式文件系统HDFS的工作原理
- 还不懂HDFS的工作原理?
- JIRA的安装过程备忘
- HDFS安装、配置以及基本使用
- DVB-SI理解入门
- PHP vs Node.js vs Nginx-Lua(转)
- android maven eclipse里面新建maven工程The desired archetype does not exist
- 同行代码评审过程中的实践经验
- ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB_2_1"
- hdfs安装和配置过程以及hadfs的工作原理(备忘)
- Java容器分析--Map
- iOS设计模式 - (1)概述
- SharedPreferences数据存取操作,android引导页一次执行的方法。
- mysqldump: Got error: 1356 mysqldump的重要参数--force
- 每日一博
- c进行预处理、编译、连接、运行是做什么
- Google API 1: Google日历api操作 (PHP)
- loadrunner-mysql脚本(odbc协议)