Quantcast
Channel: 碳基体
Viewing all articles
Browse latest Browse all 75

mac安装hadoop+Eclipse开发环境

$
0
0
前言:
实在受够了在两台机器跑来跑去的操作了(在windows上用eclipse编辑源码(java渣不用IDE会死掉)后编译导出jar包(实在慢),再上传到ubuntu上hadoop运行的悲催步骤,虽然后续想到了命令行编译(速度上来了)的方法,但仍需要在两台机器来回切换,很轴的我,决定找一种不用两台机器切换的一站式开发方法,因此有了本文。

总的环境配置:

OS:mac os x 10.10.3 
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
Eclipse 4.4.2
Hadoop 2.7
Xcode 6.3.2
homebrew 


安装运行过程如下

一、预装依赖环境
1. JAVA

/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/

2. homebrew

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

3. ssh环境

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

二、安装及配置hadoop
1. 安装hadoop

brew install hadoop

回显,安装成功,注意hadoop安装目录 /usr/local/Cellar/hadoop/2.7.0/libexec



==> Downloading https://www.apache.org/dyn/closer.cgi?path=hadoop/common/hadoop-
==> Best Mirror http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.0/hadoo
######################################################################## 100.0%
==> Caveats
In Hadoop's config file:
  /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/hadoop-env.sh,
  /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/mapred-env.sh and
  /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/yarn-env.sh
$JAVA_HOME has been set to be the output of:
  /usr/libexec/java_home
==> Summary
?  /usr/local/Cellar/hadoop/2.7.0: 6297 files, 324M, built in 2.3 minutes

2. 配置hadoop
 (1)配置hadoop-env.sh

vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/hadoop-env.sh

编辑

#export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
export HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
export HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.conf=/dev/null"

(2)配置yarn-env.sh

vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/yarn-env.sh

编辑

YARN_OPTS="$YARN_OPTS -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

(3)配置core-site.xml

vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/core-site.xml

编辑

   <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
  </property>

(4)配置hdfs-site.xml

vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/hdfs-site.xml

编辑

   <property>
            <name>dfs.replication</name>
            <value>1</value>
   </property>

(5)配置mapred-site.xml

cp /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/mapred-site.xml.template /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/mapred-site.xml
vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/mapred-site.xml

编辑

   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>

(6)配置yarn-site.xml

vim /usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/yarn-site.xml

编辑

   <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
   </property>


3. 格式化dfs

rm -rf /tmp/hadoop-tanjiti 如果曾经安装过,需要清除
hadoop namenode -format


4.启动
启动hdfs

start-dfs.sh

启动mapreduce

 start-yarn.sh

检查启动情况

jps

结果如下

17632
20464 NameNode
20991 Jps
20665 SecondaryNameNode
20870 ResourceManager
20552 DataNode
20967 NodeManager


5. 检查mapreduce是否能正常运行
运行hadoop自带实例

hadoop jar /usr/local/Cellar/hadoop/2.7.0/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar pi 2 5


我们可以通过以下web接口查看mapreduce任务

http://localhost:8088 Cluster Status 这个接口非常有用

http://localhost:50090 secondaryNamenode
三、安装eclipse+hadoop开发环境
1. 安装eclipse
2. 安装fatjar 插件

http://kurucz-grafika.de/fatjar

如果报错不兼容,安装Eclipse 2.0 style plugin support
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
3. 安装 及配置 hadoop 2x eclipse 插件
(1)下载对应版本的jar包放在 eclipse plugins 安装目录下,重启eclipse即可
(2)配置hadoop安装目录
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
(3)打开mapreduce工作空间
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 (4)添加hadoop地址
按红色框框操作
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
Location name随便填
DFS Master 端口为 hdfs://localhost:9000 地址
 mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
添加成功后,可以在DFS Locations看到HDFS里的内容
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 
  三、实战-仍然使用WordCount例子
1. 编辑源码
添加蓝框里的文件,源码加配置文件(如果不添加配置文件,会报各种错误)
配置文件

/usr/local/Cellar/hadoop/2.7.0/libexec/etc/hadoop/

下的

core-site.xml hdfs-site.xml log4j.properties

mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
  
2. 添加WordCount的数据源文件
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
选择文件后,reconnect 
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 可以看到添加的数据文件
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 
3. 运行
指定输入文件路径与输出文件路径并运行
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体


mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 
运行结果如下,同样reconnect一下就能看到结果了
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
  
 四、问题纪录
在mac上安装hadoop开发环境,几乎花费了一个周六,当然大多数时间都是由于家里的网络太破了处于等待下载中。
在这过程中,顺便把mac操作系统更新了(有一年多没更新了),xcode、homebrew都更新了,整理系统与整理衣橱一样的让人开心,当然也遇到了一堆的问题
1. data node无法启动——刚开始以为是java不兼容的原因,查了很久,后来发现删除hdfs遗留文件,重新格式化,重新启动就可以了
2. fatjar插件不兼容——安装Eclipse 2.0 style plugin support
3. eclipse-hadoop插件没法更新HDFS的内容——重启eclipse,reconnect
4. eclipse运行找不到输入文件路径——添加配置文件
5. 讨厌的警告,虽然不影响实际运行,但总和镜子上的污点一样让人忍不住要擦掉 (在这个问题上花费了很多时间)

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

查看Native Libraries Guard官方文档,结果说不支持Mac OS X平台
mac安装hadoop+Eclipse开发环境 - 碳基体 - 碳基体
 不死心,网上查方法(hadoop 2.4的解决方案),需要patch后重新编译,可惜编译没通过,于是放弃了,望成功的同学告知


参考:

Viewing all articles
Browse latest Browse all 75

Trending Articles