Kali Linux 安装搭建 hadoop 平台 调用 wordcount 示例程序 详细教程

news2025/1/11 3:50:38

步骤一:

目标:*安装虚拟机,在自己虚拟机上完成hadoop的伪分布式安装。(安装完成后要检查)*

1)前期环境准备:(虚拟机、jdk、ssh)

img

2)SSH相关配置

安装SSH Server服务器:apt-get install openssh-server

img

更改默认的SSH密钥

cd /etc/ssh

mkdir ssh_key_backup

mv ssh_host_* ssh_key_backup

img

创建新密钥:dpkg-reconfigure openssh-server

img

允许 SSH Root 访问,修改SSH 配置文件 /etc/ssh/sshd_config :vim /etc/ssh/sshd_config

img

重启SSH:service ssh restart

查看是否安装成功:ssh -V

img

SSH登录本机:ssh localhost

若是登陆失败提示权限不足:

sudo passwd root 注意此处的root为当前登录本机所在的用户名,不一定是root

sudo service ssh restart

ssh localhost

img

SSH无密登录:

退出刚才的ssh localhost:exit

cd ~/.ssh/

ssh-keygen -t rsa 这里一直回车就行

cat ~/.ssh/id_rsa.pub >> ./authorized_keys

img

最后,SSH授权完成,再次ssh localhost 则不再需要密码了,也不再影响伪分布hadoop启动。

img

3)安装Hadoop

首先在官网上下载压缩包(版本3.2.2)。然后将压缩包拖进自己喜欢的目录(个人是/home/jay17)。

1、之后创建一个空的文件夹,用来解压hadoop

mkdir /home/Hadoop

2、解压,-C 指定解压路径到创建的文件夹路径。

tar zxvf hadoop-3.2.2.tar.gz -C /home/jay17/Hadoop/

img

3、授权,使文件夹具有读写文件的权利,否则直接影响其他相关操作,必须要执行!!

chown -R root /home/jay17/Hadoop/hadoop-3.2.2/

4、检测Hadoop是否解压安装正确:

cd /home/jay17/Hadoop/hadoop-3.2.2/

./bin/hadoop version

遇到报错说java环境变量不存在。

img

5、解决方法如下:

切换目录: cd etc/hadoop

执行:vim hadoop-env.sh

修改java_home路径和hadoop_conf_dir路径为具体的安装路径,例如:

export JAVA_HOME=/usr/local/jdk1.8.0_212

export HADOOP_CONF_DIR=/home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop

img

重新加载使修改生效:source hadoop-env.sh

6、回去检测Hadoop,已经解压安装!

cd /home/jay17/Hadoop/hadoop-3.2.2/

./bin/hadoop version

img

4)配置Hadoop环境变量

与java环境变量的配置类似,用编辑器打开.bashrc文件(vim /root/.bashrc),保存修改后,执行source /root/.bashrc命令使其生效:

export HADOOP_HOME=/home/jay17/Hadoop/hadoop-3.2.2

export CLASSPATH= C L A S S P A T H : CLASSPATH: CLASSPATH:HADOOP_HOME/lib

export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin

img

保存并生效后,便可在任何路径下使用hadoop命令了,使用hadoop version命令验证。出现此前执行./bin/hadoop version命令时所出现的信息,则证明环境变量修改无误。

img

一定要确定写对后再执行生效,避免不必要的麻烦,如果操作不当,导致命令几乎失效的话,请执行该命令恢复:

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

5)伪分布模式配置

Hadoop的伪分布运行是指,同一个节点既是名称节点(Name Node),也是数据节点(Data Node),读取分布式文件系统HDFS的文件。安装不同模式Hadoop,就是修改其配置文件符合模式要求。

Hadoop有俩配置文件,一个是core-site.xml文件,另一个是hdfs-site.xml,其相对路径是在 hadoop-3.2.2/etc/hadoop/ 下。

首先,修改core-site.xml配置文件

vim /home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop/core-site.xml

修改添加的内容:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

img

参数fs.defaultFS为默认文件系统名称,其值为Hadoop的Name Node地址和端口号,如hdfs://localhost:9000,即表示Name Node是本机,端口9000是HDFS的RPC端口,是HDFS的默认端口。

参数hadoop.tmp.dir用于确定Hadoop文件系统的原信息与数据保存在哪个目录下,是Hadoop文件系统依赖的基础配置,很多路径都依赖,如果hdfs-site.xml文件中不配置Name Node和Data Node的存放位置,默认放在此路径中。

参数dfs.permissions的值如果是true则检查权限,否则不检查权限(每个人都可以存取文件),该参数NameNode上设定。

其次,修改hdfs-site.xml配置文件

vim /home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop/hdfs-site.xml

修改添加的内容:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp/dfs/data</value>
    </property>
</configuration>

img

参数dfs.replication指明设置hdfs副本数,因为是伪分布模式,所以设置为“1”,默认备份3个副本。

参数dfs.namenode.name.dir 对应的value是存放名称节点的路径,参数dfs.datanode.data.dir 对应的value是存放数据节点的路径。这俩路径也可自行设置,但最好与临时文件路径一致,在初期实验时,遇到问题可以一并处理。

Hadoop的运行方式是由配置文件决定的,因为运行Hadoop时会读取配置文件,如果需要切换模式,只需要重新增加,删除或者修改core-site.xml和hdfs-site.xml文件中的配置项。

6)Name Node的格式化和hadoop启动关闭

配置完成,执行Name Node的格式化:(由于,hadoop生效了环境变量,所以在任何路径下均可执行。)

hdfs namenode -format

出现"successfully formatted"和"Exiting with status 0"的字样,则证明格式化成功!

start-dfs.sh只启动Name Node和Data Node,启动命令如下:

cd /home/jay17/Hadoop/hadoop-3.2.2

./sbin/start-dfs.sh

遇到以下报错请参考以下文章:

hadoop启动报错:Attempting to operate on hdfs namenode as root_hzp666的博客-CSDN博客

Hadoop单点安装FAQ-CSDN博客

img

WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.-CSDN博客

img

查看进程命令:jps

起来四个进程如303108 DataNode 303012 NameNode 303453 Jps 303274 SecondaryNameNode就是正常的。

停止命令如下:

./sbin/stop-dfs.sh

所有命令连贯展示:

img

如果NameNode一直起不来,看看是不是端口冲突了,hadoop配置文件里面我们改的是9000端口,我的portainer(docker管理平台)也是9000端口,导致我因为NameNode起不来卡了好几天。。。。

步骤二:

1)在hdp家目录下新建lab2目录,在lab2目录中新建word.txt,并在其中录入若干单词。

mkdir /home/lab2

echo jsj >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

echo jay17 >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

echo jay17 >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

echo jay17 >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

echo jsj >> /home/lab2/word.txt

img

2)在HDFS的根目录下新建hdp用户目录/user/hdp目录,并在用户目录下新建input目录,将本地文件系统中的lab2目录中的word.txt文件上传到HDFS的input目录中。

hadoop fs -mkdir /user

hadoop fs -mkdir /user/hdp

hadoop fs -mkdir /user/hdp/input

hadoop fs -copyFromLocal /home/lab2/word.txt /user/hdp/input/

img

3)调用wordcount示例程序统计word.txt中的单词出现次数,将结果写入用户目录的output中,查看统计结果。

hadoop jar /home/jay17/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount /user/hdp/input /user/output

Hadoop: 是$HADOOP_HOME/bin下的shell脚本名。

jar:hadoop脚本需要的command参数。

/home/jay17/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar :要执行的jar包在本地文件系统中的完整路径,参递给RunJar类。

wordcount :main方法所在的类,参递给RunJar类。

/user/hdp/input:传递给WordCount类,作为DFS文件系统的路径,指示输入数据来源。

/user/output:传递给WordCount类,作为DFS文件系统的路径,指示输出数据路径。

img

hadoop fs -ls /user/output

hadoop fs -cat /user/output/part-r-00000

img

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MyBatis篇】MyBatis动态代理总结

本人正在浅学mybatis&#xff0c;正学到mybatis动态代理&#xff0c;在查询多方资料之后做出以下总结&#xff0c;以便于系统学习时回顾&#xff1b; 目录 MyBatis为什么引入动态代理 mybatis的动态代理 Dao代理技术 MyBatis为什么引入动态代理 因为程序员的 懒&#xff0c;…

访问控制2

文章目录 主要内容一.Role和ClusterRole1.ClusterRole示例&#xff0c;创建一个名为test-clusterrole且仅有创建Pod和deployment的集群角色代码如下&#xff08;示例&#xff09;: 2.YAML文件创建代码如下&#xff08;示例&#xff09;: 3.将udbs用户和Clusterrole进行绑定&…

0基础学习VR全景平台篇第112篇:控制点和遮罩工具 - PTGui Pro教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 前情回顾&#xff1a;上节&#xff0c;我们用PTGui拼接了一张全景图&#xff0c;全景编辑器里的各项功能帮助我们进行了初步的检查和编辑。 之后我们需要使用【控制点】和【遮罩…

智慧垃圾站:AI视频智能识别技术助力智慧环保项目,以“智”替人强监管

一、背景分析 建设“技术先进、架构合理、开放智能、安全可靠”的智慧环保平台&#xff0c;整合环境相关的数据&#xff0c;对接已建业务系统&#xff0c;将环境相关数据进行统一管理&#xff0c;结合GIS技术进行监测、监控信息的展现和挖掘分析&#xff0c;实现业务数据的快速…

【AI视野·今日CV 计算机视觉论文速览 第271期】Thu, 19 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Thu, 19 Oct 2023 Totally 63 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Learning from Rich Semantics and Coarse Locations for Long-tailed Object Detection Authors Lingchen Meng, Xiyang D…

偕行十年,阿里云助力众安保险用科技温暖每一张保单

云布道师 前言&#xff1a;应云而生的众安保险&#xff0c;其 IT 架构都搭建在阿里云上&#xff0c;云服务器 ECS 关键应用上的数据需要保护&#xff0c;需要简单易用、稳定性高的方案&#xff0c;助力保险业务的快速开发和上线。在经过全面充分地沟通评估后&#xff0c;众安保…

凌晨!腾讯云终于发布了2023年度双十一优惠活动!

2023腾讯云双11优惠价格表终于来了&#xff0c;轻量2核2G3M云服务器88元一年、轻量2核4G5M服务器166.6元一年、3年轻量2核2G4M带宽优惠价366.6元、3年轻量2核4G5M配置566.6元&#xff0c;CVM云服务器2核2G配置SA2实例172.3元一年、标准型S5服务器2核2G配置280.8元一年&#xff…

个人微信管理系统都有些什么功能呢?

个人微信管理系统是一项高效的工具&#xff0c;可协助企业有效管理多个微信账号&#xff0c;从而提升工作效率。该系统允许企业在电脑上集中管理所有微信账号&#xff0c;省去了频繁切换设备的繁琐&#xff0c;同时还可以将微信账号分派给员工以进行更高效的微信管理。 来看看微…

融合通信系统在大型运动会中的应用

随着经济社会的发展&#xff0c;大型体育运动会的规模不断扩大&#xff0c;融合通信设备及指挥调度系统的应用逐渐成为不可或缺的一部分。通过融合通信设备的产品保障以及指挥调度系统的技术保障&#xff0c;可以对比赛进行高效、准确和实时的指挥和调度&#xff0c;确保比赛的…

安防视频监控平台EasyCVR新版(V.3.4)平台界面更新2.0

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

软考系统架构师知识点集锦一:系统工程与信息系统基础

一、考情分析 二、考点精讲 2.1 软件开发方法 &#xff08;1&#xff09;结构化开发方法 用户至上&#xff0c;自顶向下,逐步分解(求解)&#xff0c;严格区分工作阶段&#xff0c;每阶段有任务与成果&#xff0c;强调系统开发过程的整体性和全局性&#xff0c;系统开发过程工…

自动驾驶的未来展望和挑战

自动驾驶技术是一项引人瞩目的创新&#xff0c;将在未来交通领域产生深远影响。然而&#xff0c;随着技术的不断演进&#xff0c;自动驾驶也面临着一系列挑战和障碍。本文将探讨自动驾驶的未来发展方向、技术面临的挑战&#xff0c;以及自动驾驶对社会和环境的潜在影响。 自动驾…

基于springboot实现车辆充电桩平台管理系统项目【项目源码+论文说明】

基于sprinboot实现车辆充电桩管理平台系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;车辆充电桩管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#…

【算法挨揍日记】day17——1137. 第 N 个泰波那契数、面试题 08.01. 三步问题

1137. 第 N 个泰波那契数 1137. 第 N 个泰波那契数 题目描述&#xff1a; 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 解题思路&#xff1a; 本题很…

spark案例分析-搜索引擎日志分析案例

1.业务分析 2.数据截图 3.代码实现&#xff1a; main.py&#xff1a; #cording:utf8 from pyspark import SparkConf, SparkContext from pyspark.storagelevel import StorageLevel from defs import content_jieba, filter_word, append_word, extract_user_and_word from o…

数据结构和算法——图结构

图是一种数据结构&#xff1b; 图 有向图 带权图 邻接矩阵 邻接表相较于邻接矩阵&#xff0c;减少了存储空间&#xff1b; 邻接表 图的深度优先遍历(DFS) 图的广度优先遍历(BFS) 代码&#xff1a; import java.util.ArrayList; import java.util.Arrays; import java.util.L…

【定向征文活动】2023年深圳1024开发者城市聚会活动参会感想征文

深圳1024开发者城市聚会&#xff0c;有奖征文&#xff0c;欢迎大家来参与。 活动介绍 就在2023年10月22日&#xff0c;深圳COC社区与CSDN主办方联合发起了本年度深圳1024开发者城市聚会活动。活动一经发出&#xff0c;收到了小伙伴的热烈反响&#xff0c;一时间报名人数蹭蹭地…

墨西哥专线海运的集装箱尺寸选择

在国际贸易中&#xff0c;海运是一种常见的运输方式&#xff0c;而集装箱作为一种标准化的物流载具&#xff0c;其大小直接影响着货物的装卸和堆垛效率。对于需要通过墨西哥专线海运的客户来说&#xff0c;了解不同尺寸集装箱的优势和适用范围&#xff0c;可以帮助他们更有效地…

Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)

MVC房贷计算器&#xff08;Ajax版&#xff09; 1.新建一个JavaWeb项目hslcalweb&#xff0c;设置tomcat10。 2.创建房贷计算器JavaBean&#xff1a;HslCalBean.java&#xff0c;增加以下的属性&#xff0c;并生成Getter/Setter方法。 private double total; //贷款额度pr…

Linux安装JumpServer

功能简介在线安装 环境要求&#xff1a;准备一台 2核4G &#xff08;最低&#xff09;且可以访问互联网的 64 位 Linux 主机 以 root 用户执行如下命令一键安装 JumpServer curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_st…