在Ubuntu下安装与配置hadoop(伪分布)

来源:互联网 发布:杰伦布朗体测数据 编辑:程序博客网 时间:2024/05/21 10:28

参考:http://doctuts.readthedocs.io/en/latest/Hadoop.html#single-node-installation


1、先在虚拟机(VM10)中安装好两台Ubuntu14,用户名必须一样,机器名一台取名master,一台取名slave

2、安装VMtools

http://blog.csdn.net/bryan__/article/details/43083613

3、安装jdk:

http://www.linuxidc.com/Linux/2015-01/112030.htm

4、在两台机器/etc/hosts中添加 ip和对应机器名 输入命令 sudo vi /etc/hosts

5、安装SSH服务,master和slave都要安装

http://blog.csdn.net/bryan__/article/details/43069967

安装好之后互相复制 id_dsa.pub到对方的authorized_keys文件中

输入如下指令把公钥拷贝到slave中

然后在slave中把公钥追加到授权key,输入如下指令

在master中试试能否成功无密码登录slave,输入如下指令,如果提示(yes/no)输入yes

接下来同样把slave的公钥追加到master的授权key中,先把公钥复制过去,公钥在目录 ~/.ssh 下

在master中把slave的公钥追加到master的授权key中

在slave中尝试能否无密码登录master

如果配置完毕存在不能相互访问的问题,可以关闭防火墙

6、安装hadoop

采用的hadoop版本为hadoop-0.21.0.tar.gz,可以在官网下载

把hadoop压缩文件拖到 /home/你的用户名 目录下 

使用tar -xvf name.tar.gz 命令解压

把hadoop的安装路径添加到 /etc/profile 中

立即生效使用 source /etc/profile 命令

7、配置hadoop,配置文件在conf目录下

(1)hadoop-env.sh配置

添加语句

# The Java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/Java-7-openjdk-i386

(2)masters和slaves配置

把masters中的内容替换为192.168.136.144

把slaves中的内容替换为192.168.136.138

(3)配置core-site.xml 

<property>
<name>hadoop.tmp.dir</name>
<value> /home/zhouyao/tmp</value> # 注意,不要创建tmp目录
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.136.144:9000</value>
</property>

 

hdfs-site.xml

<property>
<name>dfs.name.dir</name>
<value>/home/zhouyao/name/</value> #hadoop的name目录路径,不要创建该目录  
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/zhouyao/data/</value> #hadoop的data目录路径,不要创建该目录
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

 

 mapred-site.xml

<property>
<name>mapred.job.tracker</name>
<value>192.168.136.144:9001</value>
</property>

注意不要忘了在slave机器下面也是同样的配置,除了masters和slaves这两个文件不用配置

8、启动所有hadoop守护进程
先进入hadoop-0.21.0/bin,首先格式化文件系统:
$ hadoop namenode –format

启动Hadoop的所有守护进程:
# ./start-all.sh

说明:
在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护

#查看运行进程
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。


如果输入jps显示没这个命令,就安装


查看集群状态:
$ hadoop dfsadmin -report



用web查看:
ui:http://master:50070 --web UI for HDFS name node(s) 
    http://master:50030 --web UI for MapReduce job tracker(s)
    http://slaveip:50060   --web UI for task tracker(s)

6.6, 运行实例
运行wordcount.java 程序

在hadoop的源码包里有一个wordcount的例子,可以直接运行,验证安装是否正确。

hadoop-mapred-examples-0.21.0.jar 是wordcount的jar包

wordcount 是类名

cd /home/zhouyao/hadoop-0.21.0

(1)先在本地磁盘建立两个输入文件f_1 和f_2:
$ echo “Hello World Bye World” > f_1
$ echo “Hello Hadoop Goodbye Hadoop” > f_2
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal  /home/zhouyao/f_* input
(4)执行wordcount:
$ hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000

------------------- 运行结果--------------
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2
------------------------------------------

http://localhost/50030 可以查看运行的job和结果

 




原文地址:http://blog.csdn.net/bryan__/article/details/43195483

0 0
原创粉丝点击