大数据技术与应用-D2-平台搭建分布式

继D1导入JDK后

查询/卸载包

  • cd /opt/apps打开apps目录
[root@localhost ~]# cd /opt/apps
[root@localhost apps]# 
  • 查询所有已安装的包

    列出所有被安装的rpm package【rpm -qa】

    查询一个包是否被安装【rpm -q】

[root@localhost apps]# rpm -qa

​ 这里会看到所有的包,太多了,不知道我们到底装好了没

  • 查询jkd包

    rpm -qa|grep 要查询的包名

[root@localhost apps]# rpm -qa|grep jdk
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64

​ 这里的4个java包是我们不需要的,接着删除它

  • 卸载不需要的包

    rpm -e --nodeps 需要删除的文件名删除下面4个java包

[root@localhost apps]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
[root@localhost apps]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
[root@localhost apps]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
[root@localhost apps]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64
[root@localhost apps]# rpm -qa|grep jdk
copy-jdk-configs-3.3-10.el7_5.noarch

解压并安装java包

  • 解压jdk包

tar -zxvf 文件名解压

[root@localhost apps]# tar -zvxf jdk-8u171-linux-x64.tar.gz 
  • 将jdk名称改为Java

    ls查看目录中的文件

    mv dir1 dir2移动/重命名一个目录

[root@localhost apps]# ls
jdk1.8.0_171  jdk-8u171-linux-x64.tar.gz
[root@localhost apps]# mv jdk1.8.0_171 java
[root@localhost apps]# ls
java  jdk-8u171-linux-x64.tar.gz

​ 发现这里已经把jdk1.8.0_171重命名为java.

  • 进入profile并修改
  • 进入profile
[root@localhost apps]# sudo vim /etc/profile

修改profile,跳转至53行,插入下面两行

export JAVA_HOME=/opt/apps/java
export PATH=$PATH:/$JAVA_HOME/bin

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL的上边

  • 让profile生效

    修改了/etc/profile文件,让它立刻生效,而不用重新登录

    source filenamesource . filename

[root@localhost apps]# source /etc/profile
  • 查看java版本

    java -version查看Java版本

[root@localhost apps]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

修改主机名,增加从机

  • 修改主机名

    hostname 新主机名临时修改主机名

    hostnamectl set-hostname 新主机名永久重命名

    hostname查看主机名

[root@localhost apps]# hostname
localhost.localdomain
[root@localhost apps]# hostnamectl set-hostname master
[root@localhost apps]# hostname
master
  • 映射

    hosts文件的修改

[root@localhost apps]# sudo vim /etc/hosts

在hosts中插入行分别表示一台主机和两台从机地址

192.168.66.100 master
192.168.66.101 slave01
192.168.66.102 slave02

克隆主机,制造从机

  • 设置不熄屏

    【设置】-【power】-【空白屏幕】-【从不】

在这里插入图片描述

  • 克隆虚拟机

    • 先关闭虚拟机shutdown -h now

    • 【虚拟机(M)】-【管理(M)】-【克隆©】

    • 【下一步】…克隆类型:【创建完整克隆】-名称:slave01/slave02

  • 配置虚拟机IP

    • 【设置】-【网络】-【IPv4】-配置地址

      master:192.168.66.100
      slave01:192.168.66.101
      slave02:192.168.66.102

    在这里插入图片描述

  • ping通测试

    配置完成后,3台机之间相互ping IP地址与主机名

    格式:ping IP地址ping 主机名

    使用Ctrl + C结束进程

[hadoop@master ~]$ ping 192.168.66.100
PING 192.168.66.100 (192.168.66.100) 56(84) bytes of data.
64 bytes from 192.168.66.100: icmp_seq=1 ttl=64 time=0.346 ms
64 bytes from 192.168.66.100: icmp_seq=2 ttl=64 time=0.766 ms
64 bytes from 192.168.66.100: icmp_seq=3 ttl=64 time=0.666 ms
^C
--- 192.168.66.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.346/0.592/0.766/0.181 ms
[hadoop@master ~]$ ping slave02
PING slave02 (192.168.66.102) 56(84) bytes of data.
64 bytes from slave02 (192.168.66.102): icmp_seq=1 ttl=64 time=0.592 ms
64 bytes from slave02 (192.168.66.102): icmp_seq=2 ttl=64 time=0.700 ms
^C
--- slave02 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.592/0.646/0.700/0.054 ms
[hadoop@master ~]$
  • 若ping不通
    • 检查网络连接是否打开
    • 查看当点IP地址ip a s
[root@master ~]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
       后面还有很多信息

主机从机远程连接

  • 生成秘钥

    ssh-keygen生成、管理和转换认证密钥

    四次回车

[root@master ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nvMjCOrWM64fc/wd500fTkKL1VPFQ2iFZJHcrH5tIyY root@master
The key's randomart image is:
+---[RSA 2048]----+
|            o+X+.|
|            .* +o|
|            . . o|
|             .. .|
|        S   .o o.|
|    .. . . E++.o+|
|   oo.o.+ ..+o++.|
|  o ++...+.+ o+..|
| oo+oo  ..o.. ...|
+----[SHA256]-----+
[root@master ~]# 
  • 实现SSH无密码登录

    • ssh-copy-id 从机名 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized_keys的权利

    • ssh-copy-id 机器名-yes-123456操作完3个用户

      ssh 机器名登录远程连接

      exit登出

[root@master ~]# ssh-copy-id slave01
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'slave01 (192.168.66.101)' can't be established.
ECDSA key fingerprint is SHA256:acDLUGasWIgLpRan9DYlNI1I/5DNbyktCqfLI6snUp0.
ECDSA key fingerprint is MD5:5a:c0:b0:63:9a:eb:e0:f1:68:75:23:69:51:b0:f0:8b.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@slave01's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'slave01'"
and check to make sure that only the key(s) you wanted were added.

[root@master ~]# ssh slave01
Last login: Fri Jan 15 14:23:09 2021 from 192.168.66.1
[root@master ~]# exit
登出
Connection to slave01 closed.
[root@master ~]# ssh-copy-id master
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
		(if you think this is a mistake, you may want to use -f option)
[root@master ~]# ssh slave01
Last login: Sat Jan 16 00:42:27 2021
[root@slave01 ~]# exit
登出
Connection to slave01 closed.

关闭防火墙

可用免密连接操作其他机器关闭防火墙

  • 停止 firewall服务
    1. Centos7默认的防火墙是 firewall,替代了以前的 iptables
    2. firewal使用更加方便、功能也更加强大一些
    3. firewall服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持ipv4与ipv6,并支持网桥,采用firewall-cmd(command)或 firewall- config (gui)来动态的管理 kernel netfilter的临时或永久的接口规则,并实时生效而无需重启服务。
    4. 查看firewall版本 firewall-cmd --version
[root@slave01 ~]# sudo systemctl stop firewalld.service
[root@slave01 ~]# sudo systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

解压并安装Hadoop

过程类似上面安装java

  • 文件操作

    • 进入文件夹cd /opt/apps

    • 上传文件在xshell中使用rm,但要先安装sudo yum -y install lrzsz。也可以用xftp或拖入虚拟机等方式。

    • 解压文件tar -zxvf 文件名

    • 删除文件rm 文件名

    • 移动文件mv 文件名 文件位置mv hadoop-2.8.3.tar.gz /opt/apps

    • 重命名文件mv 原文件名 修改文件名

[root@master ~]# mv hadoop-2.8.3.tar.gz /opt/apps
[root@master apps]# cd /opt/apps[root@master apps]# tar -zxvf hadoop-2.8.3.tar.gz
[root@master apps]# ls
hadoop  hadoop-2.8.3.tar.gz  java  jdk-8u171-linux-x64.tar.gz
[root@master apps]# rm hadoop-2.8.3.tar.gz 
rm:是否删除普通文件 "hadoop-2.8.3.tar.gz"?y
[root@master apps]# rm jdk-8u171-linux-x64.tar.gz 
rm:是否删除普通文件 "jdk-8u171-linux-x64.tar.gz"?y
[root@master apps]# ls
hadoop  java
  • 修改profile文件
    • sudo vim /etc/profile进入profile
    • 在53行修改以下内容,插入HADOOP(2行)部分不要输错
export JAVA_HOME=/opt/apps/java
export PATH=$PATH:/$JAVA_HOME/bin
export HADOOP_HOME=/opt/apps/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
  • profile生效ource /etc/profile
  • 查看Hadoop版本hadoop version
    • 确认是否更改正确
[root@master apps]# source /etc/profile
[root@master apps]# hadoop version
Hadoop 2.8.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b3fe56402d908019d99af1f1f4fc65cb1d1436a2
Compiled by jdu on 2017-12-05T03:43Z
Compiled with protoc 2.5.0
From source with checksum 9ff4856d824e983fa510d3f843e3f19d
This command was run using /opt/apps/hadoop/share/hadoop/common/hadoop-common-2.8.3.jar

绝对路径:从顶级目录考试,描述一个文件路径的完整信息

相对路径:相对于当前工作目录的路径

  • 查看路径
    • pwd显示工作路径
[root@master apps]# cd /opt/apps/hadoop/etc/hadoop
[root@master hadoop]# pwd
/opt/apps/hadoop/etc/hadoop
[root@master hadoop]# ls
capacity-scheduler.xml      httpfs-env.sh            mapred-env.sh
configuration.xsl           httpfs-log4j.properties  mapred-queues.xml.template
container-executor.cfg      httpfs-signature.secret  mapred-site.xml.template
core-site.xml               httpfs-site.xml          slaves
hadoop-env.cmd              kms-acls.xml             ssl-client.xml.example
hadoop-env.sh               kms-env.sh               ssl-server.xml.example
hadoop-metrics2.properties  kms-log4j.properties     yarn-env.cmd
hadoop-metrics.properties   kms-site.xml             yarn-env.sh
hadoop-policy.xml           log4j.properties         yarn-site.xml
hdfs-site.xml               mapred-env.cmd
  • 修改子文件配置

    • vim hadoop-env.sh配置环境environment环境.sh可执行的
    [root@master hadoop]# vim hadoop-env.sh
    
    • 修改第25行,把export JAVA_HOME=${JAVA_HOME}改为以下
export JAVA_HOME=/opt/apps/java
  • 修改vim core-site.xml配置

    • 配置vim core-site.xml
    [root@master hadoop]# vim core-site.xml
    
    • 修改第19行,在<configuration>标签中插入以下内容
<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/apps/hadoop/tmpdata</value>
</property>
</configuration>

分布式,相当于聚合

MapReduce缺点:每次都要写到磁盘(写磁盘不如写内存快)

spark清洗分析

yard资源调度,负载均衡

数据放在DataNode

属性信息:元数据,类似数据字典

假设Hadoop装好后查看文件系统。浏览器查询:hdfs://master:9000。master相当于192.168.66.100

<property>属性标签

  • 修改vim hdfs-site.xml配置

    • 配置vim hdfs-site.xml
    [root@master hadoop]# vim core-site.xml
    
    • 修改:在<condiguration>中修改以下内容
<configuration>
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>
<property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
</property>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/apps/hadoop/namenode</value>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/apps/hadoop/datanode</value>
</property>
</configuration>

一个数据块两个副本

高可靠:一个集群有多个副本(2或3)

secondary备份namenode

平台搭建

数据采集scrapy(request库lxml解析


MapReduce:背例子单词统计word counts

scala面向过程

hive(HQL)和SQL基本无区别


flask做网站

echarts绘图

  • 最后,如果想看自己敲过什么,可以使用history命令
[root@master hadoop]# history
已标记关键词 清除标记
相关推荐
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页