Ubuntu14.04安装Spark和Storm+实例解析

参考网站:http://www.jb51.cc/article/p-qgbrwjpi-bbe.html

spark安装参考网站(强烈推荐):http://blog.csdn.net/tian_li/article/details/49328517

Storm安装参考网站:http://www.jb51.cc/article/p-qaxvcfjg-gz.html

需要提前安装:

1、Haoop-2.7.3

2、hbase-0.98.24-hadoop2

3、Zookeeper(可以使用hbase自带的zookeeper)安装参考网址:http://www.jb51.cc/article/p-quatzdmk-bqh.html

4、scala-2.12.1 下载参考网址:http://blog.csdn.net/shengmingqijiquan/article/details/52388285

第一部分:安装Spark

1、下载Spark

$ wget -r -O ~/MyDownloads/spark-2.1.0-bin-hadoop2.7.tgz http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz

2、解压安装文件

$ tar -xf ~/MyDownloads/spark-2.1.0-bin-hadoop2.7.tgz

3、配置spark环境变量和配置文件

配置全局环境变量:

$ sudo vim /etc/profile
export SPARK_HOME=/home/hadoop/spark-2.1.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
$source /etc/profile

spark-2.1.0/conf下的:spark-env.sh(cp *.template **.sh);slaves(cp *.template **.sh)

配置:spark-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_121    #jdk安装目录
export SCALA_HOME=/usr/bin/scala                 #scala安装目录
export SPARK_MASTER_IP=10.0.83.201               #spark集群的master节点
# export SPARK_WORKER_MEMORY=1.5g   #不要乱设置 我调试了3小时找到了这个错误
# export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.7.3/etc/hadoop 这个配置也不能用否则 spark-shell 会报错
配置:slaves
CDH
CDH1
CDH2

并将两个文件scp到各个worker上

4、启动spark

$ ./start-all.sh #在这里执行 start-all.sh是开启hadoop 注意./的作用 不把Spark放入环境变量是因为start-all.sh与hadoop命令冲突

输入网址:http://10.0.83.201:8080/ 查看spark的job信息(spark默认UI端口号为8080,可以在/sbin/start-master.sh文件中修改)

查看是否安装成功

$ spark-shell --version

5、使用Spark shell。

$ ./bin/spark-shell       #scala shell
$ ./bin/pyspark            #python shell

遇到错误:

17/04/14 22:28:54 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

原因是:64位系统使用了32位文件:根本原因是 HDFS 状态是standby 或者没有开启HDFS

参考地址:http://www.aboutyun.com/thread-13073-1-1.html

6、跑个测试用例:

$ ./bin/run-example SparkPi  #会显示很多日志信息
7、显示了太多的日志信息,所以我们设置下文件log4j.properties。使得部分日志信息写到该文件中。
$ cd ./conf
$ cp log4j.properties.template log4j.properties
$ vim log4j.properties 
# 修改文件中的
# log4j.rootCategory=INFO,console 为
# log4j.rootCategory=WARN,console

第二部分:安装Storm

安装支持:ZeroMQ;JZMQ

1、安装相关支持ZeroMQ

$ sudo apt-get install gcc g++ make automake uuid-dev libtool  #zeromq支持
$ wget -r -O zeromq-4.1.3.tar.gz "http://download.zeromq.org/zeromq-4.1.3.tar.gz"  #下载zeromq,网站上下载链接链接不上。

解压文件

$ tar zxvf zeromq-4.1.3.tar.gz
执行指令
$ cd zeromq-4.1.3
$ ./configure --without-libsodium
报如下错误:错误解决办法参考网站: http://www.jb51.cc/article/p-khsndjzp-bkg.html
configure: error: in `/home/hadoop/zeromq-4.1.3':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively,you may set the environment variables sodium_CFLAGS
and sodium_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config,see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details

第一个错误是没有安装:pkg-config 执行$ sudo apt-get install pkg-config

以防万一都支持都安装了 $sudoapt-getinstallg++build-essentialgawkzlib1g-devuuid-dev libtool

第二个错误是没有安装libdonfigure,下载:libsodium-1.0.10,并在该目录下执行$ ./configure

环境变量中添加:export PKG_CONFIG_PATH=/home/hadoop/MyDownloads/zeromq-4.1.3

最后在回到zeromq-4.1.3/目录下 执行

$ ./configure --without-libsodium
$ make
$ sudo make install

2、安装JZMP

$ git clone git://github.com/nathanmarz/jzmq.git
在jzmp目录中执行
$ cd jzmq  
$ ./autogen.sh  
$ ./configure
--------$ touch src/classdist_noinst.stamp  #防止报错1
--------$ cd src/     #防止报错2  
--------$ javac -d . org/zeromq/*.java
--------$ cd ..  
$ make  
$ sudo make install

在执行$ ./autogen.sh 时报错在执行如下代码获取支持。

$ sudo apt-get install autoconf automake libtool pkg-config

3、安装storm

下载网址:http://www.apache.org/dyn/closer.lua/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz

$ wget -r -O apache-storm-1.1.0.tar.gz "http://www-eu.apache.org/dist/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz"

4、解压storm安装文件,并设置环境变量

$ tar -zxvf apache-storm-1.1.0.tar.gz
配置环境变量:
####################### Storm Env ##############################
export STORM_HOME=/home/hadoop/apache-storm-1.1.0
export PATH=$STORM_HOME/bin:$PATH

5、修改conf/storm.yaml文件

Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。默认配置在这里可以查看。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:
############################### 1.去掉下面代码的#并修改 ######################################
storm.zookeeper.servers: 
    - "10.0.83.201"
    - "10.0.83.202"
    - "10.0.83.173"  
#如果zookeeper没有用默认端口,还要改的storm.zookeeper.port
storm.zookeeper.port: 2181 # 默认端口号2181 一定要注意这里的port一定要跟zookeeper设置中的clientPort=2181对应上
########## 2.  storm.local.dir用于存少量nimbus,supervisor进程的少量状态 #######################  
storm.local.dir: "/home/hadoop/apache-storm-1.1.0/LocalData/"  # 需要提前创建该目录并给以足够的访问权限
########  3.  nimbus.host,storm集群nimbus的机器地址,各个supervisor需要知道哪个是nimbus ########
# nimbus.host: "10.0.83.201,10.0.83.202" #多个MasterNode这样写
nimbus.host: "10.0.83.201"
########## 4. UI port ###############################
ui.port: 7080 #防止与spark的UI端口号冲突
############ 5.让工作节点知道哪个是nimbus以便下载topology的jar和conf ################
nimbus.seeds: ["10.0.83.201"]

1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。
2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:
storm.local.dir: "/home/admin/storm/workdir"
3) java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为"/usr/local/lib:/opt/local/lib:/usr/lib",一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。
4) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:
nimbus.host: "111.222.333.444"
5) supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703

1) storm.zookeeper.servers: storm集群使用的zk集群地址,如果zk使用的不是默认2181的端口,那么我们还要增加 storm.zookeeper.port的配置项
2) storm.local.dir 用于存储少量数据,需要我们提前创建好目录
3) nimbus.seeds 让工作节点知道哪个是nimbus以便下载topology的jar和conf
4) supervisor.slots.ports 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。
每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。
默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口
5)这里的cluster1对应96,cluster2对应45,cluster3对应34机器,刚开始的时候我这里都是直接写的ip,
但是storm ui起来之后发现如下情况,都是localhost而且nimbus里面有两个

6、将CDHMaster主机上的Storm整个文件copy到CDH1和CDH2主机上

$ scp -r apache-storm-1.1.0/ hadoop@CDH1:/home/hadoop/
$ scp -r apache-storm-1.1.0/ hadoop@CDH2:/home/hadoop/

7、启动storm

$ bin/storm nimbus </dev/null 2<&1 &      #在 MasterNode 上开启nimbus进程
$ bin/storm supervisor </dev/null 2<&1 &   #在 WorkerNode 上开启supervisor进程
$ bin/storm ui </dev/null 2<&1 &           #在 MasterNode 上开启UI 网页访问app 注意在执行UI之前需要开启nimbus服务

一定要注意:

1) 关闭这些进程的流程是:$ jps -ml 后查看相应的进程ID 杀死进程(kill -s 9 10230)

2) jps中的core进程是 storm UI进程。想要关闭UI,kill core进程即可

3) 关闭shell,这三个进程会被杀死

最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。
以下是启动Storm各个后台进程的方式:
(1) Nimbus: 在Storm主控节点上运行"bin/storm nimbus >/dev/null 2>&1 &"启动Nimbus后台程序,并放到后台执行;
(2) Supervisor: 在Storm各个工作节点上运行"bin/storm supervisor >/dev/null 2>&1 &"启动Supervisor后台程序,并放到后台执行;
(3) UI: 在Storm主控节点上运行"bin/storm ui >/dev/null 2>&1 &"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

注意事项:
Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。
为了方便使用,可以将bin/storm加入到系统环境变量中。
至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

安装参考网址:http://www.jb51.cc/article/p-aactlzmp-sn.html

8、运行storm自带example

进入目录:apache-storm-1.1.0/examples/storm-starter/target。然后执行如下指令

$ storm jar storm-starter-1.1.0.jar org.apache.storm.starter.WordCountTopology TopoName
其中 org.apache.storm.starter 为程序WordCountTopology.java 中package的内容;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预编译版,总体过程感觉还是挺简单的,但是由于在网上找的参考资料并没有和自己遇到的情况完全一样的,所以把自己的安装过程记录下来,方便和自己一样的后来人进行安装,同时也自己作个记录留作备忘。其实预编译版的CARLA本身几乎不用什么命令行进行安装,主要步骤只有解压缩和拷贝文件,和极少的命令行安装操作。但是相关依赖以及其它的CARLA所使用的一些工具需要一起安装好,下面一起来看看安装步骤吧。_ubuntu22.04安装carla
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载Ubuntu 20 安装包_ubuntu20下载
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装rally, pip3 install -r requirements.txt 时提示如下: 说明openssl 已安装。解决:1. pip3 install --upgrade pip , 结果输出如下 ..._error: command '/usr/bin/gcc' failed with exit code 1
文章浏览阅读1.1k次。自己刚踩坑装好的W11 WSL2 miniconda_wsl2 cuda
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no)上面的命令会在~/.vnc/目录下生成一个 passwd文件。具体端口号,可以查看vncserver -list返回结果中的RFB PROT。作用是vncserver启动的时候运行这些命令,把桌面程序启动起来。如果希望用某个用户比如 demo登录,就用su切换到这个用户。桌面版默认就已安装,服务器版需要手动安装,并启动。关闭某个会话可以用下面的命令。远程地址输入ip:port。查看全部的vnc会话。_ubuntu vncserver
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,如这里使用ubuntu进行安装code-server,那使用的就是ubuntu环境,如需要go,python,java开发,需要在Ubuntu安装相关环境,创建的文件夹和项目也是在Ubuntu里面.这种方式其实在访问vscode的时候利于可以随时随地进行连接使用,且不受设备影响。
安装Ubuntu上超好用的终端Terminator。通过添加软件源、更新源、安装Terminator等步骤完成。
文章浏览阅读1.1k次,点赞83次,收藏74次。不要嫌弃Ubuntu的单调的终端界面啦,快来试试这些有意思的命令_ubuntu系统有趣的玩法
文章浏览阅读2.5k次。在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。# bs 为块的大小,count 创建多少个块。# 执行命令后,删除创建的swap目录即可。#把生成的文件转换成 Swap 文件。2、创建一个swap文件。_ubuntu20修改swap大小
文章浏览阅读2.9k次,点赞2次,收藏10次。记录RV1126的SDK编译错误,以及解决处理_command exited with non-zero status 1
文章浏览阅读1.1w次,点赞22次,收藏101次。【记录】ubuntu20.04安装nvidia显卡驱动_ubuntu20.04安装nvidia显卡驱动
文章浏览阅读727次,点赞6次,收藏27次。在嵌入式Linux开发过程中,可能遇到uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)的问题。如果你使用的是较新版本的Ubuntu,那么其**默认内核将不支持nfs2**!而**uboot仅支持到nfs2**,因此我们需要修改系统内核以及nfs配置文件,开启nfs2服务。**此问题非常棘手**,因为问题出现的时间太近,并且使用的人少。由于是2023年后才出现的问题,**chatgpt也无法解答**!本文参考网络上多篇博客资料,是解决此问题的最新办法。
ubuntu系统下安装软件的方法有多种,包括使用apt工具、deb软件包安装、源码编译安装以及通过软件中心安装。还有一种以 .run 后缀的软件包也可以在ubuntu系统下安装。具体的安装方法可以通过百度搜索来获取。
文章浏览阅读814次。本篇目的:Xubuntu如何安装pkg-configpkg-config是一个计算机软件包,用于帮助开发人员查找、定位和使用依赖库。它通常用于构建软件时,开发人员需要指定程序所依赖的外部库的位置和版本信息。使用pkg-config,开发人员可以很容易地查找、检索和导出这些依赖库的信息,从而简化了软件的构建过程。_ubuntu中怎么下载pkg-config
文章浏览阅读2k次。ubuntu创建共享文件夹_ubuntu20.04共享文件夹
文章浏览阅读2.9k次,点赞74次,收藏73次。对于有长期远程桌面需求的用户,建议将cpolar套餐升级到专业套餐,支持配置固定的公网TCP端口,且带宽也会相应的增大,支持更高效便捷的远程桌面连接Ubuntu系统。【cpolar内网穿透支持http/https/tcp协议,支持永久免费使用,不限制流量,无需公网IP,也不用进入路由器设置,操作简单。隧道创建成功后,点击左侧仪表盘的状态——在线隧道列表,查看xrdp隧道的所生成的公网TCP端口地址,复制下来。,使用cpolar内网穿透映射3389端口,生成公网TCP端口地址,实现在公网环境下,_ubuntu 局域网桌面
文章浏览阅读3.2k次。而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。在系统中,创建新的用户或称为账号,一般需要多步操作。_ubuntu创建一个新用户
文章浏览阅读1.6w次,点赞4次,收藏23次。系统的许多日志文件都存储在 /var/log 目录中。你可以使用 ls /var/log 命令来列出可用的日志文件。/var/log/Xorg.0.log:包含 X 服务器的日志信息(图形界面)。打开DASH,搜索日志或者log,打开app,这个是/var/log的界面版。这将显示系统日志的末尾,并提供有关系统崩溃和错误的信息。/var/log/kern.log:包含内核日志信息。/var/log/dmesg:包含开机时的日志信息。/var/log/syslog:包含系统日志信息。_ubuntu查看系统日志
文章浏览阅读857次。首先将source.list复制为source.list.bak备份,然后将source.list内容改为需要的镜像源列表即可。Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。本节均为 Ubuntu 20.04 的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。_apt 国内源