转自:http://blog.csdn.net/jpiverson/article/details/9092977
由于工作的需要要学习一下hadoop和hbase,记录下学习的过程:
一,准备工作
1,在官方网站上下载hadoop-1.2.0.tar.gz和jdk-6u45-linux-i586.bin
2,用VirtualBox新建两台虚拟机,系统是ubuntu12.04,与主机(192.168.10.203)桥接,IP分别设置192.168.10.204和192.168.10.205。
3,添加hadoop组和hadoop组下面的hadoop用户:
添加hadoop组:sudo addgroup hadoop
添加hadoop用户:sudo adduser -ingroup hadoop hadoop
添加hadoop用户权限:打开/etc/sudoers,在root ALL=(ALL:ALL) ALL 下面添加hadoop ALL=(ALL:ALL) ALL
4,安装JDK http://blog.csdn.net/jpiverson/article/details/9093315
5,安装SSH http://blog.csdn.net/jpiverson/article/details/9093409
6,安装VIM:apt-get install vim
二,安装本地hadoop
1、将hadoop-1.2.0.tar.gz复制到安装目录 /usr/local/下:sudo cphadoop-1.2.0.tar.gz /usr/local
2、解压hadoop-1.2.0.tar.gz:sudo tar -zxf hadoop-1.2.0.tar.gz
3、将解压出的文件夹改名为hadoop:sudo mv hadoop-1.2.0.tar.gz hadoop
4、将该hadoop文件夹的属主用户设为hadoop:sudo chown -R hadoop:hadoop hadoop
5、打开hadoop/conf/hadoop-env.sh文件:vim /usr/local/hadoop/conf/hadoop-env/sh
6、配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径)
7、打开conf/core-site.xml文件,编辑如下:
<?xml version="1.0"?>
< ?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>
< /configuration>
8、打开conf/mapred-site.xml文件,编辑如下:
<?xml version="1.0"?>
< ?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
< !-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
9、打开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了。
11、打开conf/slaves文件,添加作为slave的主机名,一行一个。作为单机版,这里也只需填写localhost就Ok了。
三,运行本地hadoop
1、进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作:
cd /usr/local/hadoop/bin
./hadoop namenode -format
如果没有报错且提示成功,就说明你的hdfs文件系统格式化成功了。
2、启动bin/start-all.sh:
cd /usr/local/hadoop/bin
./start-all.sh
3、检测hadoop是否启动成功
如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机
注:
安装过程中注意权限的问题,安装步骤安装基本没有问题,如果出现问题查看logs下面的日志会很有帮助
遇到问题总结
1,权限问题,系统后生成的logs文件夹不是属于hadoop用户的,导致启动失败,修改过来即可。
2,如果启动没有Namenode,则需要执行./hadoop namenode -format命令
3,如果没有Datanode,查看日志原因:
2013-06-14 10:49:30,169 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /usr/local/hadoop/data1: namenode namespaceID = 350218804; datanode namespaceID = 1870727844
错误提示namespaceIDs不一致。
原因:每次namenode format会重新创建一个namenodeId,而/urs/local/hadoop/data1下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有晴空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下 的所有目录.