分享

Mac os10.9.4下安装Hadoop2.4.0

52Pig 2014-10-7 16:09:29 发表于 安装配置 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 44991
本帖最后由 pig2 于 2014-10-14 09:13 编辑
阅读导读:
1.mahout安装注意点有哪些?

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








1.java
安装java,去官网上下载,这个没什么好说的。

2.Maven2.1安装Maven
先从http://maven.apache.org/download.cgi ,下载Maven 3.2.2 (Binary tar.gz),然后解压,并将解压出来的文件夹放到环境变量里面。
  1. vi .bash_profile
复制代码
  1. MAVEN_HOME=/Users/ericxk/dev/maven/apache-maven-3.2.2
  2. PATH=$PATH:$MAVEN_HOME/bin
  3. export MAVEN_HOME
  4. export PATH
复制代码
  1. 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.0
3.1下载Hadoop
http://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是临时目录,为了方便管理自己给他们都放在一个文件了。
  1. <property>
  2.     <name>hadoop.tmp.dir</name>
  3.     <value>/Users/ericxk/dev/hadoop/tmp/hadoop-${user.name}</value>
  4.     <description>A base for other temporary directories.</description>
  5. </property>
  6. <property>  
  7.         <name>fs.default.name</name>  
  8.         <value>hdfs://localhost:9000</value>  
  9. </property>
复制代码

yarn-site.xml
  1. <property>
  2.     <name>yarn.nodemanager.aux-services</name>
  3.     <value>mapreduce_shuffle</value>
  4. </property>
  5. <property>
  6.     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  7.     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  8. </property>
复制代码

创建和配置mapred-site.xml,可以利用mapred-site.xml.template,然后另存为mapred-site.xml。
  1. <property>
  2.     <name>mapreduce.framework.name</name>
  3.     <value>yarn</value>
  4. </property>
复制代码

hdfs-site.xml,其中name.dir和data.dir单独建立了文件夹,方便管理。
  1. <property>
  2.     <name>dfs.replication</name>
  3.     <value>1</value>
  4. </property>
  5. <property>
  6.     <name>dfs.namenode.name.dir</name>
  7.     <value>file:/Users/ericxk/dev/hadoop/hdfs/name</value>
  8. </property>
  9. <property>
  10.     <name>dfs.datanode.data.dir</name>
  11.     <value>file:/Users/ericxk/dev/hadoop/hdfs/data</value>
  12. </property>
复制代码

hadoop-env.sh,第一条语句是mac os下添加的,不添加容易出现“Unable to load realm info from SCDynamicStore”。这里的意思是设置启动hadoop时设定相关的JVM参数。
  1. export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
  2. export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
  3. export HADOOP_INSTALL=/Users/ericxk/dev/hadoop/hadoop-2.4.0
  4. export PATH=$PATH:$HADOOP_INSTALL/bin
复制代码

3.3验证,运行wordcount
3.3.1. 首先格式化namenode
终端执行
  1. ~/dev/hadoop/hadoop-2.4.0/bin/hadoop namenode -format
复制代码
注意问题:
  • 这个里面有个问题就是ssh连接不上,原来是host里面没有添加localhost 127.0.0.1。

3.3.2. 启动hadoop
终端执行
  1. ~/dev/hadoop/hadoop-2.4.0/sbin/start-dfs.sh  
  2. ~/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目录
    1. ~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -mkdir -p input
    复制代码

  • 把hadoop目录下的README.txt拷贝到dfs新建的input里
    1. ~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -copyFromLocal ~/dev/hadoop/hadoop-2.4.0/README.txt input
    复制代码

  • 运行WordCount
    1. 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
    复制代码

  • 运行完毕后,查看单词统计结果
    1. ~/dev/hadoop/hadoop-2.4.0/bin/hadoop fs -cat output/*
    复制代码

参考文章:

3.4. 配置eclipse
[github]https://github.com/winghc/hadoop2x-eclipse-plugin 上面有个hadoop2x-eclipse-plugin,download下来看看,发现要用ant编译。

3.4.1安装ant
在官网上下载http://ant.apache.org/bindownload.cgi ,把解压出来的目录加入环境变量。
  1. export ANT_HOME=/usr/local/apache-ant-1.9.3  
  2. export PATH=${PATH}:${ANT_HOME}/bin
复制代码

3.4.2编译hadoop-eclipse-plugin-2.4.0
这个时候执行下面语句,前面是eclipse的路径,后面是hadoop的路径:
  1. $ 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里面添加:
  1. lib/commons-collections-${commons-collections.version}.jar,  
  2. <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输入密码,执行下面即可
  1. ssh-keygen  -t  dsa -P '' -f  ~/.ssh/id_dsa
  2. 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使之生效。
  1. export MAVEN_HOME=/Users/ericxk/dev/maven/apache-maven-3.2.2
  2. export HADOOP_HOME=/Users/ericxk/dev/hadoop/hadoop-1.2.1
  3. export ANT_HOME=/Users/ericxk/dev/apache-ant-1.9.4
  4. export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
  5. export MAHOUT_HOME=/Users/ericxk/dev/mahout-distribution-0.9
  6. export MAHOUT_CONF_DIR=${MAHOUT_HOME}/conf
  7. 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集群
  1. ~/dev/hadoop/hadoop-1.2.1/bin/start-all.sh
复制代码
②创建测试目录testdata
  1. hadoop fs -mkdir testdata
复制代码
③将测试数据导入testdata
  1. hadoop fs -put ~/dev/synthetic_control.data.txt testdata
复制代码
④运行k-means算法
  1. hadoop fs -put ~/dev/synthetic_control.data.txt testdata
复制代码
⑤查看运行结果
  1. hadoop fs -ls output
复制代码










没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条