本帖最后由 pig2 于 2014-10-14 09:13 编辑
阅读导读:
1.mahout安装注意点有哪些?
2.如何用ant编译hadoop-eclipse-plugin-2.4.0插件?
1.java安装java,去官网上下载,这个没什么好说的。
2.Maven2.1安装Maven
复制代码
- MAVEN_HOME=/Users/ericxk/dev/maven/apache-maven-3.2.2
- PATH=$PATH:$MAVEN_HOME/bin
- export MAVEN_HOME
- export PATH
复制代码
- source .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下载Hadoop3.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管理界面
3.3.4. wordcount验证参考文章:
3.4. 配置eclipse
3.4.1安装ant- 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.xml hadoop2x-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 -t dsa -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案例去这个网站上面下载测试数据: ①启动hadoop集群 - ~/dev/hadoop/hadoop-1.2.1/bin/start-all.sh
复制代码
②创建测试目录testdata - hadoop fs -mkdir testdata
复制代码
③将测试数据导入testdata - hadoop fs -put ~/dev/synthetic_control.data.txt testdata
复制代码
④运行k-means算法 - hadoop fs -put ~/dev/synthetic_control.data.txt testdata
复制代码
⑤查看运行结果
|