在Ubuntu下安装并测试hadoop-1.2.1
我使用的ubuntu版本为ubuntu 12.04.5,hadoop版本为1.2.1稳定版本,java版本jdk7。
一、安装时先遇到的问题是由于ubuntu是新安装的所以ssh,java没装,安装ssh和java时提示需要运行apt-get update命令先更新,按照提示走吧。
二、java安装的是openjdk7,也是用apt-get方式装的
安装完jdk后,编辑/etc/profile,设置环境变量
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64(你安装的路径)
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
设置完环境变量后,使用source /etc/profile命令生效
三、安装hadoop
由于hadoop没有apt-get方式的安装包,所以使用wget方式安装,执行命令
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz 下载安装包
下载后mv到/opt目录,并解压,解压后进入hadoop1.2.1目录,修改环境变量及配置文件,共4个配置文件需要修改
修改/etc/profile文件
新增HADOOP_HOME=/opt/hadoop-1.2.1
在PATH中增加$HADOOP_HOME/bin
都改完后使用source /etc/profile命令生效
修改配置文件
1、hadoop-env.sh
将该文件中默认的JAVA_HOME改成环境变量中的JAVA_HOME地址
2、core-site.xml
该文件内容默认为<configuration></configuration>,改为如下
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/name</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://ubuntu:9000</value>(ubuntu为你机器的名称)
</property>
</configuration>
3、hdfs-site.xml
该文件内容默认为<configuration></configuration>,改为如下
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/data</value>
</property>
</configuration>
4、mapred-site.xml
该文件内容默认为<configuration></configuration>,改为如下
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>ubuntu:9001</value>(ubuntu为你机器的名称)
</property>
</configuration>
完成上述操作后,进入/opt/hadoop-1.2.1/bin目录,依次执行命令
hadoop namenode -format 对输出的日志进行格式化
start-all.sh 启动hadoop,启动过程中需要使用ssh进行登录,需要输入登录密码。若没有ssh则需要安装ssh后再安装,我就是遇到这个问题后apt-get安装了ssh
jps 查看启动的进程,输入jps命令后如果显示运行的程序有SecondaryNameNode, NameNode, JobTracker, TaskTracker, DataNode, Jps这6个进程则说明hadoop配置并启动成功。
--------------------------------------到此为止安装环境成功----------------------------------------------------
配置成功后,接下来进行hadoop初次体验,有几个命令
访问hdfs文件系统命令
hadoop fs -ls 查看fs下的目录
hadoop fs -mkdir folder 在fs系统下新建文件夹
hadoop fs -put somefile folder 将文件放入到新建的fs文件夹下
hadoop fs -rm folder/somefile 删除fs下的文件
hadoop fs -rmr folder/somefile 递归删除fs下的文夹(文件夹不为空)
hadoop jar some.jar Main 在hadoop下以jar方式运行某个java程序