当前位置: 代码迷 >> 综合 >> ubuntu12.04下安装hadoop-1.0.3 并搭建单机伪分布式运行环境(一)
  详细解决方案

ubuntu12.04下安装hadoop-1.0.3 并搭建单机伪分布式运行环境(一)

热度:19   发布时间:2024-01-11 05:58:55.0

1:下载hadoop-1.0.3.tar.gz安装包放到制定目录下;

2:将hadoop-1.0.3.tar.gz解压到/home/scs2000/app下(scs2000为当前用户名),其命令如下:

sudo tar xzf /mnt/hgfs/ubuntushare/hadoop-1.0.3.tar.gz

3:重命名文件夹hadoop-1.0.3为hadoop:

mv hadoop-1.0.3 hadoop

4:把hadoop的主属性改为scs2000:

sudo chown -R scs2000 hadoop

5:更新hadoop的环境变量:

gedit hadoop/conf/hadoop-env.sh

更改如下环境变量:

# The java implementation to use.  Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

更改为本机jdk:

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_09

6:配置ssh

sudo apt-get install ssh
sudo apt-get install rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

7:验证ssh配置是否成功:

ssh localhost

注意在出现提示信息时应输入yes,不是直接回车:

The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is d7:3f:3f:a0:bd:cc:42:09:b8:5d:8a:f1:62:45:28:37.
Are you sure you want to continue connecting (yes/no)? yes

8:搭建单机伪分布式运行环境

伪分布式运行模式是运行在单个机器上,每一个hadoop的守候一个单独的java进程。

配置conf/core-site.xml,添加如下内容:

gedit conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name> 
<value>hdfs://localhost:9000</value>
</property>
</configuration>

配置conf/hdfs-site.xml,添加如下内容:

gedit conf/hdfs-site.xml
<configuration>
<property>
<name>dfs:replication</name>
<value>1</value>
</property>
</configuration>

配置conf/mapred-site.xml,添加如下内容:

gedit conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

9:格式化HDFS

进入hadoop目录。运行命令:

sudo bin/hadoop namenode -format

10:启动及验证hadoop监护进程

bin/start-all.sh


验证方法1:jps

验证方法2:

bin/hadoop dfsadmin -report

11:复制输入文件到HDFS

在HDFS下创建input目录,将hadoop/conf下的所有xml文件上传到input下:

bin/hadoop dfs -mkdir input
bin/hadoop dfs -put conf/*.xml input

查看input中上传的文件:

bin/hadoop dfs -ls input



12:运行例子,将结果输出到output。

bin/hadoop jar hadoop-examples-1.0.3.jar grep input output 'dfs[a-z].+'

如果报如下错误是因为执行了多次put之后,就会在分布式文件系统中生成子目录,删除重新put即可。

 出现以上错误后执行如下命令清除多余子目录后在重新put。

部分运行结果:

13:结果文件输出

A:将结果输出文件从分布式文件系统拷贝到本地文件系统查看;

bin/hadoop dfs -get output output
cat output/*

B:在分布式文件系统上输出查看:

bin/hadoop fs -cat output/part-*


 

  相关解决方案