Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18311
  • 博文数量: 4
  • 博客积分: 128
  • 博客等级: 入伍新兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-07 19:42
文章分类

全部博文(4)

文章存档

2012年(4)

我的朋友

分类: 服务器与存储

2012-12-12 00:35:18

这两天在Ubuntu Server 12.04下搭建了两个套分布式存储环境:hadoop和glusterfs。

分别简单测试了一下性能,说是性能测试,其实离真实性能测试还有不少距离,但是基本能了解这两种架构大概能跑到多少的数据心里有底了。

首先规划节点:

namenode:192.168.4.175

datanode:192.168.4.176-178 三台

测试机器:192.168.4.200

配置这5台机器的/etc/hosts,使每台设备都能相互通过IP和主机名进行解析。


ssh的配置,因为namenode需要通过ssh key认证,在运行中对从节点进行控制,所以通过生成的rsa key文件进行认证:

$ ssh-keygen -t rsa   一路enter 到底

$ cd /root/.ssh/

$ cp id_rsa.pub authorized_keys  并将authorized_keys 拷贝到规划中的每台节点上的相同用户目录下。


安装java默认环境:

$ apt-get install default-jdk

安装hadoop:

apt-get install hadoop 或者 dpkg -i hadoop_1.1.1-1_x86_64.deb

这样安装的hadoop配置文件存放在/etc/hadoop/下,其中最重要的四个:

mapred-site.xml,core-site.xml,hadoop-env.sh,hdfs-site.xml以及masters和slaves设置name节点和数据节点。

hadoop-env.sh主要设置一下java的环境变量:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64


core-site.xml  设置了访问端口和hadoop自身运行的tmp文件目录:

fs.default.name

hdfs://namenode:8020


hadoop.tmp.dir

/var/lib/hadoop-0.20/cache/${user.name}


mapred-site.xml   设置了job节点:

mapred.job.tracker

name node:8021


hdfs-site.xml   设置了hdfs文件系统的部署配置:

dfs.replication

3

dfs.permissions

false

dfs.datanode.data.dir.perm

755

dfs.name.dir

/hadoop-n

dfs.data.dir

/hadoop-d


masters:

nematode

slaves:

三个数据节点

将以上6个配置文件都拷贝到环境的每台机器上;


在namenode上运行hadoop:

$ hadoop namenode -format

$ start-all.sh


$ hadoop fs -put /dev/zero hd1    测试写入

这样hadoop就运行成功了


测试hadoop fuse

$ apt-get install ant

$ apt-get install libfuse-dev

$ apt-get install g++ make

$ apt-get install cmake

$ apt-get install maven2

$ apt-get install autotool

$ apt-get install autoconf

$ apt-get install libtool     这个包含 autoreconf

在hadoop源码目录下:

$ ant compile-contrib -Dlibhdfs=1 -Dfusedfs=1

autoconf不能依赖,可能会有产生如下编译语法错误,将链接的库生成到了目标文件前面。

$ gcc -Wall -g -Wall -O3 -o fuse_dfs fuse_dfs.o fuse_options.o fuse_trash.o fuse_stat_struct.o fuse_users.o fuse_init.o fuse_connect.o fuse_impls_access.o fuse_impls_chmod.o fuse_impls_chown.o fuse_impls_create.o fuse_impls_flush.o fuse_impls_getattr.o fuse_impls_mkdir.o fuse_impls_mknod.o fuse_impls_open.o fuse_impls_read.o fuse_impls_release.o fuse_impls_readdir.o fuse_impls_rename.o fuse_impls_rmdir.o fuse_impls_statfs.o fuse_impls_symlink.o fuse_impls_truncate.o fuse_impls_utimens.o fuse_impls_unlink.o fuse_impls_write.o -L/home/petru/work/ubeeko/hadoo.apache.org/0.23/hadoop-common/hadoop-hdfs-project/hadoop-hdfs/build/c /Linux-i386-32/lib -lhdfs 

-L/lib -lfuse -L/usr/local/java/jdk/jre/lib/i386/server -ljvm

手动调整顺序编译申城fuse_dfs文件


需要修改一下此中的fuse_dfs执行路径和java,hadoop库路径,很重要

export OS_ARCH=amd64

export OS_BIT=64

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

export CLASSPATH=,:$JAVA_HOME/lib

export HADOOP_HOME=/opt/hadoop-1.1.1

export HADOOP_CONF_DIR=/etc/hadoop

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/$OS_ARCH/server:$HADOOP_HOME/c++/Linux-$OS_ARCH-$OS_BIT/lib:/usr/local/lib:/usr/lib


$ chmod +x /opt/hadoop-1.1.1/src/contrib/fuse-dfs/src/fuse_dfs

$ chmod +x /opt/hadoop-1.1.1/src/contrib/fuse-dfs/src/fuse_dfs_wrapper.sh   

$ ln -sf /opt/hadoop-1.1.1/src/contrib/fuse-dfs/src/fuse_dfs_wrapper.sh /usr/local/bin

$ ln -sf /opt/hadoop-1.1.1/src/contrib/fuse-dfs/src/fuse_dfs /usr/local/bin

$ fuse_dfs_wrapper.sh dfs://192.168.40.175:9000 /hadoop/fuse-dfs/ -d


这样就可以对挂载目录进行写入测试了。


参考文章:

    参数列出了比较详细的一些。

利用Cloudera实现Hadoop     比较全面的安装文档

  这个太全了。。。。

阅读(2286) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~