一:安装JDK
hadoop 是以java语言写的,因此需要在本地计算机上预先安装JDK,安装JDK的方法这里不再详述。
二:创建hadoop用户
为hadoop创建一个专门的用户,将所有的hadoop的工作放到这个用户下。
$sudo adduser hadoop
回车后会提示输入新建用户hadoop的密码,输入密码后会有一些选项确认:
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这个信息是否正确? [Y/n]
回车保持默认即可。
三:下载hadoop
从apache hadoop 上下载稳定版本的发布包,这里采用的是hadoop-2.5.1. 下载地址:http://hadoop.apache.org/releases.html
配置~/.bashrc(待细究)
$ sudo gedit ~/.bashrc
将如下jdk的信息内容加到后面:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
四:安装配置ssh1.安装ssh
$sudo apt-get install ssh openssh-server
2.ssh无密码验证登录
1)生成当前用户的SSH公钥
$ssh-keygen -t rsa -P ""
2)将~/.ssh/id_rsa.pub添加到目标机器的~/.ssh/authorized_keys文件中
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3)使用
$ssh localhost
命令即可免密码登录到本地。
五:解压hadoop源码包
终端下利用cd命令进入到到步骤三下载的hadoop源码包所在目录,使用复制命令把hadoop源码包复制到/home/hadoop下
$cp hadoop-2.5.1.tar.gz /home/hadoop
在/home/hadoop下将hadoop-2.5.1.tar.gz解压到当前文件夹
$tar -xzvf hadoop-2.5.1.tar.gz
六:配置hadoop的hadoop-2.5.1/etc/hadoop下的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml1.配置hadoop-env.sh,命令行:
$gedit /home/hadoop/hadoop-2.5.1/etc/hadoop/hadoop-env.sh
将下面原来的:
# The java implementation to use. export JAVA_HOME=${JAVA_HOME}
将${JAVA_HOME}改为自己的jdk路径,例如我的如下:
# The java implementation to use. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67
2.配置core-site.xml
$gedit /home/hadoop/hadoop-2.5.1/etc/hadoop/core-site.xml
在/home/hadoop/hadoop-2.5.1/下新建hadoop_tmp目录,将core-site.xml ,在<configuration></configuration>之间添加信息
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.5.1/hadoop_tmp</value> <description>A base for other temporary directories.</description> </property> </configuration>
3.配置mapred-site.xml
在<configuration></configuration>之间添加如下信息
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
4.配置hdfs-site.xml
hdfs-site.xml用来配置集群中每台主机都可用,指定主机上作为namenode和datanode的目录。
在/home/hadoop/hadoop-2.5.1下创建文件夹hdfs:
$cd /home/hadoop/hadoop-2.5.1
进入后:
$mkdir hdfs$mkdir hdfs/name$mkdir hdfs/data
用gedit命令hdfs-site.xml如下:
$gedit /home/hadoop/hadoop-2.5.1/etc/hadoop/hdfs-site.xml
在该文件的<configuration></configuration>之间增加如下内容:
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.5.1/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.5.1/hdfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
保存、关闭编辑窗口
七:格式化hdfs:
cd进入hadoop-2.5.1后:
$ bin/hadoop namenode -format
八:启动hadoop
cd进入hadoop-2.5.1目录后:
$sbin/start-dfs.sh
执行 jps命令,会看到Hadoop相关的进程:
$jps
会有如下信息:
[email protected]:~/hadoop-2.5.1$ jps
11409 NameNode
11760 SecondaryNameNode
11874 Jps
11569 DataNode
浏览器打开 http://localhost:50070/,会看到hdfs管理页面。
若果想关闭hadoop可以使用:
$sbin/stop-all.sh
至此,hadoop伪分布的搭建基本完成。
各种问题总结:
(1)ssh免密码登陆配置之后失败原因之一:
.ssh及其下属子文件的权限问题:
1.首先.ssh的父目录文件权限应该是755,即所属用户的 用户文件 (/home下属的一个用户文件)。
2然后.ssh目录权限是700, 两个dsa 和 rsa的 私钥权限是600,其余文件权限是644.