Ubuntu下Hadoop1.2.1伪分布模式安装教程
2015-10-20 21:03
489 查看
1:软件环境准备
1.1 Hadoop:
我们使用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文件下载。
1.2 Java:
Java在这里使用的是jdk1.7版本的,当然也可以使用1.6的,下载链接:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
我们选择Linux x86的 jdk-7u79-linux-i586.tar.gz版本下载,因为我的Linux机器是32位的;如果Linux机器是64的就必须选择64位的下载,可以选择jdk-7u79-linux-x64.tar.gz;这个步骤非常重要,不同的机器必须要配置不同的jdk版本。
2:安装到Linux中
2.1创建目录:
首先我们创建一个目录:
注意:在实际安装的时候我们最好单独为运行hadoop程序建立一个账号,并赋予相关权限。在这里我直接以root身份安装。
2.2解压安装包文件:
把刚刚下载好的文件都放到个子的目录下。
首先解压java安装包文件,运行以下命令:
然后解压hadoop安装包文件,运行以下命令:
3:配置Hadoop
Hadoop环境的配置关重要,首先必须要配置java运行环境。
3.1配置java环境:
添加JAVA_HOME,CLASSPATH环境变量:
使用vim /etc/profile命令编辑profile文件,在文件末尾加上以下内容:
然后保存,退出,使用source /etc/profile使刚刚的更改立即生效。
然后使用
java version “1.7.0_79”
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)
3.2配置ssh环境:
使用以下命令设置ssh无密码连接:
测试ssh配置是否成功:
ssh localhost
Last login: Tue Oct 20 15:39:31 2015 from localhost
可以看到配置成功了,连接无需使用密码了;
3.3配置hadoop环境:
我们首先进入到/home/hadoop/hadoop-1.2.1/conf这个目录,然后可以看到haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件以及需要在完全分布模式配置的slaves和masters文件:
3.3.1配置hadoop-env.sh:
首先我们用vim hadoop-env.sh命令编辑打开hadoop-env.sh文件,找到JAVA_HOME关键字所在的行,把前面的#号去掉,然后填写实际的JAVA_HOME地址:
3.3.2配置core-site.xml:
vim core-site.xml打开core-site.xml文件,然后在configuration标签中加入以下内容:
3.3.3配置hdfs-site.xml:
在configuration标签中加入以下内容,所有不存在的目录都要预先创建:
3.3.4配置mapred-site.xml:
在configuration标签中加入以下内容:
4:启动hadoop
4.1:测试hadoop配置是否成功:
输入
Hadoop 1.2.1
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
From source with checksum xxxxxxxxxxxxx
This command was run using /home/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar
4.2:格式化namenode:
若出现错误,可尝试以下几种解决办法:
将/home/hadoop/data/appdata文件夹整个删除。然后再格式化,成功!!!
问题总结:
在对namenode格式化之前,要确保dfs.name.dir参数指定的目录不存在。
Hadoop这样做的目的是防止错误地将已存在的集群格式化了。
参考http://blog.csdn.net/shirdrn/article/details/6562292
4.3:启动hadoop进程,运行start-all.sh:
我们可以通过java的jps命令来查看进程是否启动成功,显示SecondaryNamenode,JobTracker,NameNode,DataNode,TraskTracker五个进程,而刚好这五个进程是hadoop所需要的。如果有一个进程没有启动成功,就表示整个集群没有正常工作,我们可以进入/home/hadoop/hadoop-1.2.1/libexec/../logs/目录下查看失败日记。
4.4:从浏览器查看hadoop信息:
我们可以从本机或者其他机器的浏览器访问hadoop。
查看jobtracker信息:
http://127.0.0.1:50030/jobtracker.jsp
查看namenode信息:
http://127.0.0.1:50070/dfshealth.jsp
查看trasktracker信息:
http://127.0.0.1:50060/tasktr 4000
acker.jsp
5:hadoop实例
在这里我们来测试下hadoop自带的examples例子,该例子里面有个wordcount类,wordcount用来计算文件里面每一个单词出现了多少次数。examples jar包位于hadoop安装目录下,名称叫做hadoop-examples-1.2.1.jar:
5.1:进入到bin目录中去
首先我们进入到bin目录中去:
5.2:创建文件夹
然后我们创建一个input文件夹,并且创建3个文件,给每个文件写一些内容:
5.3:在hadoop中创建文件夹
使用以下命令在hadoop中创建文件夹:
然后我们查看在hadoop中是否已经创建该文件夹:
5.4:把文件复制到hadoop中
使用以下命令把文件从Linux中复制到hadoop中:
查看文件是否在hadoop中:
查看文件内容是否一致:
5.5:从浏览器中查看文件内容
我们也可以从浏览器中浏览整个hdfs文件系统的目录,打开namenode链接:
http://127.0.0.1:50070/dfshealth.jsp
然后里面会有个Browse the filesystem超级链接,点击进去就可以看到相应的目录结构了。
5.6:运行examples例子
我们使用以下命令来运行wordcount程序:
注意当前目录是bin目录,而jar包在上一级目录中,则定位jar包需要用到..来表示上级目录,wordcount表示jar包中的类名,表示要执行这个类,input是输入文件夹,output是输出文件夹,必须不存在,它由程序自动创建,如果预先存在output文件夹,则会报错。
我们可以看到程序已经运行成功,接下来就是查看运行结果了。
5.7:查看运行结果
我们可以查看output文件夹的内容来检查程序是否成功创建文件夹,通过查看output文件里面的part-r-00000文件的内容来检查程序执行结果:
我们可以看到hadoop出现一次,hello出现3次,java出现一次,world出现一次,这跟预期是一样的,说明执行成功。
6:关闭hadoop进程
如果我们要关闭hadoop集群,则只需要运行stop-all.sh:
可以看到只有一个jps进程在运行,其它hadoop的进程都已经关闭了。
1.1 Hadoop:
我们使用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文件下载。
1.2 Java:
Java在这里使用的是jdk1.7版本的,当然也可以使用1.6的,下载链接:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
我们选择Linux x86的 jdk-7u79-linux-i586.tar.gz版本下载,因为我的Linux机器是32位的;如果Linux机器是64的就必须选择64位的下载,可以选择jdk-7u79-linux-x64.tar.gz;这个步骤非常重要,不同的机器必须要配置不同的jdk版本。
2:安装到Linux中
2.1创建目录:
首先我们创建一个目录:
mkdir /home/hadoop/,该目录存储hadoop程序文件。 mkdir /home/java,该目录存储jdk的文件。
注意:在实际安装的时候我们最好单独为运行hadoop程序建立一个账号,并赋予相关权限。在这里我直接以root身份安装。
2.2解压安装包文件:
把刚刚下载好的文件都放到个子的目录下。
首先解压java安装包文件,运行以下命令:
tar -xzvf jdk-7u79-linux-i586.tar.gz -C /home/java/
然后解压hadoop安装包文件,运行以下命令:
tar -xzvf hadoop-1.2.1-bin.tar.gz -C /home/hadoop/
3:配置Hadoop
Hadoop环境的配置关重要,首先必须要配置java运行环境。
3.1配置java环境:
添加JAVA_HOME,CLASSPATH环境变量:
使用vim /etc/profile命令编辑profile文件,在文件末尾加上以下内容:
HADOOP_INSTALL=/home/hadoop/hadoop-1.2.1/ JAVA_HOME=/home/java/jdk1.7.0_79 PATH=$JAVA_HOME/bin:$HADOOP_INSTALL/bin:$PATH CLASSPATH=$JAVA_HOME/lib export JAVA_HOME PATH CLASSPATH HADOOP_INSTALL
然后保存,退出,使用source /etc/profile使刚刚的更改立即生效。
然后使用
java –version命令,查看是否配置成功,如果成功会出现以下信息:
java version “1.7.0_79”
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)
3.2配置ssh环境:
使用以下命令设置ssh无密码连接:
ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
测试ssh配置是否成功:
ssh localhost
Last login: Tue Oct 20 15:39:31 2015 from localhost
可以看到配置成功了,连接无需使用密码了;
3.3配置hadoop环境:
我们首先进入到/home/hadoop/hadoop-1.2.1/conf这个目录,然后可以看到haddoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml这四个文件以及需要在完全分布模式配置的slaves和masters文件:
3.3.1配置hadoop-env.sh:
首先我们用vim hadoop-env.sh命令编辑打开hadoop-env.sh文件,找到JAVA_HOME关键字所在的行,把前面的#号去掉,然后填写实际的JAVA_HOME地址:
export JAVA_HOME=/home/java/jdk1.7.0_79
3.3.2配置core-site.xml:
vim core-site.xml打开core-site.xml文件,然后在configuration标签中加入以下内容:
<property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <!--fs.default.name:用来配置namenode,指定HDFS文件系统的URL,通过该URL我们可以访问文件系统的内容,也可以把localhost换成本机IP地址;如果是完全分布模式,则必须把localhost改为实际namenode机器的IP地址;如果不写端口,则使用默认端口8020。 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/data/hadoop_tmp</value> </property> <!-- hadoop.tmp.dir:Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。该目录必须预先手工创建。-->
3.3.3配置hdfs-site.xml:
在configuration标签中加入以下内容,所有不存在的目录都要预先创建:
<property> <name>dfs.data.dir</name> <value>/home/hadoop/data/appdata/hadoopdata</value> </property> <!--配置HDFS存储目录,数据存放目录,用于datanode存放数据--> <property> <name>dfs.name.dir</name> <value>/home/hadoop/data/appdata/hadoopname</value> </property> <!--用来存储namenode的文件系统元数据,包括编辑日志和文件系统映像,如果更换地址的话,则需要重新使用hadoop namenode –format命令格式化namenode--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--用来设置文件系统冗余备份数量,因为只有一个节点,所有设置为1,系统默认数量为3-->
3.3.4配置mapred-site.xml:
在configuration标签中加入以下内容:
<property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> <!—该项配置用来配置jobtracker节点,localhost也可以换成本机的IP地址;真实分布模式下注意更改成实际jobtracker机器的IP地址-->
4:启动hadoop
4.1:测试hadoop配置是否成功:
输入
hadoop version
Hadoop 1.2.1
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
From source with checksum xxxxxxxxxxxxx
This command was run using /home/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar
4.2:格式化namenode:
cd /home/hadoop/hadoop-1.2.1/bin ./hadoop namenode –format
若出现错误,可尝试以下几种解决办法:
将/home/hadoop/data/appdata文件夹整个删除。然后再格式化,成功!!!
问题总结:
在对namenode格式化之前,要确保dfs.name.dir参数指定的目录不存在。
Hadoop这样做的目的是防止错误地将已存在的集群格式化了。
参考http://blog.csdn.net/shirdrn/article/details/6562292
4.3:启动hadoop进程,运行start-all.sh:
cd /home/hadoop/hadoop-1.2.1/bin ./start-all.sh
我们可以通过java的jps命令来查看进程是否启动成功,显示SecondaryNamenode,JobTracker,NameNode,DataNode,TraskTracker五个进程,而刚好这五个进程是hadoop所需要的。如果有一个进程没有启动成功,就表示整个集群没有正常工作,我们可以进入/home/hadoop/hadoop-1.2.1/libexec/../logs/目录下查看失败日记。
4.4:从浏览器查看hadoop信息:
我们可以从本机或者其他机器的浏览器访问hadoop。
查看jobtracker信息:
http://127.0.0.1:50030/jobtracker.jsp
查看namenode信息:
http://127.0.0.1:50070/dfshealth.jsp
查看trasktracker信息:
http://127.0.0.1:50060/tasktr 4000
acker.jsp
5:hadoop实例
在这里我们来测试下hadoop自带的examples例子,该例子里面有个wordcount类,wordcount用来计算文件里面每一个单词出现了多少次数。examples jar包位于hadoop安装目录下,名称叫做hadoop-examples-1.2.1.jar:
5.1:进入到bin目录中去
首先我们进入到bin目录中去:
cd /data/software/hadoop/hadoop-1.2.1/bin
5.2:创建文件夹
然后我们创建一个input文件夹,并且创建3个文件,给每个文件写一些内容:
mkdir input echo “hello hadoop” >input/f1.txt echo “hello word” >input/f2.txt echo “hello java” >input/f3.txt
5.3:在hadoop中创建文件夹
使用以下命令在hadoop中创建文件夹:
hadoop dfs –mkdir input
然后我们查看在hadoop中是否已经创建该文件夹:
hadoop dfs –ls /user/root
5.4:把文件复制到hadoop中
使用以下命令把文件从Linux中复制到hadoop中:
hadoop dfs –put input/* input
查看文件是否在hadoop中:
hadoop dfs –ls input
查看文件内容是否一致:
hadoop dfs –cat input/f1.txt
5.5:从浏览器中查看文件内容
我们也可以从浏览器中浏览整个hdfs文件系统的目录,打开namenode链接:
http://127.0.0.1:50070/dfshealth.jsp
然后里面会有个Browse the filesystem超级链接,点击进去就可以看到相应的目录结构了。
5.6:运行examples例子
我们使用以下命令来运行wordcount程序:
hadoop jar ../hadoop-examples-1.2.1.jar wordcount input output
注意当前目录是bin目录,而jar包在上一级目录中,则定位jar包需要用到..来表示上级目录,wordcount表示jar包中的类名,表示要执行这个类,input是输入文件夹,output是输出文件夹,必须不存在,它由程序自动创建,如果预先存在output文件夹,则会报错。
我们可以看到程序已经运行成功,接下来就是查看运行结果了。
5.7:查看运行结果
我们可以查看output文件夹的内容来检查程序是否成功创建文件夹,通过查看output文件里面的part-r-00000文件的内容来检查程序执行结果:
我们可以看到hadoop出现一次,hello出现3次,java出现一次,world出现一次,这跟预期是一样的,说明执行成功。
6:关闭hadoop进程
如果我们要关闭hadoop集群,则只需要运行stop-all.sh:
cd /data/software/hadoop/hadoop-1.2.1/bin
./stop-all.sh
可以看到只有一个jps进程在运行,其它hadoop的进程都已经关闭了。
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- 从源码安装Mysql/Percona 5.5
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- ubuntu下chrome无法同步问题解决
- 详解HDFS Short Circuit Local Reads
- Ubuntu Linux使用体验