Hadoop cluster on Cubieboards

人走茶凉 提交于 2019-12-04 21:42:23

             hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。 
            我用8块A10搭建了一个集群,经过测试性能还是很不错的。去官网看hadoop,这里还有一些高清的大图。打算在上面做一些应用:HDFS写读文件,mapreduce并行计算,hadoop编程.....感兴趣的朋友可以自己搭建一个简单的集群,单机版,双核版都可以,下面有些资源:

         1. Hadoop-CB定制  镜像文件这个适用于CB-A10,集成了集群搭建需要的JDKOpenssh,其中JDK的路径为exportJAVA_HOME=/lib/jdk
         2. Hadoop软件下载 hadoop 0.20.203 , 集群搭建教程 ,我见过集群搭建详细的教程,绝对要分享。



         结合CB的具体情况,搭建集群说明如下:


1.先配置 master,其他的节点大同小异。就那么几个要求:JDK环境、任意slave 和master 无密码相互登录、 hadoop参数配置。

2.完全可以在自己电脑上完成每一块CB的配置,用ssh登录 linaro 用户,我是在自己熟悉的ubuntu12.04上用vim 配置hadoop. 也可为CB 配置输入输出,直接配置CB。可以更新一下CB的vi 到 vim ,个人习惯用vim。

3.创建用户:

$sudo addgroup hadoop

$sudo adduser -ingroup hadoop hadoop

$sudo vim ./etc/sudoers :

hadoop ALL=(ALL:ALL) ALL

4.修改Hostname&添加hosts:

sudo vim ./etc/hosts

192.168.1.40 master

192.168.1.41 slave1

192.168.1.42 slave2

192.168.1.43 slave3

192.168.1.44 slave4

192.168.1.45 slave5

192.168.1.46 slave6

192.168.1.47 slave7

sudo vim ./etc/hostname

cubieboard => master 或 slave

5.静态IP设置

sudo vim ./etc/network/interfaces //资源位置

#auto lo
# iface lo inet loopback
#iface lo eth0 dhcp // 让原来配置失效
auto eth0
iface eth0 inet static
address 192.168.1.40
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255 //

sudo vim ./etc/resolvconf/resolv.conf.d/base

nameserver 192.168.1.1 //网关

sudo /etc/init.d/networking restart //重启network

6..SSH 双方无密码登录:

教程讲的很详细,归纳一下: A <=>B : A&B 的authorized_keys 要同时有双方的 id_rsa.pub

A:

ssh-keygen –t rsa –P '' // 获得密钥

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //追加

chmod 600 ~/.ssh/authorized_keys

ssh localhost //验证

scp ~/.ssh/id_rsa.pub hadoop@192.168.1.40:~/

B:

mkdir ~/.ssh

chmod 700 ~/.ssh

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

chmod 600 ~/.ssh/authorized_keys

rm –r ~/id_rsa.pub

7.JDK 路径: #export JAVA_HOME=/lib/jdk ,记得把“#”去掉。

8.参数配置:

1. core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://master:9000</value>

</property>

</configuration>

2.hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

3.mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>master:9001</value>

</property>

</configuration>

9.基本命令:

在hadoop 根目录:

bin/hadoop namenode -format //格式化

bin/hadoop dfsadmin -report //文件报告

bin/start-all.sh // 开启所有进程

bin/stop-all.sh // 结束所有进程

./bin/hadoop jar hadoop-examples-0.20.203.0.jar pi 100 100 //计算pi

10.要是节点多的话,可采用shell脚本减少工作量,希望可以看到shell脚本教程。后续会在集群上做一些应用,再更新吧。

原文作者:aaron
原文链接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=852&highlight=hadoop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!