实习空下来,尝试一下伪分布式安装Hadoop,记录一下过程。
首先在虚拟机上装了操作系统:Ubuntu Server 11.04
准备工作:
hadoop-0.20.2.tar.gz
jdk-6u27-linux-i586.bin
安装SUN-Java环境
通过SSH连接到Ubuntu Server
· 通过主页上的jdk-6u27-linux-i586.bin下载并复制到/home/didi,执行安装
$ sudo sh jdk-6u27-linux-i586.bin
完成安装Done,jdk位置为/home/didi/jdk1.6.0_27
改名:sudo mv jdk1.6.0_27/ java-6-sun
· 修改环境变量
vim ~/.bashrc
export JAVA_HOME=/home/didi/java-6-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存退出 , 并使之生效
source ~/.bashrc
此时 java-version 显示为 :
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
安装 Hadoop
解压 tar -xzvf hadoop-0.20.2.tar.gz
将 Hadoop/bin 也加入到 PATH 中 , 方法同之前一样
伪分布式配置
conf/core-site.xml:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
conf/hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
conf/mapred-site.xml:
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
检查ssh是否可以连接上本机
$ ssh localhost
如果提示要输入密码,则再做如下操作,保证不输入密码直接登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
修改环境文件 conf/hadoop-env.sh
export JAVA_HOME=/home/didi/java-6-sun
格式化一个新的分布式文件系统
$ hadoop namenode -format
启动 hadoop
$ start-all.sh
检查是否启动成功 , 查看启动的进程
$ jps
如下进程必须启动才算成功 :
2974 TaskTracker
2672 DataNode
2533 NameNode
2862 JobTracker
2791 SecondaryNameNode
向 HDFS 拷贝一个文件
hadoop fs -put hadoop-0.20.2.tar.gz input
再通过 NameNode 页面可以发现 DFS Used 就是刚才我们存放的大小
查看文件系统
$ hadoop fs -ls
Found 1 items
-rw-r--r-- 1 didi supergroup 44575568 2011-09-16 13:45 /user/didi/input