ubuntu伪分布hadoop

ip地址:

一、 软件环境准备

1.1 Java

Java在这里使用的是jdk1.7版本的,当然也可以使用1.6的,下载链接:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

我的Linux机器是64位的。如果Linux机器是32的就必须选择32位的下载,不同的机器必须要配置不同的jdk版本。

1.2Hadoop

我们使用hadoop Release 1.2.1(stable)版本,下载链接:

http://mirrors.ustc.edu.cn/apache/hadoop/common/hadoop-1.2.1/

选择hadoop-1.2.1-bin.tar.gz文件下载

二、 相应环境配置

2.1 安装并配置ssh环境:(配置ssh无密钥连接)

使用以下命令设置ssh无密码连接:

$sudo spt-get install openssh-server

$ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa

$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

测试ssh配置是否成功:

$ssh localhost

2.2 配置java环境

Ø 解压文件

$sudo mv jdk-7u80-linux-x64.tar.gz /usr/lib/jvm

$ tar –zvxf jdk-7u80-linux-x64.tar.gz

Ø 配置java环境变量

1./etc/profile.d/目录下创建一个.sh结尾的文件(java.sh),文件内容如下:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80

export JRE_HOME=${JAVA_HOME}/jre 

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 

export PATH=${JAVA_HOME}/bin:$PATH

2.执行

  $sudo source /etc/profile

三、 配置Hadoop

Hadoop环境的配置必要条件:(见相应环境配置

Ø java运行环境

Ø ssh的无密钥连接 

hadoop配置文件配置:

把文件解压,并进入配置文件所在的目录

hadoop@ubuntu:~$ tar -zvxf hadoop-1.2.1.tar.gz

hadoop@ubuntu:~$ cd hadoop-1.2.1/conf/

我们可以看到haddoop- env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件以及需要在完全分布模式配置的 slavesmasters文件。 

3.1配置hadoop-env.sh:

首先我们用vi hadoop-env.sh命令编辑打开hadoop-env.sh文件,找到JAVA_HOME关键字所在的行,把前面的#号去掉,然后填写实际的JAVA_HOME地址:

3.2配置core-site.xml:

vi core-site.xml打开core-site.xml文件,修改后内容如下:

<!—fs.default.name:用来配置namenode,指定HDFS文件系统的URL,通过该URL我们可以访问文件系统的内 容,也可以把localhost换成本机IP地址;如果是完全分布模式,则必须把localhost改为实际namenode机器的IP地址;如果不写端 口,则使用默认端口8020 --> 

<!-- hadoop.tmp.dirHadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此 文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。该目录必须预先手工创建。 --> 

3.3配置hdfs-site.xml:

configuration标签中加入以下内容,所有不存在的目录都要预先创建

3.4配置mapred-site.xml:

<!—该项配置用来配置jobtracker节点,localhost也可以换成本机的IP地址;真实分布模式下注意更改成实际jobtracker机器的IP地址--> 

四、 启动hadoop

4.1:测试hadoop配置是否成功:

 

4.2:格式化namenode

$cd /data/software/hadoop/hadoop-1.2.1/bin

$./hadoop namenode –format

 

4.3:启动hadoop进程,运行start-all.sh

$./start-all.sh

我们可以通过javajps命令来查看进程是否启动成功,从下图可以看到,我们已经成功启动 SecondaryNamenodeJobTrackerNameNodeDataNodeTraskTracker五个进程,而刚好这五个进程 hadoop所需要的。如果有一个进程没有启动成功,就表示整个集群没有正常工作,我们可以进入/data/software/hadoop /hadoop-1.2.1/libexec/../logs/目录下查看失败日记。

4.4:从浏览器查看hadoop信息:

我们可以从本机或者其他机器的浏览器访问hadoop

查看jobtracker信息:

http://192.168.56.101:50030/jobtracker.jsp

查看namenode信息:

http://192.168.56.101:50070/dfshealth.jsp

 

查看trasktracker信息:

http://192.168.56.101:50060/tasktracker.jsp

 

 

五、 hadoop实例

在这里我们来测试下hadoop自带的examples例子,该例子里面有个wordcount类,wordcount用来计算文件里面每一个单词 出现了多少次数。examples jar包位于hadoop安装目录下,名称叫做hadoop-examples-1.2.1.jar

 

5.1进入到bin目录中去,在当前目录下创建input文件夹,并创建文件f1.txt f2.txt f3.txt

 

5.2hadoop中创建文件夹

使用以下命令在hadoop中创建文件夹:

./hadoop dfs –mkdir input

然后我们查看在hadoop中是否已经创建该文件夹:

./hadoop dfs -put input/* input

 ./hadoop dfs -ls /user/hadoop/input

我们可以看到已经成功在hadoop中创建了input文件夹,并把文件复制到input文件夹中 

./hadoop dfs –cat input/*.txt

 可以看到,文件已经成功放入hadoop文件系统中了。 

5.3:运行examples例子

我们使用以下命令来运行wordcount程序:

./hadoop jar ../hadoop-examples-1.2.1.jar wordcount input output

注意当前目录是bin目录,而jar包在上一级目录中,则定位jar包需要用到..来表示上级目录,wordcount表示jar包中的类名,表示要执行这个类,input是输入文件夹,output是输出文件夹,必须不存在,它由程序自动创建,如果预先存在output文件夹,则会报错。 我们可以看到程序已经运行成功,接下来就是查看运行结果了。

5.4查看运行结果

我们可以查看output文件夹的内容来检查程序是否成功创建文件夹,通过查看output文件里面的part-r-00000文件的内容来检查程序执行结果:

 

我们可以看到hadoop出现一次,hello出现3次,java出现一次,world出现一次,这跟预期是一样的,说明执行成功。

 

六、 关闭hadoop进程

如果我们要关闭hadoop集群,则只需要运行stop-all.sh

./stop-all.sh

 

可以看到只有一个jps进程在运行,其它hadoop的进程都已经关闭了。

 

注记:

方便起见,修改~/.bashrc把当前目录加入到path变量中(在最后添加一行)

$source ~/.bashrc使配置生效

posted @ 2015-11-21 11:50  剑风云  阅读(140)  评论(0编辑  收藏  举报