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,集成了集群搭建需要的JDK和Openssh,其中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
来源:oschina
链接:https://my.oschina.net/u/1982421/blog/299791