Causion:

只有一个raspberry pi3的就随便玩玩吧,瓶颈不在在cpu, 1 G的内存实在是太少了,跑个hadoop就很辛苦了

下面是瞎折腾的过程:

oracle的arm jdk的安装过程这边就直接略过了

1. 下载hadoop的源代码,

因为raspberry 虽然是 64bit的cpu但是实际上跑的是32 位系统, 没有能够直接使用的二进制,这边下载和编译下源代码, 以便提高下运行的效率,减少下需要的内存的量。

这边下载的版本是2.7.2, 下载完成之后解压

2. 安装下必要的软件,可以参照源代码目录下的BUILDING.txt

* Maven
$ sudo apt-get -y install maven
* Native libraries
$ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
* ProtocolBuffer 2.5. (required)
$ sudo apt-get -y install libprotobuf-dev protobuf-compiler Optional packages: * Snappy compression
$ sudo apt-get install snappy libsnappy-dev
* Bzip2
$ sudo apt-get install bzip2 libbz2-dev
* Jansson (C Library for JSON)
$ sudo apt-get install libjansson-dev
* Linux FUSE
$ sudo apt-get install fuse libfuse-dev

3. 安装hadoop的maven插件

cd hadoop-maven-plugins/
mvn install

4. 由于系统上使用的protobug的版本是2.6+所以这边需要修改下默认需要的protobuf的版本

不然会报如下的错误:

[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.7.:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 2.6.1', expected version is '2.5.0' -> [Help ]

修改文件:

hadoop-project/pom.xml

修改版本为

<protobuf.version>2.6.</protobuf.version>

5. 打下arm hard-float的补丁, 不然编译native的code的时候会有soft float的编译问题

错误如下:

     [exec] Soft-float JVM detected
[exec] -- Looking for exit
[exec] -- Looking for exit - not found
[exec] -- Configuring incomplete, errors occurred!
[exec] See also "/mnt/TimeMachine/hadoop/hadoop-2.7.2-src/hCMake Error at JNIFlags.cmake:59 (message):
[exec] Soft-float dev libraries required (e.g. 'apt-get install libc6-dev-armel'
[exec] on Deadoop-common-project/hadoop-common/target/native/CMakeFiles/CMakeOutput.log".
[exec] See also "/mnt/TimeMachine/hadoop/hadoop-2.7.2-srcbian/Ubuntu)

通过下面的命令打补丁

cd hadoop-common-project/hadoop-common/src
wget https://issues.apache.org/jira/secure/attachment/12570212/HADOOP-9320.patch
patch < HADOOP-.patch

6. 编译下源代码

mvn compile -Pnative

7.  编译ok后,打包, 不做其中的测试环节,内存少,玩不起

mvn  package -Pnative -Dtar -DskipTests

打包出来的包会被放在下面的位置,拷出来解压, 配置下就能够使用了

8. 接下来就是配置和启动环节了

check下native lib是不是都好了

bin/hadoop org.apache.hadoop.util.NativeLibraryChecker
// :: INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
// :: INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /mnt/TimeMachine/hadoop/hadoop-2.7./lib/native/libhadoop.so.1.0.
zlib: true /lib/arm-linux-gnueabihf/libz.so.
snappy: true /usr/lib/libsnappy.so.
lz4: true revision:
bzip2: true /lib/arm-linux-gnueabihf/libbz2.so.
openssl: true /usr/lib/arm-linux-gnueabihf/libcrypto.so

该有的native library 都有了

我也只有一台,所以也只能配个伪集群了, namenode和datanode都配在同一台pi上,接下来的运行和配置步骤都直接参照官网上说明的进行就可以了

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

[raspberry pi3] hadoop 编译搭建和配置的更多相关文章

  1. 1.hadoop环境搭建以及配置

    提前说明一下:由于环境的配置搞得我很头疼,所以记录下来.并不是零基础,像hadoop的由来.发展史.结构.各个组件,这里都没有介绍,只是为了自己能够在忘了的时候回忆起来,所以记录下来 如何在linux ...

  2. RaspBerry Pi3 ~ 内核编译

    RaspBerryPi3-内核编译 转载注明出处:http://www.cnblogs.com/einstein-2014731/p/5985128.html 在有道云笔记的同步分享:http://n ...

  3. [raspberry pi3] aarch64 mongodb 编译和安装

    raspberry pi3官方支持是32bit的系统,使用mongodb的时候有2G数据库大小的限制,32bit的系统上数据大点基本上就可以认为不能用了,所以要装64bit的opensuse. 安装了 ...

  4. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  5. hadoop集群的搭建与配置(2)

    对解压过后的文件进行从命名 把"/usr/hadoop"读权限分配给hadoop用户(非常重要) 配置完之后我们要创建一个tmp文件供以后的使用 然后对我们的hadoop进行配置文 ...

  6. hadoop集群的搭建与配置(1)

    前言             首先hadoop是在linux系统上进行搭建的,我们首先要在自己电脑上装上虚拟机然后装linux系统,因为我们是测试:在本地虚拟机上装两个linux分别搭建好hadoop ...

  7. 使用docker搭建hadoop环境,并配置伪分布式模式

    docker 1.下载docker镜像 docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop:latest 注:此镜像为阿里云个人上传镜 ...

  8. 在 Linux 服务器上搭建和配置 Hadoop 集群

    实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...

  9. [raspberry pi3] 编译安装chromium

    想要试试arm板上使用selenium是不是可能,发现Firefox什么的不顶用,网上有提供的chrome的安装手顺,但是没有arm版本的对应的chromedriver,只能自己搞了. 这边介绍的方法 ...

随机推荐

  1. Dynamic Web Project vs Static Web Project 以及 Project facets

    Dynamic Web Project vs Static Web Project 需要用到JSP,servlet等技术的动态服务器技术,就需要DWP:对于全部都是html页面的可以使用static ...

  2. 首次db查询时延迟明显高于后面几次。

    1.如果排查到时db相关的问题的话,一般都是连接池的配置问题. 在配置好连接池时一定要注意对连接也进行初始化配置,否则可能出现连接池初始化了,但是连接并没有初始化,这样在第一次查询的时候可能会出现较大 ...

  3. systemd详解(CentOS 7)

    http://blog.51cto.com/xuding/1730952 一.init进程演变 1.init的发展 CentOS 5: SysV init,串行 CentOS 6:Upstart,并行 ...

  4. ConcurrentHashMap的扩容机制(jdk1.8)

    ConcurrentHashMap相关的文章网上有很多,而关于ConcurrentHashMap扩容机制是很关键的点,尤其是在并发的情况下实现数组的扩容的问题经常会碰到,看到这篇写的具有代表性,详细讲 ...

  5. microsoft windows network 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

    运行CMD在命令行中运行net use * /del /y 命令中断开所有连接最后,你再次访问 ,就不会有问题了. 而且可以连接多个samba用户.

  6. 使用Azure Site Recovery把VM批量搬迁到Azure

    Azure Site Recovery可以提供如下服务: Site Recovery 服务:Site Recovery 可以在站点出现故障时,让应用在其他站点继续可用,从而确保业务连续性. Site ...

  7. POJ 3728 The merchant(LCA+DP)

    The merchant Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  8. Regexp:目录

    ylbtech-Regexp:目录 1.返回顶部 1. http://www.runoob.com/regexp/regexp-tutorial.html 2. 2.返回顶部   3.返回顶部   4 ...

  9. 图解缓存淘汰算法三之FIFO

    1.概念分析 FIFO(First In First Out),即先进先出.最先进入的数据,最先出来.一个很简单的算法.只要使用队列数据结构即可实现.那么FIFO淘汰算法基于的思想是"最近刚 ...

  10. 什么是SPU、SKU、SKC、ARPU

    首先,搞清楚商品与单品的区别.例如,iphone是一个单品,但是在淘宝上当很多商家同时出售这个产品的时候,iphone就是一个商品了. 商品:淘宝叫item,京东叫product,商品特指与商家有关的 ...