申请的电脑还没批下,只得用现有的Laptop装上ubuntu12.04搭了一个伪分布式的Hadoop系统,部分安装过程至今尚未搞清,不过还好不影响正常的运行和程序调试
系统:ubuntu12.04 64位版 Hadoop1.0.3
以下转一篇写的算是很清楚的安装日志,不过在实际过程中还是出现了一堆问题,补充在最后
一. 在Ubuntu下创建hadoop用户组和用户;
1. 创建hadoop用户组;
1 sudo
addgroup hadoop
如图:
**2. **创建hadoop用户;
1 sudo
adduser -ingroup hadoop hadoop
如图:
**3. **给hadoop用户添加权限,打开/etc/sudoers文件;
1 sudo
gedit ``/etc/sudoers
按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。
在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL,
1 <font size="2" face="微软雅黑">hadoop  ALL=(ALL:ALL) ALL</font>
如图:
三. 在Ubuntu下安装JDK
使用如下命令执行即可:
1 sudo
apt-get ``install
openjdk-6-jre
如图:
四. 修改机器名
每当ubuntu安装成功时,我们的机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。
**1. **打开/etc/hostname文件;
1 sudo
gedit ``/etc/hostname
2. 将/etc/hostname文件中的ubuntu改为你想取的机器名。这里我取"dubin-ubuntu"。 重启系统后才会生效。
五. 安装ssh服务
这里的ssh和三大框架:spring,struts,hibernate没有什么关系,ssh可以实现远程登录和管理,具体可以参考其他相关资料。
安装openssh-server;
1 sudo
apt-get ``install
ssh
openssh-server
这时假设您已经安装好了ssh,您就可以进行第六步了哦~
六、 建立ssh无密码登录本机
首先要转换成hadoop用户,执行以下命令:
1 su
- hadoop
如图:
ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
**1. **创建ssh-key,,这里我们采用rsa方式;
1 ssh``-keygen -t rsa -P ``""
如图:
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)
**2. **进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的;
cd
~/.``ssh
cat
id_rsa.pub >> authorized_keys
如图:
(完成后就可以无密码登录本机了。)
**3. **登录localhost;
1 ssh
localhost
如图:
( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)
**4. **执行退出命令;
1 <font size="2" face="微软雅黑">exit</font>
七. 安装hadoop
我们采用的hadoop版本是:hadoop-0.20.203(http://www.apache.org/dyn/closer.cgi/hadoop/common/ ),因为该版本比较稳定。
**1. **假设hadoop-0.20.203.tar.gz在桌面,将它复制到安装目录 /usr/local/下;
1 sudo
cp
hadoop-0.20.203.0rc1.``tar``.gz ``/usr/local/
**2. **解压hadoop-0.20.203.tar.gz;
cd
/usr/local
sudo
tar
-zxf hadoop-0.20.203.0rc1.``tar``.gz
**3. **将解压出的文件夹改名为hadoop;
sudo
mv
hadoop-0.20.203.0 hadoop
**4. **将该hadoop文件夹的属主用户设为hadoop,
sudo
chown
-R hadoop:hadoop hadoop
**5. **打开hadoop/conf/hadoop-env.sh文件;
sudo
gedit hadoop``/conf/hadoop-env``.sh
**6. **配置conf/hadoop-env.sh(找到#export JAVA_HOME=…,去掉#,然后加上本机jdk的路径);
<font size="2" face="微软雅黑">export JAVA_HOME=/usr/lib/jvm/java-6-openjdk</font>
**7. **打开conf/core-site.xml文件;
sudo
gedit hadoop``/conf/core-site``.xml
编辑如下:
<?``xml
version``=``"1.0"``?>
<?``xml-stylesheet
type``=``"text/xsl"
href``=``"configuration.xsl"``?>
<font size="2" face="微软雅黑"></font>
<font size="2" face="微软雅黑"><!-- Put site-specific property overrides in this file. --></font>
<font size="2" face="微软雅黑"></font>
<``configuration``>
<``property``> 
<``name``>fs.default.name</``name``> 
<``value``>[hdfs://localhost:9000](9000)</``value``>  
</``property``> 
</``configuration``>
**8. **打开conf/mapred-site.xml文件;
sudo
gedit hadoop``/conf/mapred-site``.xml
编辑如下:
<?``xml
version``=``"1.0"``?>
<?``xml-stylesheet
type``=``"text/xsl"
href``=``"configuration.xsl"``?>
<font size="2" face="微软雅黑"></font>
<font size="2" face="微软雅黑"><!-- Put site-specific property overrides in this file. --></font>
<font size="2" face="微软雅黑"></font>
<``configuration``> 
<``property``>  
<``name``>mapred.job.tracker</``name``> 
<``value``>localhost:9001</``value``>  
</``property``> 
</``configuration``>
**9. **打开conf/hdfs-site.xml文件;
sudo
gedit hadoop``/conf/hdfs-site``.xml
编辑如下:
<``configuration``>
<``property``>
<``name``>dfs.name.dir</``name``>
<``value``>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</``value``>
</``property``>
<``property``>
<``name``>dfs.data.dir</``name``>
<``value``>/usr/local/hadoop/data1,/usr/local/hadoop/data2</``value``>
</``property``>
<``property``>
<``name``>dfs.replication</``name``>
<``value``>2</``value``>
</``property``>
</``configuration``>
10. 打开conf/masters文件,添加作为secondarynamenode的主机名,作为单机版环境,这里只需填写 localhost 就Ok了。
sudo
gedit hadoop``/conf/masters
11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。作为单机版,这里也只需填写 localhost就Ok了。
sudo
gedit hadoop``/conf/slaves
八. 在单机上运行hadoop
**1. **进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,
cd
/usr/local/hadoop/
bin``/hadoop
namenode -``format
**2. **当你看到下图时,就说明你的hdfs文件系统格式化成功了。
**3. **启动bin/start-all.sh
bin``/start-all``.sh
**4. **检测hadoop是否启动成功
<font size="2" face="微软雅黑">jps</font>
如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机版环境配置好了!
如下图:
基本上,我的Hadoop安装参考了以上日志的大部分,其中出现的问题解决如下:
1. 第一次安装时我的ubuntu系统存在一个用户,hadoop用户为后添加,结果在用户的权限上出了很多问题,始终无法解决,后来把ubuntu重装,hadoop设成唯一的用户,问题解决
2. 此日志中使用了open java JDK,其它很多日志提出使用java公司的JDK更好,我在最后的安装中使用了java的JDK7, openjdk为ubuntu自带,免安装,也基本不用配置,java jdk需要自行下载安装配置,比较繁琐,放在另一篇日志中详谈
3. Ubuntu下测试ssh时使用ssh localhost 命令,出现错误提示connect to host localhost port 22:Connection refused
造成这个错误的原因可能是ssh-server未安装或者未启动。ubuntu默认安装openssh-client,但是木有安装server
运行 ps -e | grep ssh,查看是否有sshd进程
如果没有,说明server没启动,通过 /etc/init.d/ssh -start 启动server进程,如果提示ssh不存在 那么就是没安装server
通过 sudo apt-get install openssh-server命令安装即可
4. jps命令无效
重启后解决
<
p>5. ssh 如有问题,基本上是要手动设置不同文件和文件夹的权限