大数据研发工程师课前环境搭建
大数据研发工程师课前环境搭建
第一章 VMware Workstation 安装
在Windows的合适的目录来进行安装,如下图
1.1 双击打开
1.2 下一步,接受协议
1.3 选择安装位置
1.4 用户体验设置
1.5 快捷方式
已经准备好安装,点击安装
1.6 安装中
1.7 安装完成
1.8 启动界面
注意,需要注册的时候,自己解决。
第二章 安装CentOS7操作系统
2.1 点击新建虚拟机
选择自定义安装
2.2 选择虚拟机硬件兼容性,默认即可
2.3 选择安装的操作系统位置
2.4 创建用户和密码
2.5 命名虚拟机并选择安装位置
2.6 处理器配置
根据自己的电脑的设置配置即可,后期可更改。
2.7 设置内存
根据自己的机器配置设置即可
2.8 设置网络类型
选择NAT即可
2.9 选择I/O控制器类型
默认即可
2.10 选择磁盘类型
默认即可
2.11 选择使用的磁盘
2.12 指定磁盘大小
尽量设置大一些,50gb往上。
2.13 指定磁盘文件
默认即可
2.14 已准备好创建虚拟机,确认页面
2.15 点击完成,进行安装
然后等待漫长的安装过程即可。
根据机器性能差异,安装时间在10-30分钟之间。
2.16 在安装过程中进行相关内容的设置
设置界面
2.17 设置时区
2.18 选择安装的内容
选择GUI,对初学者比较友好。
2.19 设置网络
2.20 设置之后的页面
2.21 继续安装页面
第三章 安装XShell和Xftp
首先准备软件
3.1 安装XShell
3.1.1 双击打开
3.1.2 点击接受协议
3.1.3 选择安装位置
选择自己的合适的目录即可
3.1.4 点击下一步,之后点击安装
3.1.5 安装过程
3.1.6 安装完成
3.1.7 点击完成,查看成功界面
3.2 安装Xftp
3.2.1 双击打开
3.2.2 点击接受协议
3.2.3 选择安装位置
3.2.4 点击下一步,之后点击安装
3.2.5 安装过程
3.2.6 安装完成
3.2.7 点击完成,查看成功界面
3.3 通过XShell连接虚拟机
3.3.1 在文件中点击新建
3.3.2 输入相应的信息
3.3.3 一些小操作
注意连接之前需要给虚拟机防火墙关闭
CentOS7查看防火墙状态 systemctl status firewalld.service 关闭防火墙 systemctl stop firewalld.service 永久关闭(重启也没有用) systemctl enable firewalld.service |
关闭selinux参考(其实不关闭也不影响):
临时关闭 [root@localhost ~]# setenforce 0 查看selinux状态 [root@localhost ~]# sestatus 永久关闭 可以修改配置文件/etc/selinux/config,将其中SELINUX设置为disabled。 [root@localhost ~]# vim /etc/selinux/config |
注意,子网掩码的设置!!!
第四章 分布式集群安装前序准备
4.1 配置网络
网络配置修改成Manual手动的,并填写相应的ip地址
4.2 hostname查看并修改
CentOS6.x: vi /etc/sysconfig/network
CentOS7.4: vi /etc/hostname
修改主机名,修改之后要重启才能生效。
4.3 修改 /etc/hosts
修改hosts文件
vi /etc/hosts
192.168.22.136 hadoop10
192.168.22.137 hadoop11
192.168.22.138 hadoop12
示例如下:
4.4 防火墙策略
在虚拟机测试,关闭即可,阿里云主机上面需要配置策略
systemctl status firewalld.service
systemctl stop firewalld.service
只使用前面两行重启之后防火墙就开启了。
systemctl disable firewalld.service 永久关闭(重启也不行)
4.5 SSH相互免密码登录
先在hadoop0上面执行。
cd ~ 也就是进入/root目录
ssh-keygen -t dsa
cd /root/.ssh/
cat id_dsa.pub >> authorized_keys
上面四步骤需要在三台虚机上做同样的操作
cat authorized_keys查看秘钥
若是有原来有秘钥先删除
rm -rf *
ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2在hadoop0上执行上面一句将hadoop0上面的秘钥拷贝到hadoop2上然后再hadoop1上面再次执行上面一句将hadoop1上面的秘钥拷贝到hadoop2上scp /root/.ssh/authorized_keys hadoop0:/root/.ssh/在hadoop2上面执行上面一句将hadoop2上面的秘钥拷贝到hadoop0 上scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/在hadoop2上面执行上面一句将hadoop2上面的秘钥拷贝到hadoop1 上
第五章 JDK安装
5.1 准备环境并上传软件
1、安装之前先查看一下有无系统自带jdk
rpm -qa |grep java
rpm -e --nodeps 软件名字
[root@hadoop0 /]# rpm -qa |grep java tzdata-java-2020a-1.el7.noarch java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64 python-javapackages-3.4.1-11.el7.noarch [root@hadoop0 /]# rpm -e --nodeps tzdata-java-2020a-1.el7.noarch [root@hadoop0 /]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 [root@hadoop0 /]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 [root@hadoop0 /]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch [root@hadoop0 /]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 [root@hadoop0 /]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64 [root@hadoop0 /]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch [root@hadoop0 /]# rpm -qa |grep java |
使用下面的语句可以快捷删除完
rpm -qa |grep java rpm -e --nodeps tzdata-java-2020a-1.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64 rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch rpm -qa |grep java |
实际配置的内容:
[root@hadoop10 ~]# rpm -qa |grep java tzdata-java-2020a-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 javapackages-tools-3.4.1-11.el7.noarch [root@hadoop10 ~]# rpm -e --nodeps tzdata-java-2020a-1.el7.noarch [root@hadoop10 ~]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch [root@hadoop10 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 [root@hadoop10 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 [root@hadoop10 ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch [root@hadoop10 ~]# rpm -qa |grep java [root@hadoop10 ~]# |
为了方便,整理一下:
rpm -qa |grep java rpm -e --nodeps tzdata-java-2020a-1.el7.noarch rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch rpm -qa |grep java |
2、在根目录下面创建software文件夹,然后将文件上传到此文件夹下面,将所有的文件的安装都放到这个文件夹下面,方便统一管理。
5.2 上传解压重命名文件
上传到software文件夹下面
tar -zxvf jdk-8u202-linux-x64.tar.gz
mv jdk1.8.0_202/ jdk
重命名
5.3 修改配置
修改之前最好先备份一下配置文件
export JAVA_HOME=/software/jdk
export PATH=.:$PATH:$JAVA_HOME/bin
第六章 Hadoop安装
先在一台机器上面安装,然后复制到其他的机器上面即可。
6.1 在节点1上面上传解压重命名
3.2 添加环境变量
export JAVA_HOME=/software/jdk
export HADOOP_HOME=/software/hadoop
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/software/jdk export PATH=.:$PATH:$JAVA_HOME/bin export HADOOP_HOME=/software/hadoop export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin |
6.3 修改配置文件
6.3.1 在一个节点上配置
vi hadoop-env.sh
export JAVA_HOME=/software/jdk
<property> <name>dfs.datanode.data.dir</name> <value>file:///software/hadoop/data/datanode</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///software/hadoop/data/namenode</value> </property> <property> <name>dfs.namenode.http-address</name> <value>hadoop0:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop1:50090</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> |
先使用默认的即可
(4)配置core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://hadoop0/</value> </property> |
注意:端口可以不指定,默认是8020,也可以指定<value>hdfs://hadoop0:9000/</value>
6.3.2 将hadoop0上的配置拷贝到其他节点上
拷贝hadoop0上的配置到hadoop1和hadoop2上面
scp -r /software/hadoop hadoop1:/software/ scp -r /software/hadoop hadoop2:/software/ |
scp /etc/profile hadoop11:/etc/
scp /etc/profile hadoop12:/etc/
(3)或者手动配置
export HADOOP_HOME=/software/hadoop
export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.4 启动/停止Hadoop集群
3.4.1 格式化文件系统
执行上面的命令后,在后面的提示中如果看到successfully formatted的字样,说明hdfs格式化成功!
3.4.2 第一次启动时候遇到的问题
start-all.sh或者start-dfs.sh 和 start-yarn.sh来启动
出现问题如下:
解决方案:
cd /software/hadoop/etc/hadoop
修改hadoop-env.sh。(只需要在主节点上面配置一些即可,因为只在主节点上启动)
在最上面添加如下内容:
export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root |
配置结果如下:
3.4.3 正确启动关闭
查看进程
[root@hadoop0 hadoop]# jps 5538 Jps 5196 ResourceManager 4733 NameNode |
[root@hadoop1 hadoop]# jps 3681 SecondaryNameNode 3860 Jps 3770 NodeManager 3567 DataNode |
[root@hadoop2 software]# jps 51234 DataNode 51362 NodeManager 51452 Jps |
3.4.4 查看页面
3.4.5 在页面创建文件夹时候出现的问题
问题如下:
Permission denied: user=dr.who, access=WRITE, inode="/":root:supergroup:drwxr-xr-x |
解决方案:
配置权限:
[root@hadoop0 hadoop]# hadoop fs -chmod -R 777 / |
修改之后创建文件夹以及上传文件都正常了
相关文章:

大数据研发工程师课前环境搭建
大数据研发工程师课前环境搭建 第一章 VMware Workstation 安装 在Windows的合适的目录来进行安装,如下图 1.1 双击打开 1.2 下一步,接受协议 1.3 选择安装位置 1.4 用户体验设置 1.5 快捷方式 已经准备好安装,点击安装 1.6 安装中 1.7 安装…...

Qt图形视图框架:QGraphicsItem详解
Qt图形视图框架:QGraphicsItem详解 Chapter1 Qt图形视图框架:QGraphicsItem详解Chapter2 自定义QGraphicsItem实现平移、改变尺寸和旋转1. 平移2. 改变尺寸3. 旋转完整代码如下:头文件源文件 Chapter1 Qt图形视图框架:QGraphicsIt…...

defer和async
如果两个属性浏览器都不兼容,推荐把<script>标签放到底部 一般情况下,浏览器在解析html源文件时,如果遇到外部的<script>标签,解析过程就会先暂停,这时会对script进行加载,执行两个过程&…...

数电实验-----实现74LS139芯片扩展为3-8译码器以及应用(Quartus II )
目录 一、74LS139芯片介绍 芯片管脚 芯片功能表 二、2-4译码器扩展为3-8译码器 1.扩展原理 2.电路图连接 3.仿真结果 三、3-8译码器的应用(基于74ls139芯片) 1.三变量表决器 2.奇偶校验电路 一、74LS139芯片介绍 74LS139芯片是属于2-4译码器…...

洋葱架构、三层架构及两者区别
前言 洋葱架构它的名称来源于洋葱的层次结构,即软件代码的各层次之间的关系。在这种架构中,应用程序的各个组件通过一系列层次结构被逐层包裹在一起,形成一个类似于洋葱的结构。 一、经典三层架构 三层架构是一种软件设计模式,…...

JavaEE进阶学习:Spring 的创建和使用
Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能: 将对象存储到容器(Spring)中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似&a…...

音视频项目—基于FFmpeg和SDL的音视频播放器解析(十四)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...

Tomcat无法映射到activiti-app导致activiti无法启动页面
原因之一:JDK版本与Tomcat版本不匹配,jdk8 yyds 我使用的是JDK11,Tomcat是9.0的,都是最新的,但还是不行,最后JDK改为8,tomcat的cmd后台没有报错,activiti-pp也可以正常访问了,很神奇…...

c语言常见的面试问题
在C语言编程中,面试官可能会询问你以下一些常见问题: 什么是C语言? C语言是一种通用的、过程式的计算机编程语言,由Dennis Ritchie在1972年创建。它是Unix操作系统的核心语言,也是许多其他编程语言(如Go、…...

image图片之间的间隙消除
多个图片排列展示,水平和垂直方向的间隔如何消除 垂直方向 vertical-align 原因: vertical-align属性主要用于改变行内元素的对齐方式,行内元素默认垂直对齐方式是基线对齐(baseline) 这是因为图片属于行内元素&…...

asp.net心理健康管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目
一、源码特点 asp.net 心理健康管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 系统视频链接 https://www.bilibili.com/video/BV19w411H7P4/ 二、功能介绍 本系统使用Microsoft Visual Studio…...

CnosDB有主复制演进历程
分布式存储系统的复杂性涉及数据容灾备份、一致性、高并发请求和大容量存储等问题。本文结合CnosDB在分布式环境下的演化历程,分享如何将分布式理论应用于实际生产,以及不同实现方式的优缺点和应用场景。 分布式系统架构模式 分布式存储系统下按照数据复…...

【前沿学习】美国零信任架构发展现状与趋势研究
转自:美国零信任架构发展现状与趋势研究 摘要 为了应对日趋严峻的网络安全威胁,美国不断加大对零信任架构的研究和应用。自 2022 年以来,美国发布了多个零信任战略和体系架构文件,开展了多项零信任应用项目。在介绍美国零信任战略…...

Toolformer论文阅读笔记(简略版)
文章目录 引言方法限制结论 引言 大语言模型在zero-shot和few-shot情况下,在很多下游任务中取得了很好的结果。大模型存在的限制:无法获取最新的信息、无法进行精确的数学计算、无法理解时间的推移等。这些限制可以通过扩大模型规模一定程度上解决&…...

Pytorch torch.dot、torch.mv、torch.mm、torch.norm的用法详解
torch.dot的用法: 使用numpy求点积,对于二维的且一个二维的维数为1 torch.mv的用法: torch.mm的用法 torch.norm 名词解释:L2范数也就是向量的模,L1范数就是各个元素的绝对值之和例如:...

Jave 定时任务:使用Timer类执行定时任务为何会发生任务阻塞?如何解决?
IDE:IntelliJ IDEA 2022.2.3 x64 操作系统:win10 x64 位 家庭版 JDK: 1.8 文章目录 一、Timer类是什么?二、Timer类主要由哪些部分组成?1.TaskQueue2. TimerThread 三、示例代码分析四、自定义TimerTask为什么会发生任务相互阻塞的…...

Visual Studio Code配置c/c++环境
Visual Studio Code配置c/c环境 1.创建项目目录2.vscode打开项目目录3.项目中添加文件4.文件内容5.配置编译器6.配置构建任务7.配置调试设置 1.创建项目目录 d:\>mkdir d:\c语言项目\test012.vscode打开项目目录 3.项目中添加文件 4.文件内容 #include <iostream> u…...

漏洞利用工具的编写
预计更新网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 漏洞利用工具是一种常见的安全工具,它可以利用系统或应用程序中的漏洞来获取系统权限或者窃…...

ChatGPT之父被OpenAI解雇
首席技术官 Mira Murati 任命临时首席执行官领导 OpenAI;山姆阿尔特曼(Sam Altman)离开公司。 阿尔特曼先生的离职是在董事会经过深思熟虑的审查程序之后进行的,审查程序得出的结论是,他在与董事会的沟通中始终不坦诚…...

linux中利用fork复制进程,printf隐藏的缓冲区,写时拷贝技术,进程的逻辑地址与物理地址
1.prinf隐藏的缓冲区 1.思考:为什么会有缓冲区的存在? 2.演示及思考? 1).演示缓存区没有存在感 那为什么我们感觉不到缓冲区的存在呢?我们要打印东西直接就打印了呢? 我们用代码演示一下: 比如打开一个main.c,输入内容如下: #include <stdio.h>int main(){printf…...

java游戏制作-拼图游戏
一.制作主界面 首先创建一个Java项目命名为puzzlegame 结果:】 二.设置界面 代码: 三.初始化界面 代码: 优化代码: 四.添加图片 先在Java项目中创建图片文件夹,将图片导入其中 管理图片: 五.打乱图片顺序...

使用sklearn报AttributeError: ‘NoneType‘ object has no attribute ‘split‘
错误原因 在使用scikit-learn的时候报AttributeError: NoneType object has no attribute split Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr..match_module_callback at 0x7fb757978160> T…...

C++学习 --map
目录 1, 什么是map 2, 创建map 2-1, 标准数据类型 2-2, 自定义数据类型 2-3, 其他创建方式 3, 操作map 3-1, 赋值 3-2, 插入元素(insert) 3-2-1, 插入标准数据类…...

基于Qt QList和QMap容器类示例
## QList<T> QList<T>容器是一个数组列表,特点如下: 1.大多数情况下可以用QList。像prepend()、append()和insert()这种操作,通常QList比QVector快的多。这是因为QList是基于index标签存储它的元素项在内存中(虽然内存不连续,这点与STL的list 是一样的),比…...

Flask学习一:概述
搭建项目 安装框架 pip install Flask第一个程序 from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return "Hello World"if __name__ __main__:app.run()怎么说呢,感觉还不错的样子。 调试模式 if __name__ __main__:a…...

LeetCode:689. 三个无重叠子数组的最大和(dp C++)
目录 689. 三个无重叠子数组的最大和 题目描述: 实现代码与解析: dp 原理思路: 滑动窗口: 原理思路: 689. 三个无重叠子数组的最大和 题目描述: 给你一个整数数组 nums 和一个整数 k ,找…...

Leetcode—206.反转链表【简单】
2023每日刷题(三十三) Leetcode—206.反转链表 头插法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* reverseList(struct ListNode* head) {if(head NULL…...

Linux - 内存 - 预留内存占用分析
说明 Linux启动log中会显示平台的内存信息,公司SOC平台,物理DRAM实际size是128M,但是启动log中total size不足128MB,并且预留内存(82272K reserved)过多,启动log如下: Memory: 480…...

Java学习之路 —— Java高级
文章目录 前言1. 单元测试2. 反射2.1 获取Class对象的三种方式2.2 获取类的构造器的方法2.3 获取类的成员变量2.4 获取类的成员方法2.5 反射的作用 3. 注解3.1 自定义注解3.2 注解的原理3.3 元注解3.4 注解的解析 4. 动态代理5. 总结 前言 终于走到新手村的末端了,…...

git使用及常用命令
在初入公司中,若使用的是git管理工具,需要做以下步骤: 1,常用命令在: (1),git config --global user.name xxx(名字) //若不设置 那么下次提交代码时会报错 其次该设置名字和…...