52Pig 发表于 2014-10-7 16:09:29

Mac os10.9.4下安装Hadoop2.4.0

本帖最后由 pig2 于 2014-10-14 09:13 编辑

阅读导读:
1.mahout安装注意点有哪些?

2.如何用ant编译hadoop-eclipse-plugin-2.4.0插件?




static/image/hrline/4.gif


1.java安装java,去官网上下载,这个没什么好说的。
2.Maven2.1安装Maven先从http://maven.apache.org/download.cgi ,下载Maven 3.2.2 (Binary tar.gz),然后解压,并将解压出来的文件夹放到环境变量里面。vi .bash_profileMAVEN_HOME=/Users/ericxk/dev/maven/apache-maven-3.2.2
PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_HOME
export PATHsource .bash_profile//使配置文件生效
2.2给eclipse安装m2eclipse插件在eclipse marketplace中安装Maven Integration for Eclipse(Juno and newer)即可,这里要根据自己的eclipse版本来选择,最新的eclipse是Luna。安装好之后在preference->maven->installations里面添加maven文件夹位置,然后在user settings里面指向apache-maven-3.2.2/conf/settings.xml,在指向之前要把setting.xml这个文件里面repository的位置修改了,注意改了之后要把注释去掉才能生效。
3.Hadoop2.4.03.1下载Hadoophttp://hadoop.apache.org 到这个网站上面下载,这里下载的是hadoop-2.4.0。3.2配置Hadoop,伪分布节点要修改5个文件,分别是core-site.xml,yarn-site.xml,mapred-site.xml,hdfs-site.xml,hadoop-env.sh。网上说前4个文件在conf目录里面,但那是对应Hadoop 0.20版本,这里几个文件都在etc/hadoop/目录里面,其中hadoop2.4.0没有mapred-site.xml,可以直接修改mapred-site.xml.template。
core-site.xml,其中tmp.dir是临时目录,为了方便管理自己给他们都放在一个文件了。<property>
    <name>hadoop.tmp.dir</name>
    <value>/Users/ericxk/dev/hadoop/tmp/hadoop-${user.name}</value>
    <description>A base for other temporary directories.</description>
</property>
<property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
</property>
yarn-site.xml<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
创建和配置mapred-site.xml,可以利用mapred-site.xml.template,然后另存为mapred-site.xml。<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
hdfs-site.xml,其中name.dir和data.dir单独建立了文件夹,方便管理。<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/Users/ericxk/dev/hadoop/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/Users/ericxk/dev/hadoop/hdfs/data</value>
</property>
hadoop-env.sh,第一条语句是mac os下添加的,不添加容易出现“Unable to load realm info from SCDynamicStore”。这里的意思是设置启动hadoop时设定相关的JVM参数。export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
export HADOOP_INSTALL=/Users/ericxk/dev/hadoop/hadoop-2.4.0
export PATH=$PATH:$HADOOP_INSTALL/bin
3.3验证,运行wordcount3.3.1. 首先格式化namenode终端执行~/dev/hadoop/hadoop-2.4.0/bin/hadoop namenode -format注意问题:
[*]这个里面有个问题就是ssh连接不上,原来是host里面没有添加localhost 127.0.0.1。

3.3.2. 启动hadoop终端执行~/dev/hadoop/hadoop-2.4.0/sbin/start-dfs.sh
~/dev/hadoop/hadoop-2.4.0/sbin/start-yarn.sh
3.3.3. 查看hadoop管理界面可以在http://localhost:50070 看到hdfs管理页面,http://localhost:8088 看到hadoop进程管理页面。
3.3.4. wordcount验证
[*]dfs上创建input目录
[*]~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -mkdir -p input

[*]把hadoop目录下的README.txt拷贝到dfs新建的input里
[*]~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -copyFromLocal ~/dev/hadoop/hadoop-2.4.0/README.txt input

[*]运行WordCount
[*]hadoop jar ~/dev/hadoop/hadoop-2.4.0/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output

[*]运行完毕后,查看单词统计结果
[*]~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -cat output/*
参考文章:http://www.aboutyun.com/thread-7779-1-1.html
3.4. 配置eclipsehttps://github.com/winghc/hadoop2x-eclipse-plugin 上面有个hadoop2x-eclipse-plugin,download下来看看,发现要用ant编译。
3.4.1安装ant在官网上下载http://ant.apache.org/bindownload.cgi ,把解压出来的目录加入环境变量。export ANT_HOME=/usr/local/apache-ant-1.9.3
export PATH=${PATH}:${ANT_HOME}/bin
3.4.2编译hadoop-eclipse-plugin-2.4.0这个时候执行下面语句,前面是eclipse的路径,后面是hadoop的路径:$ ant jar -Dversion=2.4.0 -Declipse.home=/Users/ericxk/dev/eclipse -Dhadoop.home=/Users/ericxk/dev/hadoop/hadoop-2.4.0主要更改两个配置文件,hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin\build.xmlhadoop2x-eclipse-plugin-master\ivy\libraries.properties(变量配置信息存放地点)首先要更改libraries.properties,里面hadoop的版本型号2.4.0,然后是commons-lang.version为2.6,然后还要在build.xml里面修改。原因是build.xml里面有些没有使用配置变量信息,直接用的版本号,所以里面也有要修改的地方。最后还要在build.xml里面添加:lib/commons-collections-${commons-collections.version}.jar,
<copy file="${hadoop.home}/share/hadoop/common/lib/commons-collections-${commons-collections.version}.jar"todir="${build.dir}/lib" verbose="true"/>生成的插件路径在输出结果有提到,将插件放到eclipse的plugins文件夹即可。
3.4.3测试hadoop-eclipse-plugin-2.4.0这里有几点要注意:①启动hadoop守护进程②启动eclipse,在preference的hadoop map/reduce填写好hadoop路径③配置map/reduce locations,然后新建一个hadoop location。④这里的map/reduce master就填写localhost 9001,dfs master填写localhost 9000。这里分别对应的mapred-site.xml、core-site.xml中配置的地址及端口。⑤这个时候可以新建项目,然后上传模拟数据文件,最后跑一下wordcount。注意问题:
[*]hadoop fs -ls 查看文件
[*]hadoop fs -put 上传目录
[*]run的时候要新建个java application 然后在参数里面填写上输入和输出的路径。
[*]还有个问题就是,这个版本的插件十分不稳定,容易出现nullpointexception,和下面给出的网站说法是一样的,先将就着用吧。

4.Mahout4.0。(这里需要特别注意)
mahout针对的hadoop版本会出现部分api不兼容的问题。现在有个两个思路,1是继续使用2.4.0,重新编译适合2.4.0的,2是使用1.2.1,直接配合mahout0.9。

我现在决定采用第二个方法,因为第一个方法虽然hadoop1.2.1和2.4.0文件结构不一样,但是很多东西通的。配置以及eclipse的插件都没什么问题,重新按照网上教程弄弄就行。hadoop1.2.1 下载地址:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz然后参考两篇文章,下面参考网站已经给出,需要注意的是设置好几个路径,方便自己以后控制:
hadoop.tmp.dir dfs.namenode.name.dir dfs.datanode.data.dir然后还要在hadoop-env.sh中加入JAVA_HOME环境变量就行了。如果不想ssh输入密码,执行下面即可ssh-keygen-tdsa -P '' -f~/.ssh/id_dsa
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys然后hadoop eclipse插件网上也有,可以去csdn上面下载。也就不用重新编译了。
4.1 mahout0.9安装配置官网下载mahout-distribution-0.9.tar.gz即可。下载好了,将几个目录加入环境变量,然后就可以使用。在这里我贴出这篇文章所有环境变量的设置。下面这部分都是添加到~/.bash_profile里面去的。记住添加好之后要执行source ~/.bash_profile使之生效。export MAVEN_HOME=/Users/ericxk/dev/maven/apache-maven-3.2.2
export HADOOP_HOME=/Users/ericxk/dev/hadoop/hadoop-1.2.1
export ANT_HOME=/Users/ericxk/dev/apache-ant-1.9.4
export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
export MAHOUT_HOME=/Users/ericxk/dev/mahout-distribution-0.9
export MAHOUT_CONF_DIR=${MAHOUT_HOME}/conf
export PATH=${PATH}:${ANT_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_CONF_DIR}:${ANT_HOME}/bin:${MAVEN_HOME}/bin:${MAHOUT_CONF_DIR}
4.2运行mahout案例去这个网站上面下载测试数据:http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data①启动hadoop集群~/dev/hadoop/hadoop-1.2.1/bin/start-all.sh②创建测试目录testdatahadoop fs -mkdir testdata③将测试数据导入testdatahadoop fs -put ~/dev/synthetic_control.data.txt testdata④运行k-means算法hadoop fs -put ~/dev/synthetic_control.data.txt testdata⑤查看运行结果hadoop fs -ls output









页: [1]
查看完整版本: Mac os10.9.4下安装Hadoop2.4.0