树莓派论坛

 找回密码
 立即注册

树莓派搭建hadoop集群

八宝粥 发表于 2013-7-14 14:17:19 | 显示全部楼层 |阅读模式
本帖最后由 八宝粥 于 2013-7-14 14:24 编辑

Hadoop由Java实现的, 所以在树莓派上运行就和在其他x86平台上运行一样简单. 首先, 我们需要安装支持树莓派的JVM. 可以选用OpenJDK或者Oracle的JDK 8. 我个人推荐JDK8, 其速度稍微快些, 但是OpenJDK安装更容易些.
1. 安装Java
安装OpenJDK十分简单, 只要执行以下命令
  1. pi@raspberrypi ~ $ sudo apt-get install openjdk-7-jdk
  2. pi@raspberrypi ~ $ java -version
  3. java version "1.7.0_07"
  4. OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1+rpi1)
  5. OpenJDK Zero VM (build 22.0-b10, mixed mode)
复制代码
另外, 我们可以选择安装Oracle的JDK 8.
可以从这获得: https://jdk8.java.net/fxarmpreview/index.html
  1. pi@raspberrypi ~ $sudo tar zxvf jdk-8-ea-b36e-linux-arm-hflt-*.tar.gz -C /opt
复制代码
如果你两个都装了, 用以下命令来切换即可:
  1. sudo update-alternatives --config java
复制代码
2. 新增一个hadoop系统用户
  1. pi@raspberrypi ~ $ sudo addgroup hadoop
  2. pi@raspberrypi ~ $ sudo adduser --ingroup hadoop hduser
  3. pi@raspberrypi ~ $ sudo adduser hduser sudo
复制代码
3. 设置SSH
  1. pi@raspberrypi ~ $ su - hduserhduser@raspberrypi ~ $ ssh-keygen -t rsa -P ""
复制代码
这会生成一个匹配空密码的RSA密钥. 在与其他节点通讯时Hadoop将不再提示输入密码
  1. hduser@raspberrypi ~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
复制代码
现在设置SSH允许用刚生成的密钥访问
  1. hduser@raspberrypi ~$ ssh localhost
复制代码
现在我们就应该可以不使用密码也可以登录了
4. 安装Hadoop
我们可以从http://www.apache.org/dyn/closer.cgi/hadoop/core下载hadoop
  1. hduser@raspberrypi ~$ wget http://mirror.catn.com/pub/apache/hadoop/core/hadoop-1.1.2/hadoop-1.1.2.tar.gz
  2. hduser@raspberrypi ~$sudo tar vxzf hadoop-1.1.2.tar.gz -C /usr/local
  3. hduser@raspberrypi ~$cd /usr/local
  4. hduser@raspberrypi /usr/local$ sudo mv hadoop-1.1.2 hadoop
  5. hduser@raspberrypi /usr/local$ sudo chown -R hduser:hadoop hadoop
复制代码
现在hadoop就安装好了. 编译home目录下的.bashrc文件, 将以下内容添加到其中
  1. export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-armhf
  2. export HADOOP_INSTALL=/usr/local/hadoop
  3. export PATH=$PATH:$HADOOP_INSTALL/bin
复制代码
如果你用的是oracle的JDK, 相应的修改JAVA_HOME.
重启一下树莓派来验证安装是否成功:
  1. hduser@raspberrypi ~$ hadoop version
  2. Hadoop 1.1.2
  3. Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/
  4. branch-1.1 -r 1440782
  5. Compiled by hortonfo on Thu Jan 31 02:03:24 UTC 2013
  6. From source with checksum c720ddcf4b926991de7467d253a79b8b
复制代码
5. 配置Hadoop
注意: 这里的配置是hadoop单节点模式的最低配.
  1. 配置文件位于"/usr/local/hadoop/conf/", 我们需要修改core-site.xml, hdfs-site.xml, mapred-site.xml三个文件
复制代码
core-site.xml
  1. <configuration>
  2.   <property>
  3.     <name>hadoop.tmp.dir</name>
  4.     <value>/fs/hadoop/tmp</value>
  5.   </property>
  6.   <property>
  7.     <name>fs.default.name</name>
  8.     <value>hdfs://localhost:54310</value>
  9.   </property>
  10. </configuration>
复制代码
mapred-site.xml
  1. <configuration>
  2.   <property>
  3.     <name>mapred.job.tracker</name>
  4.     <value>localhost:54311</value>
  5.   </property>
  6. </configuration>
复制代码
hdfs-site.xml
  1. <configuration>
  2.   <property>
  3.     <name>dfs.replication</name>
  4.     <value>1</value>
  5.   </property>
  6. </configuration>
复制代码
哦了, 即将完工, 还剩最后一步.
  1. hduser@raspberrypi ~$ sudo mkdir -p /fs/hadoop/tmp
  2. hduser@raspberrypi ~$ sudo chown hduser:hadoop /fs/hadoop/tmp
  3. hduser@raspberrypi ~$ sudo chmod 750 /fs/hadoop/tmp
  4. hduser@raspberrypi ~$hadoop namenode -format
复制代码
注意:
如果选用的是JDK 8, 我们需要强制在JVM client模式下运行DataNode, 因为JDK 8还不支持server模式. 进入/usr/local/hadoop/bin目录中来编辑hadoop文件(请先备份). 使用nano进行修改的步骤如下:nano hadoop, ctrl-w输入“-server”进行查找. 我们需要删除“-server”这个参数, 然后保存退出就行了.
hadoop单节点系统就算是搭建完成了. 下面给一些有用的命令.
  1. 1. jps           // 输出本地VM标识符
  2. 2. start-all.sh  // 启动所有hadoop进程
  3. 3. stop-all.sh   // 停止所有hadoop进程
复制代码
树老大 发表于 2013-7-14 14:18:20 | 显示全部楼层
来支持兄弟,赞一个。翻译幸苦了。
八宝粥  楼主| 发表于 2013-7-14 14:26:10 | 显示全部楼层
树老大 发表于 2013-7-14 14:18
来支持兄弟,赞一个。翻译幸苦了。

发的帖子都没人回。。我在考虑把之前和以后发的帖子全部改成回复可见。。。。
树老大 发表于 2013-7-14 14:28:21 | 显示全部楼层
八宝粥 发表于 2013-7-14 14:26
发的帖子都没人回。。我在考虑把之前和以后发的帖子全部改成回复可见。。。。

哈哈,伸手党很正常的
MetalX 发表于 2013-7-14 15:22:44 | 显示全部楼层
听说OpenJDK毕竟不同于正统的SUNJDK,会出问题...
joy22 发表于 2013-7-15 16:02:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
fashoionxu 发表于 2013-7-15 16:54:44 | 显示全部楼层
感谢分享。
herowm 发表于 2013-7-20 15:19:21 | 显示全部楼层
谢谢分享,对学习集群很有帮助
alpaca 发表于 2013-7-26 15:12:20 | 显示全部楼层
顶起,回家搞一个。算个wordcount!
supercctv 发表于 2013-7-30 21:29:57 | 显示全部楼层
在rpi上跑hadoop意义何在,我没想明白这个问题,其实
hadoop集群,是数据分散,运算分散,rpi,io依靠SD卡,其性能可想而知,而其专用的arm核心,运算也不是其强项。

个人想法,欢迎拍砖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )