Hadoop环境搭建

一、Linux环境准备

  • Linux命令查询https://www.linuxcool.com/ http://linux.51yip.com/

  • 安装Linux虚拟机

  • 安装 sudo apt install open-vm-tools

  • 安装 sudo apt install open-vm-tools-desktop

  • (可选)换国内源

​​ 在这里插入图片描述

在这里插入图片描述

sudo apt update 更新软件列表,换源完成。

sudo apt upgrade 更新软件

  • 安装常用工具

    ssh:sudo apt install ssh
    vim:sudo apt install vim
    网络工具: sudo apt install net-tools
    Pip工具:sudo apt install python3-pip

    SSH

    https://www.cnblogs.com/linuxAndMcu/p/10766589.html

    https://www.jb51.net/article/156422.htm

    SSH分openssh-client和openssh-server

    dpkg --list|grep ssh 若结果中没有出现openssh-server,则说明没有安装。

    安装客户端:sudo apt install ssh 或者 sudo apt install openssh-client

    安装服务端:sudo apt install openssh-server

    如果出现

    在这里插入图片描述

    则输入:sudo apt install openssh-client=1:8.2p1-4

    SSH常用命令

    #查看状态 sudo service ssh status

    ps -e |grep ssh

    #停止服务 sudo service ssh stop

    #启动服务 sudo service ssh start

    #重启服务 sudo service ssh restart

    #登录 (zhilan为192.168.0.125机器上的用户,需要输入密码。)

    #常用格式:ssh [-llogin_name] [-p port] [user@]hostname

    ssh zhilan@192.168.0.125

    #断开连接 exit

    安全要点:
    1.密码应该经常换
    2.使用非默认端口
    3.限制客户端登陆地址
    4.禁止管理员登陆

    5.仅允许有限制用户登陆

    6.使用基于密钥的认证

    net-tools

    https://blog.csdn.net/csdn_kou/article/details/90240586

  • 配置静态IP1

    :在windows 命令行输入ipconfig,查看已经分配的局域网地址,不要设置重复。
    查看: ifconfig 或 ip addr
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 配置静态IP2
    20.04版本静态ip配置、动态ip配置、双网卡配置https://blog.csdn.net/qq_42255854/article/details/109858464Ubuntu

    在这里插入图片描述

  • 设置主机映射

    sudo vim /etc/hosts
    192.168.68.1	master
    hostnaamectl
    sudo vim /etc/hostname
    master
    
  • 关闭防火墙

    https://www.linuxidc.com/Linux/2016-12/138259.htm
    https://blog.csdn.net/weixin_34293246/article/details/92148586
    #查看防火墙状态
    sudo ufw status
    #开启防火墙
    sudo ufw enable
    #关闭防火墙
    sudo ufw disable
    #查看防火墙开机启动状态
    chkconfig iptables --list
    #关闭防火墙开机启动
    chkconfig iptables offufw default allow/deny:外来访问默认允许/拒绝ufw allow/deny 20:允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。ufw allow/deny servicename:ufw从/etc/services中找到对应service的端口,进行过滤。ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。ufw delete allow/deny 20:删除以前定义的"允许/拒绝访问20端口"的规则
    
  • SSH免密登录

    cd ~/.ssh/  #若没有此目录,执行ssh localhost
    ssh-keygen -t rsa
    #改权限https://www.cnblogs.com/songgj/p/8890710.html
    #.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600
    cat id_rsa.pub >> authorized_keys #>> 是追加内容  > 是覆盖原有内容
    或者
    ssh-copy-id root@hadoop01 # ssh-copy-id 将key写到远程机器的 ~/.ssh/authorized_key.文件中chown 修改文件和文件夹的用户和用户组属性
    1。要修改文件hh.c的所有者.修改为sakia的这个用户所有
    chown sakia hh.c
    这样就把hh.c的用户访问权限应用到sakia作为所有者2。将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
    chown -R sakia:net /tmp/scochmod 修改文件和文件夹读写执行属性
    1。把hh.c文件修改为可写可读可执行
    chmod 777 hh.c
    要修改某目录下所有的文件属性为可写可读可执行
    chmod 777 *.*
    把文件夹名称与后缀名用*来代替就可以了。
    同理若是要修改所有htm文件的属性
    chmod 777 *.htm
    2。把目录 /tmp/sco修改为可写可读可执行
    chmod 777 /tmp/sco要修改某目录下所有的文件夹属性为可写可读可执行
    chmod 777 *
    把文件夹名称用*来代替就可以了要修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行
    chmod -R 777 /tmp/sco可写 w=4
    可读 r=2
    可执行 x=1
    777就是拥有全权限。根据需要可以自由组合用户和组的权限
    

二、安装JDK

sudo mkdir /usr/software
sudo chown master /usr/software
cd /usr/software
# Xftp上传jdk到 /usr/software
tar -zxvf jdk-8u271-linux-x64.tar.gz
mv jdk-8u271-linux-x64.tar.gz jdk
# JAVA
export JAVA_HOME=/usr/software/jdk
export JRE_HOME=/usr/software/jdk/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin#测试
java -version#
1.查看环境配置如下图是1.82.在控制台查看jdk版本发现是1.7,这是应为先安装了1.7之后又升级为1.8的,linux系统文件的软连接没有修改,我们只是吧环境配置的指向地址改成了ldk1.8.3.解决方案3.1  which java ——查看默认的jdk安装路径3.2  通过cd命令进入 /usr/bin ,执行sudo rm -rf java (删除默认的java)执行sudo ln -s $JAVA_HOME/bin/java /usr/bin/java (将自己安装的java链接到默认java安装路径下);sudo rm -rf javac (删除默认的javac)执行sudo ln -s $JAVA_HOME/bin/javac /usr/bin/javac (将自己安装的javac链接到默认javac安装路径下)4.查看jdk版本

三、安装hadoop

# HADOOP
export HADOOP_HOME=/usr/software/hadoop
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin#测试
hadoop version

hadoop配置

  1. .在hadoop安装文件根目录创建三个文件夹:tmp hdfs/data hdfs/name

    mkdir tmp
    mkdir -p hdfs/data
    mkdir -p hdfs/name
    

    注:

    tmp:临时文件

    name:NameNode数据块

    ​ 映射信息

    data:DataNode中输出存

    ​ 储位置

  2. 修改hadoop-env.sh文件

    cd /usr/software/hadoop/etc/hadoop
    vim hadoop-env.shexport JAVA_HOME=/usr/software/jdk
    
  3. 修改core-site.xml文件

    vim core-site.xml<configuration><!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --><property><name>fs.default.name</name><value>hdfs://master:9000</value></property><!-- 指定hadoop运行时产生文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/usr/software/hadoop/tmp</value></property>
    </configuration>
  4. 修改hdfs-site.xml文件

    vim hdfs-site.xml<configuration><!-- NameNode命名空间文件 --><property><name>dfs.name.dir</name><value>/usr/software/hadoop/hdfs/name</value></property><!-- DataNode数据文件 --><property><name>dfs.data.dir</name><value>/usr/software/hadoop/hdfs/data</value></property><!-- 文件副本数量 --><property><name>dfs.replication</name><value>1</value></property><!-- Web访问入口 --><property><name>dfs.namenode.http-address</name><value>master:50070</value></property><!-- 文件权限 --><property><name>dfs.permissions</name><value>false</value></property><!-- SecondaryNameNode设置 --><property><name>dfs.secondary.http.address</name><value>master:50090</value></property>
    </configuration>
  5. 将mapred-site.xml.template复制一份,并改名mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    <!-- 指定mr运行在yarn上 -->
    <property><name>mapreduce.framework.name</name><value>yarn</value>
    </property>
    
  6. 修改yarn-site.xml文件

    vim yarn-site.xml<configuration><!-- Site specific YARN configuration properties --><!-- nodemanager获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property><!-- 指定yarn主节点 --><property><name>yarn.resourcemanager.hostname</name><value>master</value></property></configuration>
  7. 格式化NameNode

    hadoop namenode -format
    
  8. 启动Hadoop

    start-all.sh
    先启动HDFS
    sbin/start-dfs.sh
    再启动YARN
    sbin/start-yarn.sh
    关闭
    stop-all.sh使用jps命令验证
    27408 NameNode
    28218 Jps
    27643 SecondaryNameNode
    28066 NodeManager
    27803 ResourceManager
    27512 DataNodehttp://master:50070(HDFS管理界面)
    http://master:8088 (MR管理界面)
    
  • Hadoop Single Node Cluster 安装完成

四、 Hadoop Multi Node Cluster 安装

  1. 对以上创建的Hadoop Single Node Cluster重新创建hdfs/name hdfs/data

    cd /usr/softwawre/hadoop/hdfs
    rm -rf name
    rm -rf data
    mkdir name
    mkdir data
    
  2. 克隆虚拟机

    • 克隆虚拟机Ubuntu01 到 Ubuntu02 (注:选择完整克隆)
    • 克隆虚拟机Ubuntu01 到 Ubuntu03 (注:选择完整克隆)
    • 修改克隆虚拟机的主机名和IP (sudo vim /etc/hostname)
  3. 配置 /etc/hosts

    对每个节点执行:
    sudo vim /etc/hosts192.168.68.4    master
    192.168.68.5    data1
    192.168.68.6    data2#也可以在本地Windows添加IP映射
    #C:\Windows\System32\drivers\etc\hosts
    
  4. SSH免密登录

    此时三个节点其实是可以相互登录的,因为其他两个节点是复制的master,里面的公私密钥是一样的,并且公钥已经添加到各自的 ~/.ssh/authorized_keys中。但是常规的做法应该是:SSH免密应该在克隆虚拟机之后,操作如下

    #master
    cd ~/.ssh/  #若没有此目录,执行ssh localhost
    ssh-keygen -t rsa
    cat id_rsa.pub >> authorized_keys 
    #data1
    cd ~/.ssh/ 
    ssh-keygen -t rsa
    scp ~/.ssh/id_rsa.pub master@master:~/.ssh/id_rsa.pub.data1
    #data2
    cd ~/.ssh/ 
    ssh-keygen -t rsa
    scp ~/.ssh/id_rsa.pub master@master:~/.ssh/id_rsa.pub.data2
    #master
    cd ~/.ssh
    cat ./id_rsa.pub.data1 >> ./authorized_keys 
    cat ./id_rsa.pub.data2 >> ./authorized_keys 
    scp ~/.ssh/authorized_keys master@data1:~/.ssh/
    scp ~/.ssh/authorized_keys master@data2:~/.ssh/
    #测试
    ssh data1
    ssh data2
    #如果登录失败,尝试更改authorized_keys权限
    chomd 700 ~/.ssh  #仅拥有者有读、写权限
    chmod 600 ~/.ssh/authorized_keys #仅拥有者有读、写、执行权限
    
  5. 配置slaves

    #master@master:/usr/software/hadoop/etc/hadoop$ vim slavescd /usr/software/hadoop/etc/hadoop
    vim slaves
    master
    data1
    data2
    在data1和data2上做同样配置
    
  6. 格式化namenode

    #master
    hadoop namenode -format
    start-dfs.sh  start-yarn.sh        #start-all.sh
    jpsmaster节点中有六个进程
    5840 Jps
    5171 NameNode
    5524 SecondaryNameNode
    5814 NodeManager
    5654 ResourceManager
    5335 DataNode
    data节点中有三个进程
    2962 NodeManager
    3079 Jps
    2829 DataNodestop-dfs.sh and stop-yarn.sh
    
  7. 测试hdfs

    hdfs dfs -mkdir /input
    hdfs dfs -put /usr/software/hadoop/README.txt /inputmaster:50070
    
  8. 测试MapReduce

    #hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar /input /outputhadoop jar /usr/software/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input /outputhdfs dfs -cat /output/*#如果不知道能运行的主函数名称 可以使用:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar 
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414567.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火焰传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 IR.h文件 IR.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 火焰传感器是一种常用于检测火焰或特定波长&#xff08;760nm-1100nm&#xff09;红外光的传感器。探测角度60左右&am…

Docker占用根目录/存储空间过多如何清理?

问题背景 使用df -h查看磁盘空间时发现根目录空间不多了&#xff0c;已使用96%&#xff0c;红色警告&#xff01;&#xff01;&#xff01; 于是使用df -h /* 一层一层定位&#xff0c;终于找到了一个大文件 9G多的文件夹&#xff0c;位置是&#xff1a; /var/lib/docker/o…

无线通信-WIFI通信

文章目录 1. 基础知识2. 工作模式3. AT指令4. 常用AT指令实例5. 连接原子云6. 使用usb转ttl模块测试ATK-MW8266D7. 使用STM32F103ZET6战舰开发板透传模式8. 使用STM32F103ZET6战舰板连接原子云 1. 基础知识 ATK-ESP-01 ATK-ESP-01模块支持标准的IEEE802.11b/g/n协议&#xff0c…

【Linux】文件魔法师:时间与日历的解密

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件魔法师&#xff1a;时间与日历的解密 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码…

【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述 uni-data-select的下拉列表值localdata是动态获取的&#xff0c;且绑定了change方法&#xff0c;在页面加载后&#xff0c;请求localdata的列表数据&#xff0c;给localdata重新赋值&#xff0c;此时发现自动触发了change方法 当前uni版本&#xff1a;^2.0.2-30709202…

Axure RP10安装教程(Pro版)

下载链接 https://ga90eobypbb.feishu.cn/docx/UyzSd4q8SoXySjxtrcac4QnVn3f Axure RP 是一款专业的快速原型设计工具。它能帮助用户高效地创建网页和移动应用的线框图、流程图、原型和规格说明文档。拥有丰富的交互组件&#xff0c;可模拟各种复杂交互效果&#xff0c;如点击…

【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果

欢迎来到《小5讲堂》 这是《千帆》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景基本信息名称简介角色指令 能力扩展组件对话开场白推荐问 模型选…

98.SAP MII功能详解(12)Workbench-Transaction Logic(For Next Loop)

目录 1.Logic->For Next Loop 2.演示 配置对象 配置连接 for循环的整体演示 1.Logic->For Next Loop 此操作用于在预定义的次数内执行任务。每次迭代都会执行直接跟随For Next循环操作的所有操作&#xff0c;直到达到To限制。 若要在达到To属性限制之前停止&…

旅行追踪和行程规划工具AdventureLog

什么是 AdventureLog &#xff1f; AdventureLog 是一种记录您的旅行并与世界分享的简单方法。您可以在日志中添加照片、笔记等。跟踪您访问过的国家、探索去过的地区和地方。您还可以查看您的旅行统计数据和里程碑。AdventureLog 旨在成为您终极的旅行伴侣&#xff0c;帮助您记…

【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)

note 总结了VidGen数据集、Panda-70m数据集、Openvid数据集、OpenVid-1M数据集、Cogvideox训练数据准备过程、ShareGPT4Video数据集等在一篇综述中还总结了评估指标包括&#xff1a;峰值信噪比&#xff08;PSNR&#xff09;、结构相似性指数&#xff08;SSIM&#xff09;、Inc…

matlab 将数组从左向右翻转

目录 一、概述1、算法概述2、主要函数二、代码示例1、翻转行向量2、翻转字符元胞数组3、翻转多维数组三、参考链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、概述 1、算法概述 将数组从左向右翻转 2、主要…

C++实现彩虹猫时空隧道特效(无害)

#include <Windows.h> // 如果不是在Visual Studio环境下运行的话W最好改小写。 using namespace std;int main() {for (int i 1; i < 10; i) {HDC hdc GetWindowDC(GetDesktopWindow());RECT rect;GetWindowRect(GetDesktopWindow(), &rect);StretchBlt(hdc, r…

[工具使用]ellisys

工具打开&#xff1a; 1.连接ellisys电源&#xff0c;ellisys Computer接口USB连接电脑&#xff0c;Logic接口与板子出信号的GPIO口连接 工具配置 1.点击"Configure" 2.在打开的Recording options中选择Wireless选项卡 2.选择Wired选项卡​ i.勾选Logic transit…

中秋佳节,悦动之选,精选热门骨传导耳机深度推荐

在这个金秋送爽、月圆人团圆的中秋佳节&#xff0c;我们不仅仅沉浸在月饼的香甜与家人的温馨之中&#xff0c;更渴望一份能够连接心与自然的独特礼物&#xff0c;让这份团聚的时光更加丰富多彩。在这个充满诗意的季节里&#xff0c;我满怀欣喜地向您推荐一款集科技、健康与时尚…

Maven的相关配置和使用

Maven的配置&#xff1a; Maven的配置和Java差不多&#xff0c;从镜像站下载相关的Maven版本压缩包&#xff0c;然后解压到自己的D盘&#xff0c;在进行系统变量的配置&#xff0c;新建变量Maven_HOME&#xff0c;然后值设置为Maven的地址&#xff0c;一定是点开文件后就能出现…

页面间对象传递的几种方法

页面间对象传递的几种方法 1. 使用request对象传递2. 使用session对象传递3. 使用application对象传递4. 使用cookie传递 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Web开发中&#xff0c;页面间的数据传递是一个常见的需求。本文将…

java 实现文本转音频

文章目录 一、前言二、实现流程2.1 下载jacob-1.18.zip2.2 拷贝jacob-1.18-x64.dll2.3 pom 添加依赖2.4 代码实现 一、前言 本文基于Windows自带的SAPI.SpVoice&#xff0c;通过java代码实现文本转语音的功能。 二、实现流程 2.1 下载jacob-1.18.zip 链接&#xff1a;https…

号称史上最强AI的Google Gemini,通过大语言模型的帮助如何实现智能交互?

导读&#xff1a; 本文旨在探索一条创新的路径&#xff0c;即通过利用Google的Gemini Flash而非广为人知的LangChain&#xff0c;来实现与CSV文件的智能交互。本文将构建一个简单的CSV解释器&#xff0c;利用大型语言模型&#xff08;LLM&#xff09;来生成代码并解析数据&…

2024年互联网公司时薪排行榜大曝光!看完我酸了,第一竟是他…

大家好呀&#xff0c;我是胡广&#xff0c;今天看到千峰教育公众号分享一个对于选择公司非常有用的参考&#xff1a;“互联网时薪”。特地分享给各位看看 很多小伙伴在选择一家公司的时候更关注总收入package (除了基本的月薪&#xff0c;加上其他的所有的收入&#xff0c;包括…

惊喜!万博智云亮相2024数博会和第三届828 B2B企业节

摘要 万博智云作为2024 828 B2B企业节铂金合作伙伴&#xff0c;在2024中国国际大数据产业博览会的828 B2B企业节开幕式上亮相&#xff0c;并参加了本次828企业节的一系列活动&#xff0c;包括在华为展台现场开展的“‘云上大咖团’直面数博会现场”的直播上发表了主题分享。 8…