• 为什么不用RAID-0呢?这关于时间和雪花

    JBOD和RAID-0的诱惑 可靠性 每个磁盘是一个独特的雪花 总结 更新:单驱动器RAID-0 原文地址,机器+人工翻译。 作者:史蒂夫洛克伦 在各种Hadoop的邮件列表中反复出现的问题是:“为什么Hadoop倾向于使用一组分离的磁盘,而不是将这些磁盘组成RAID-0阵列再使用?” 这是关于时间和雪花。 JBOD和RAID-0的诱惑 在Hadoop集群,我们建议以一种已知的,蔑称为“JBOD”(Just a Box of Disks)的配置来分别对待每个磁盘。这...


  • freeIPA中kerberos跟LDAP是怎么交互的?

    freeIPA的会包含下面2个组件: LDAP Server - based on the 389 project (LDAP) http://directory.fedoraproject.org/wiki/Main_Page KDC - based on MIT Kerberos implementation http://k5wiki.kerberos.org/wiki/Main_Page 注意LDAP Server用的不是openLDAP,而是R...


  • BLOG搬到亚马逊AWS上去了

    EC2虚机需要装jekyll NGINX EC2的安全组 DNS解析 百度加速乐 之前BLOG一直使用的是github pages托管的,好处是只要git push一把就可以使用pages的jekyll功能自动编译了,并且github的CDN也不错,从大陆访问速度也还可以接受。但不好的地方是,github的pages不支持jekyll-archives,导致BLOG的tag和category都不能使用,相对来说不太方便,特别是tag。另外github把百度的爬虫给禁掉了,无法...


  • Spark支持S3作为DataSource(四):使用Spark处理存储在S3上的图片文件

    主流程 PicProcess类 图片处理 执行结果 前面三篇文章介绍了S3以及如何使用Hadoop和Spark处理S3上的文本文件,但毕竟我们使用S3的目的是为了处理非结构化文件(图片,视频)。本文介绍了如何使用Spark处理存储在S3某一个bucket里大量文件(实际我只放了很少几张图片)的方法。由于我不了解图片处理算法,所以图片的处理只是简单读取了该图片的长度、宽度、拍摄时间、拍摄地点等信息。至于更复杂的图像处理、视频处理,如车牌识别,如果图像处理算法是纯JAVA的实现,那只...


  • Spark支持S3作为DataSource(三):Spark集成S3 Service

    spark-shell Spark SQL Spark的DataSource支持S3和Swift,考虑到Ceph也提供了S3和Swift的API,而C++的效率也是Python难以望其项背的,所以Spark+Ceph(S3 Service)可能是一个比较合适的方案。 如果想试试Spark with Swift,可以参考Accessing OpenStack Swift from Spark这篇文章,这里不再涉及。 spark-shell Spark shell在启动前,需要保证HD...


  • Spark支持S3作为DataSource(二):Hadoop集成S3 Service

    Hadoop配置S3集成 Signature V2/V4 Hadoop与S3的集成可以参考官方说明。我在这里被s3/s3n/s3a给搞混淆了,实际上对于AWS来说,只有s3协议,但是hadoop由于历史原因,逐步实现了s3->s3n->s3a三种访问S3服务的协议,支持的文件也越来越大。由于我们使用的是自建S3 Service,而只有s3a支持设置endpoint,虽然号称“仍有bug”,但也只能硬着头皮上了。 Hadoop配置S3集成 修改core-site.xml,增...


  • Spark支持S3作为DataSource(一):S3及其开源实现

    S3 Ceph/Demo的安装 minio 我们需要用spark来处理图片、视频,这种数据用HDFS来存储很不合适,在我看来主要有两个问题: HDFS的block size一般为64MB或者128MB,但图片一般可能1MB左右,浪费空间 图片文件的数量可能很大,对NameNode的内存会是个挑战 针对交通卡口的图片,国内有公司是使用HBase做的存储,用Spark来处理。HBase默认一个Cell的大小是64KB,需要根据实际情况调整为1MB或者2MB。但HBase实...


  • Spark通过JDBC使用MySQL作为数据源

    假设场景:用户使用beeline或者其他JDBC客户端,通过Spark Thrift server的JDBC服务,来访问MySQL。一般来说,直接通过JDBC来访问MySQL,可以肯定其数据量不大(无论是从MySQL读还是写到MySQL),否则应该将MySQL的数据导入到Hive库中(当然可以使用create table xxx stored as parquet as select * from jdbc_table_X将数据写到hive表里,但体验并不好,基本等同于单线程)。 1.6.1版本可以...


  • Hadoop 2.7.2编译

    调试Spark支持S3作为DataSource的时候,需要改下hadoop-aws这个包,所以编译了一把Hadoop,具体步骤可以参考这个韩国人的文章,包括centos和ubuntu两个操作系统的说明。注意Hadoop编译需要cmake/make/protoc/libssl等。我的操作系统是ubuntu,直接照抄下面即可(相对韩国人我删掉了 -Drequire.snappy参数)。 # sudo apt-get install maven libssl-dev build-essential pkg...


  • CentOS 7使用nmcli配置双网卡聚合

    进入CentOS 7以后,网络方面变化比较大,例如eth0不见了,ifconfig不见了,其原因是网络服务全部都由NetworkManager管理了,下面记录下今天下午用nmcli配置的网卡聚合,网络上资料比较多,这里仅记录以备忘,更详细的说明可以参考rhel7和centos7使用nmcli命令管理配置网络。 CentOS7使用ip link代替ifconfig命令,使用teamd处理双网卡聚合,使用nmcli命令行配置网络。 实战发现team driver在重启时会有些问题,会漏掉设置混杂模式(...