Ubuntu13.10 32位系统单节点安装hadoop-2.2.0教程
注意:如果是64位的ubuntu13.10系统,需要自己编译hadoop-2.2.0的源代码,在apachehadoop官网有,包名:hadoop-2.20-src.tar.gz,编译比较麻烦,最好是32位系统,网上有编译教程,但都很难成功,建议重装32位系统。
以下教程是也适用于其他版本ubuntu32位系统,包你成功!
之所以安装hadoop2.2.0,而不安装最新的hadoop0.23.10,是因为hadoop2.2.0是稳定版,建议安装hadoop2.2.0
一.准备工作
1.创建组与用户,这里组与用户名皆位hadoop,名字可以随意取
sudo addgroup hadoop //创建组,名叫hadoop
sudo
adduser -ingroup hadoop hadoop //
在hadoop
组下创建一个用户hadoop
给用户添加权限:
sudo gedit /etc/sudoers
在root ALL=(ALL:ALL) ALL
下添加hadoop ALL=(ALL:ALL) ALL
,
然后,保存。
2.创建文件夹存放namenode,datanode,等进程的数据,很重要,必须创建,否则数据无处放,会报错
建议这样创建,具体创建如下
sudo mkdir /hadoop
sudo chown hadoop:hadoop /hadoop //设置/hadoop权限
mkdir/hadoop/dfs
mkdir/hadoop/tmp
mkdir/hadoop/mapred
mkdir/hadoop/dfs/data
mkdir/hadoop/dfs/name
mkdir/hadoop/mapred/local
mkdir/hadoop/mapred/system
3.安装jdk,去oracle官网下载jdk-7u45-linux-i586.gz,这是目前的最新版
假设下载好后,jdk-7u45-linux-i586.gz文件所在目录为:/home/amingtenfei/下载,则接下来,解压-->重命名-->移动-->配置环境变量,步骤为:
cd /home/amingtenfei/下载
tar -xvzf jdk-7u45-linux-i586.gz
解压后的文件夹名字为jdk-7.0-45,
mkdir /usr/lib/jvm
sudomv jdk-7.0-45 /usr/lib/jvm/java-7-sun
sudo gredit /etc/profile
在profile文件末尾输入
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存,关闭文件
source/etc/profile //更新文件
检查是否正确安装
java -version
javaversion "1.7.0_45"
Java(TM) SE Runtime Environment(build 1.7.0_45-b08)
Java HotSpot(TM) Client VM (build 21.1-b02,mixed mode)
出现类似结果,即为安装正确
4.安装shh服务,实现无密码登录
安装openssh-server
sudo
apt-get install
ssh
openssh-server
切换用户,切换到hadoop(这步很重要,是在给hadoop用户建立ssh登录,而不是其他用户)
su hadoop
ssh -keygen-t rsa -P ""
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
注:以上
3
步,照做就是,不再解释为什么,可以自己百度
ssh localhost //
测试一下
然后退出
二.
安装
hadoop
上
apachehadoop
官网下载hadoop-2.2.0.tar.gz,
su hadoop //
注意:以下过程必须切换到用户hadoop
cd /usr/local
sudo tar -zxf
hadoop-2.2.0.tar.gz
sudo mv hadoop-
2.2.0
hadoop
sudo chmod -R hadoop:hadoop hadoop //
将hadoop
文件夹权限赋予hadoop
用户
开始配置文件,很重要,关乎成败
配置
hadoop-env.sh
文件
sudo gedit hadoop//hadoop-env.sh
找到#exportJAVA_HOME=...,
去掉#
,然后加上本机jdk
的路径
export JAVA_HOME=/usr/lib/jvm/java-
7-sun
保存,关闭文件
cd /usr/local/hadoop/etc/hadoop
配置
core-site.xml
文件
sudo gedit core-site.xml
注意:是在<configuration> </configuration>之间加上这段代码
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
<description>temporarydirectories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
保存,关闭文件
配置hdfs-site.xml文件
sudo gedit hafs-site.xml
注意:是在<configuration> </configuration>之间加上这段代码
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/dfs/name</value>
<description>Determineswhereon the local filesystem the DFS name node should store the nametable.</description>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/dfs/data</value>
<description>Determineswhereon the local filesystem an DFS data node should store its blocks.
</description>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
保存,关闭文件
配置mapred-site.xml.template
此文件原名叫mapred-site.xml.template需修改文件名
mv mapred-site.xml.template mapred-site.xml
sudo gedit mapred-site.xml
注意:是在<configuration> </configuration>之间加上这段代码
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/hadoop/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/hadoop/mapred/local</value>
<final>true</final>
</property>
保存,关闭
配置yarn-site.xml
sudo gedit yarn-site.xml
注意:是在<configuration> </configuration>之间加上这段代码
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>shuffleservice that needsto be set for Map Reduce to run </description>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
<description>hostanemof RM</description>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<vaule>org.apache.hadoop.mapred.ShuffleHandler</vaule>
</property>
注意:网上有很多类似的配置,但都不全面,大多是没有建立数据存放目录,于是按照他的配置,你就出错了。以上配置是建立在前面(一.中第2步)已经新建的数据存放目录基础之上的,只要按照步骤来,肯定能成功。
初始化
cd /usr/local/hadoop/ //到hadoop目录
bin /hadoopnamenode -format //格式化
不一定这样,看到类似
13/12/1916:23:20 INFO common.Storage: Storage directory /hadoop/dfs/name hasbeen successfully formatted.
就算成功了。
启动hadoop
sbin /start-all.sh
//启动
然后jps,该命令包含在open-jdk包中,如果使用时,系统没有,会提示你安装,安装命令是
sudo apt-get install open-jdk-7 open-jdk-7是包名,包名也可以是其他,不一定,你按系统提示的包名安装即可。
Jps //查看进程
如果显示进程结果为:
hadoop@amingtenfei-HP-Pavilion-dv4-Notebook-PC:/usr/local/hadoop$jps
23332NodeManager
10008Jps
22976DataNode
26317SecondaryNameNode
4583NameNode
23205ResourceManager
hadoop@amingtenfei-HP-Pavilion-dv4-Notebook-PC:/usr/local/hadoop$
说明成功了。一共6进程。
接下来,可以进行具体运算了,你也可以退出,下次直接启动,无需再初始化,即直接
cd /usr/local/hadoop/
sbin /start-all.sh
然后可以
jps
查看进程
就是这样,有问题,可以发邮件,
amingtenfei@163.com ,
真诚解答你的疑问