1.首先是安装Hadoop
从apache的官网上下载hadoop压缩包,最好是下载稳定版本的,我使用的是hadoop-1.2.0,下载之后解压。配置系统的环境变量,在我的mac上就是修改~/.bash_profile文件,添加
export JAVA_HOME="/System/Library/Framework/JavaVM.framework/Versions/1.6.0/Home"
由于Hadoop系列的工具依赖的是java1.6所以这里取1.6.0,对应的在Ubuntu或者其他系统上也应该选用1.6版本的Java,并且最好是Sun公司的版本,以免出现意想不到的麻烦。
另外为了方便起见,在~/.bash_profile中设置Hadoop的安装路径
export HADOOP_BASE="****/hadoop-1.2.0"(后边****均表示我自己的某个路径)
export PATH="${HADOOP_BASE}/bin:${PATH}"
按理说这样就能够运行Hadoop了,但是这样的话在运行hadoop namenode -format指令的时候会报错说没有设置JAVA_HOME,所以还是在HADOOP_BASE/conf/hadoop-env.sh中设置一下JAVA_HOME吧,方法跟上边提到的是一样的。
接着就可以运行start-all.sh来启动所有的守护进程,输入jps命令观察你的所有该有的节点是否都起来了(包括namenode,datanode.secondnamenode,jobtracker和tasktracker),如果有没起来的要到日志里看一下原因。
另外,针对mac版本还会存在的一个问题是在 执行hadoop fs等命令时会报错“Uable to load realm info from ....”这个是所有mac上装载的一个共有问题,按照http://stackoverflow.com/questions/7134723/hadoop-on-osx-unable-to-load-realm-info-from-scdynamicstore里边的方法即可解决。
下边给出关于hdfs伪随机分布的配置
要修改的部分主要有三个:
<!--core-site.xml-->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
默认的端口是8020,我这里用的是9000。
<!--hdfs-site.xml-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
这里因为是伪随机分布,只能起1个备份。
<!--mapred-site.xml>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
这个的默认端口是8021
之后你可以试一下hadoop fs -copyFromLocal命令看看还有没有什么问题
2. 安装Eclipse
自己从网上下载个eclipse,我用的版本是3.7,不知道最新的4.2在装插件的时候有没有问题
然后就是编译插件了,网上又很多提供的编译好之后的jar包,但是由于我的是mac,可能平台兼容性的问题,这些jar包都不能使用,所以不得不自己编译。我也建议大家自己编译,不是很费事。
参照这个就OK http://www.cnblogs.com/chenying99/archive/2013/05/31/3109566.html
之后把生成的jar包放入eclipse的plugin中,然后重新打开eclipse,在你新建工程的时候就会发现有个新的选项就是mapreduce project,从window>open perspective>other中打开MapReduce,会发现IDE下边中出现了Map/Reduce Location界面,右键点击新建一个Location,这里注意端口的设置要和你之前的配置文件里一致,然后在左侧project explore里点击DFS Location就能一直打开到你的HDFS文件系统。
然后你就新建个MapReduce工程,用wordcount.java测试一下吧,这个文件可以从hadoop包里的example中找到。
其余的不细说了,网上都有
3 .HBase的安装
跟Hadoop一样,下载jar包解压,在~/.bash_profile里设置环境变量和安装路径等,同样的也要修改hbase-env.sh这个文件,配置JAVA_HOME和
export HBASE_OPTS="-XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true - Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kd c1.ox.ac.uk"
以避免提到的出现在Hadoop中的问题。
start-hbase.sh启动hbase,用jps看看是否所有进程都起来了,参照hbase官方文档中关于伪分布式的配置。另外要注意的将hbase的lib文件夹下的hadoop-core-jar用自己的hadoop版本的jar包替换掉,否则HMaster会起不来。
hbase shell命令,用list和create 'test,'cf'等命令测试一下。OK!
4。如何在Eclipse里编写HBase工程
将你的HBase目录下的两个jar包和lib文件目录下的所有jar包引用到工程里,就可以像普通的Jar包使用了。
其他的注意事项
1. 个人暂时配置的是伪分布环境,在这个环境下使用start-hbase.sh命令启动的时候必要容易出现的问题是HMaster起来了之后就又关闭了,可能是zookeeper理应比HBase早启动的原因,所以最好使用hbase-demeaon什么的那条命令按顺序启动。(不知道这种方式是否管用,或者上述问题的造成原因是否有其他)。
2.如果Hadoop的rootdir的配置的端口不是默认的8020的时候,要注意在访问HDFS文件的时候如果写绝对路径的话是hdfs://localhost:9000(就是你自己配的端口号),否则会出现60020端口访问不到的问题。
暂时就这样!