大数据环境安装

  • VirtualBox虚拟机下载地址:https://www.virtualbox.org/wiki/Downloads
  • Vagrant下载地址:https://www.vagrantup.com/downloads.html
  • 图形界面操作步骤可参考:http://drupalchina.cn/book/export/html/6389
  • ubantu:https://ubuntu.com/#download

一、VirtualBox创建虚拟机(其他步骤为默认)

修改好需要存放的地址

将内存大小调整到绿色

属于动态分配,所以不用太担心占用空间,避免之后空间不足

选择下载的Ubantu系统

设置网卡为桥接网卡,利用Ping命令进行检测


二、Vagrant创建虚拟机

2.1 利用命令导入box

根据官网提供的boxes命令去创建虚拟机,参考网址https://app.vagrantup.com/ubuntu/boxes/trusty64

vagrant init ubuntu/trusty64
vagrant up

如果下载较慢,可以用迅雷下载,观察vagrant up执行后的语句,发现有下载地址,添加到迅雷下载

 Downloading: https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20190514.0.0/providers/virtualbox.box

下载完成后,添加box,注意下载后文件的路径,然后进行查看导入是否成功

vagrant box add --name ubuntu/trusty64 D:\VirtualBoxVMS\trusty-server-cloudimg-amd64-vagrant-disk1.box

导入成功后再执行vagrant up语句

2.2 成功后利用xshell连接

成功后,可以看到VirtualBox中有对应的虚拟机

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...default: Adapter 1: nat
==> default: Forwarding ports...default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...default: SSH address: 127.0.0.1:2222default: SSH username: vagrantdefault: SSH auth method: private keydefault: Warning: Connection reset. Retrying...default: Warning: Connection aborted. Retrying...default: Warning: Remote connection disconnect. Retrying...default: Warning: Connection reset. Retrying...default: Warning: Connection aborted. Retrying...default:default: Vagrant insecure key detected. Vagrant will automatically replacedefault: this with a newly generated keypair for better security.default:default: Inserting generated public key within guest...default: Removing insecure key from the guest if it's present...default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...default: The guest additions on this VM do not match the installed version ofdefault: VirtualBox! In most cases this is fine, but in rare cases it candefault: prevent things such as shared folders from working properly. If you seedefault: shared folder errors, please make sure the guest additions within thedefault: virtual machine match the version of VirtualBox you have installed ondefault: your host and reload your VM.default:default: Guest Additions Version: 4.3.40default: VirtualBox Version: 6.0
==> default: Mounting shared folders...default: /vagrant => D:/VirtualBoxVagrant

说明了虚拟机中开放了22端口转发成本机的2222端口,如果使用Xshell连接时,需要连接的是2222端口,主机连接为127.0.0.1:2222,校验方式为public key

三、VagrantFile详细配置虚拟机

在Virtual Box图形化界面中进行修改配置,如果虚拟机进行重启,依旧会根据VagrantFile里面的配置重新启动,所以需要修改此文件去调整配置

3.1 虚拟机基于哪个box
config.vm.box = "ubuntu/trusty64"
3.2 是否每次启动去校验官网仓库
config.vm.box_check_update = false
3.3 Network配置

guest代表虚拟机端口为80,host代表对应的宿主机端口为8080,这里代表只有127.0.0.1的8080端口可以访问虚拟机的80端口

config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

设置虚拟机对应的静态IP

config.vm.network "private_network", ip: "192.168.33.10"
3.4 当前目录对应虚拟机目录
config.vm.synced_folder "../data", "/vagrant_data"

这里修改目录,并在本地创建对应的目录,虚拟机会自动创建vm_test

config.vm.synced_folder "./local_test", "/vm_test"
3.5 显示配置与内存
  # config.vm.provider "virtualbox" do |vb|#   # Display the VirtualBox GUI when booting the machine#   vb.gui = true##   # Customize the amount of memory on the VM:#   vb.memory = "1024"# end

这里进行如下修改,内存设置为2G,双核CPU

   config.vm.provider "virtualbox" do |vb|# Display the VirtualBox GUI when booting the machine# vb.gui = true# Customize the amount of memory on the VM:vb.memory = "2048"vb.cpus = 2end
3.6 自动执行shell脚本
  # config.vm.provision "shell", inline: <<-SHELL#   apt-get update#   apt-get install -y apache2# SHELL
3.7 重新启动
vagrant reload

三、安装Docker与Docker-compose

3.1 安装命令
sudo apt-get install docker.io
3.2 查看版本
docker --version
3.3 引入hello world镜像
sudo docker pull hello-world
3.4 运行hello world镜像
sudo docker run hello-world
3.5 解决sudo问题

需要重启电脑

sudo gpasswd -a vagrant docker
3.6 安装docker-compose

链接:https://docs.docker.com/compose/install/,选择Linux版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3.7 将docker-compose变成可执行文件
sudo chmod +x /usr/local/bin/docker-compose

四、安装ZSH

4.1 安装
sudo apt-get install zsh
4.2 将ubantu默认的交互软件shell修改为zsh
chsh -s $(which zsh)
4.3 重启后,选择2
(q)  Quit and do nothing.  The function will be run again next time.(0)  Exit, creating the file ~/.zshrc containing just a comment.That will prevent this function being run again.(1)  Continue to the main menu.(2)  Populate your ~/.zshrc with the configuration recommendedby the system administrator and exit (you will need to editthe file by hand, if so desired).
4.4 oh my zsh管理zsh配置

https://github.com/ohmyzsh/ohmyzsh

安装curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

五、DEMO

利用docker与docker compose容器技术把spring boot项目与redis server统一管理起来,使统计网站使用人数微服务一起启停与运维。

  • 在spring boot项目中使用maven clear install,生成一个jar包

  • 把jar包放入docker文件夹,里面还包含docker-compose.yml、Dockerfile

  • 然后拷贝进vagrant生成的虚拟机的local_test文件夹下

  • 在虚拟机中,进入vm_test查看

  • Dockerfile

    #基于哪个现有的镜像构建
    FROM livingobjects/jre8
    #文件名的容器
    VOLUME /tmep
    #将jar包加入到容器
    ADD spark-es-tag-1.0.jar app.jar
    #容器启动时使用的命令
    ENTRYPOINT["java","-Djava.security.egd=file:/dev/ ./urandom","-jar","/app.jar"]
    
  • docker-compose.yml,容器编排的描述与配置文件

  • 执行命令:dcup

六、大数据环境安装与验证

大数据环境脚本下载:https://pan.baidu.com/s/1oYAmlIltC6H5vpFJ2vPx5Q,验证码:mjux

6.1 大数据环境
  • 在ubuntu虚拟机上创建文件夹docker-env
  • 在xshell中使用ctrl+alt+f,开启文件传输,需要下载Xftp,将大数据环境脚本复制到docker-env文件夹下
  • 修改**.sh文件的属性

chmod +x run.sh
chmod +x copy-jar.sh
chmod +x stop.sh
  • 执行run.sh脚本
./run.sh
  • 在虚拟机的火狐浏览器中,输入localhost:50070(namenode)、localhost:8080(spark)、localhost:8088(hadoop),如果页面可以访问到,便成功

七、docker-compose.yml

version: '2'    #版本不同,写法会有不同
services:        #根节点namenode:     image: bde2020/hadoop-namenode:1.1.0-hadoop2.8-java8 #引用的imagecontainer_name: namenode   #容器名称volumes:                       #主机与docker容器挂载关系- ./data/namenode:/hadoop/dfs/nameenvironment:              #环境变量,key-value- CLUSTER_NAME=testenv_file:                 #环境变量具体的文件- ./hadoop-hive.envports:                     #内外端口映射关系- 50070:50070- 8020:8020resourcemanager:image: bde2020/hadoop-resourcemanager:1.1.0-hadoop2.8-java8container_name: resourcemanagerenvironment:- CLUSTER_NAME=testenv_file:- ./hadoop-hive.envports:- 8088:8088historyserver:image: bde2020/hadoop-historyserver:1.1.0-hadoop2.8-java8container_name: historyserverenvironment:- CLUSTER_NAME=testenv_file:- ./hadoop-hive.envports:- 8188:8188datanode:image: bde2020/hadoop-datanode:1.1.0-hadoop2.8-java8depends_on:       #必须在namenode启动完后再启动datanode,容器关系之前的依赖- namenodevolumes:- ./data/datanode:/hadoop/dfs/dataenv_file:- ./hadoop-hive.envports:              #ubuntu中使用浏览器localhost:50075就可以直接访问到- 50075:50075nodemanager:image: bde2020/hadoop-nodemanager:1.1.0-hadoop2.8-java8container_name: nodemanagerhostname: nodemanagerenvironment:- CLUSTER_NAME=testenv_file:- ./hadoop-hive.envports:- 8042:8042hive-server:image: bde2020/hive:2.1.0-postgresql-metastorecontainer_name: hive-serverenv_file:- ./hadoop-hive.envenvironment:- "HIVE_CORE_CONF_javax_jdo_option_ConnectionURL=jdbc:postgresql://hive-metastore/metastore"ports:- "10000:10000"hive-metastore:image: bde2020/hive:2.1.0-postgresql-metastorecontainer_name: hive-metastoreenv_file:- ./hadoop-hive.envcommand: /opt/hive/bin/hive --service metastoreports:- 9083:9083hive-metastore-postgresql:image: bde2020/hive-metastore-postgresql:2.1.0ports:- 5432:5432volumes:- ./data/postgresql/:/var/lib/postgresql/dataspark-master:image: bde2020/spark-master:2.1.0-hadoop2.8-hive-java8container_name: spark-masterhostname: spark-master          #hostname设置后,进入后主机名便不会使用哈希值volumes:- ./copy-jar.sh:/copy-jar.shports:- 8080:8080- 7077:7077env_file:- ./hadoop-hive.envspark-worker:image: bde2020/spark-worker:2.1.0-hadoop2.8-hive-java8depends_on:- spark-masterenvironment:- SPARK_MASTER=spark://spark-master:7077ports:- "8081:8081"env_file:- ./hadoop-hive.envmysql-server:image: mysql:5.7container_name: mysql-serverports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=zhangyang517volumes:- ./data/mysql:/var/lib/mysqlelasticsearch:image: elasticsearch:6.5.3environment:- discovery.type=single-nodeports:- "9200:9200"- "9300:9300"networks: - es_networkkibana:image: kibana:6.5.3ports:- "5601:5601"networks: - es_networknetworks:es_network:external: true

数据分析:大数据环境安装(docker+docker-compose+spark+hadoop+hive)相关推荐

  1. [转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

    大数据环境安装和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等) 系统说明 ...

  2. 【Spark+Hadoop+Hive+MySQL+Presto+SpringBoot+Echarts】基于大数据技术的用户日志数据分析及可视化平台搭建项目

    目录 1.项目概述 1.1.项目背景 1.2.项目流程 2.功能需求描述 2.1.系统功能组成 2.2.数据描述 2.3.功能描述 2.3.1.流量概况分析 2.3.2.日新日活分析 2.3.3.交互 ...

  3. 三节点大数据环境安装详细教程

    前言 本文隶属于专栏<100个问题搞定大数据安装部署>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见 100个问题搞定大数据安装 ...

  4. 2021年大数据环境搭建(一):​​​​​​​​​​​​​​​​​​​​​Hadoop编译

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 Hadoop编译 一. ...

  5. 三节点大数据环境安装教程1

    说明: 1.教程中出现字体加粗和加红的说明需要大家仔细阅读,按照步骤进行安装,都是比较重要的细节,如果有同学忘记或者跳过说明的步骤,环境大家的过程中问题会非常的多. 1.下载CentOS7 1.百度搜 ...

  6. 大数据相关书籍(包含Java, Scala, R, Linux, Spark, Hadoop, Hive, Hbase, Sqoop, Flume, Strom)

    下面书单,有一部分英文版原版,当然价格也相对高一点,英文版部分需要在在亚马逊搜索 ,中文版大部分在京东有售! <Hadoop核心技术> 翟周伟 著 <Storm分布式实时计算模式 & ...

  7. Spark对接Hive:整合Hive操作及函数

    1.拷贝hive-site.xml文件到spark的conf目录下 2.[hadoop@hadoop002 bin]$ ./spark-shell --master local[2] --jars ~ ...

  8. Docker 搭建的大数据环境

    Docker 搭建的大数据环境,一键启停 代码未动,环境先行 我是一个Docker爱好者.我在学习大数据相关技术的时候,想到了一个点子: 用docker搭建一个大数据开发环境! 这么做有什么好处呢 ? ...

  9. Hadoop集群+Spark集群搭建基于VMware虚拟机教程+安装运行Docker

    Hadoop集群+Spark集群搭建+安装运行Docker 目录 一.准备工作 二.在虚拟机上安装CentOS 7 三.hdfs的环境准备 四.hdfs配置文件的修改 五.克隆(复制虚拟机) 六.制作 ...

最新文章

  1. axios post body参数_Vue开发中的一些问题(axios封装)
  2. 管理SharePoint中的账号的密码
  3. mockito 外部接口_【IDEA开发SpringBoot2.0】使用Mockito进行常规接口测试#05
  4. Spring Cloud Gateway 之请求坑位[微服务IP不同请求会失败]
  5. php变量赋值给js
  6. UVA12107Digit Puzzle数字字谜(迭代加深搜索)
  7. 语言 ota_荣威RX5 PLUS使用最新的家族设计语言,给人更年轻时尚的感觉
  8. 机器学习算法、深度学习算法涉及的数学知识
  9. Verizon的SDN策略:不鸣则已,一鸣惊人?
  10. 对一次通过CISSP考试的建议
  11. 交换机知识--生成树协议
  12. 【干货】写给初中级前端的高级进阶指南
  13. 供应链 信用管理 大数据_大数据分析在供应链管理中的应用
  14. 设置表格表头字体_Excel双栏和三栏斜线表头制作技巧
  15. 【原】Web Polygraph 安装
  16. MySQL的LIKE模糊查询优化
  17. 主编编辑器如何绑定公众号?
  18. SegNet(持续更新)
  19. MT5自定义均线指标(含弹窗、App、邮箱预警)
  20. C++实用的闹钟程序

热门文章

  1. 鬼哥解说多元链mut背景
  2. 第一次打“110”之孕妇偷车[有电车的须看]
  3. 实体关系抽取必读文献|清华thunlpgithub|
  4. android java ui_招安卓/java开发工程师和UI/网页设计师
  5. Windows下利用python+selenium+firefox爬取动态网页数据(爬取东方财富网指数行情数据)
  6. 无限小数的形成原因是什么,为什么会有无限小数?
  7. 用Python实现童年的21款小游戏,有你玩过的吗?(不要错过哦)
  8. Springboot社区疫情管理6gcg4计算机毕业设计
  9. 算法E---欧几里得算法
  10. 训练分类器为什么要用cross entropy loss(交叉熵损失函数)而不能用mean square error loss(MSE,最小平方差损失函数)?