大数据第一步-Mac安装Hadoop3

1.安装工作

1.1 准备工作

前提是把jJDK8安装好,hadoop3.x最低需要jdk8。

然后打开共享把远程登陆打开,不打开说是后面会报错,

到终端输入命令:ssh localhost

生成新的keygen否则后面会报错 Permission denied 命令:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  

注册关键字,命令为如下:

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

1.2 安装hadoop

安装hadoop,命令为我用的是brew,没有的话可以自行搜索先安装这个,很简单,然后安装Hadoop,命令为:brew install hadoop,如果出现如下的hadoop就代表安装好了,这里我安装了很多遍网不好的时候包下载不下来,选择wifi足的地方,哈哈哈!

此时可以在终端输入 :hadoop,我的jdk环境和hadoop没设置,报错如下ERROR: JAVA_HOME @@HOMEBREW_JAVA@@ does not exist.。 

1.3jdk环境配置

你安装了 JDK,你需要设置 JAVA_HOME 环境变量。在终端中输入以下命令来查找 JDK 的安装路径:命令为:/usr/libexec/java_home,我的路径如下:

编辑你的 ~/.bash_profile 文件,可以使用以下命令来打开该文件:命令为:vi ~/.bash_profile

在打开的文件中,添加以下行来设置 JAVA_HOME 环境变量(将路径替换为你自己的安装路径)

export JAVA_HOME=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

保存并关闭文件。然后执行以下命令来使修改生效:命令为:source ~/.bash_profile

然后再执行hadoop ,不报这个错了

1.4 hadoop配置文件配置

我hadoopd安装的目录在这,在安装hadoop时控制台会告诉你hadoop安装在哪里,我的路径你这个 /opt/homebrew/Cellar/hadoop/3.3.6/ ,从这里边找到配置文件进行修改,

我的配置文件目录如下: /opt/homebrew/Cellar/hadoop/3.3.6/libexec/etc/hadoop下

 配置hadoop-env.sh配置文件,可以用vi指令,也可以打开文件更改,找到export jJAVA_HOME把#号去掉,将java的环境变量加进来,注意加引号,我就是没加引号一直报环境变量的错误,哎.

 export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"

找到core-site.xml文件,添加如下配置,注意(fs.defaultFS的value配置的值,代码要访问hdfs必须和这个ip匹配,我因为是另一个机器访问所以这里要配上本机ip,端口号的使用也要能对身上,我后期使用时一直报连接拒绝就是这里的问题,端口配置的和使用的不一样,这里写错了

<!-- Put site-specific property overrides in this file. --><configuration><property><name>hadoop.tmp.dir</name><value>file:/opt/homebrew/Cellar/hadoop/3.3.6/libexec/tmp</value></property><property><name>fs.defaultFS</name><value>hdfs://192.168.1.4:8082</value></property>
</configuration>

HDFS的配置,在hdfs-site.xml里配置了临时存储,与访问权限

<!-- Put site-specific property overrides in this file. --><configuration>
<property><name>dfs.replication</name><value>3</value></property><property> <name>dfs.namenode.name.dir</name><value>file:/opt/homebrew/Cellar/hadoop/3.3.6/libexec/tmp/dfs/name</value></property><property><name>dfs.namenode.data.dir</name><value>file:/opt/homebrew/Cellar/hadoop/3.3.6/libexec/tmp/dfs/data</value></property><property>  <name>dfs.permissions</name>  <value>false</value>  </property></configuration>

mapred-site.xml配置,这里的配置主要是mapReduce的。

<!-- Put site-specific property overrides in this file. --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

yarn-site.xml配置如下:

<configuration><!-- Site specific YARN configuration properties --><property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property><property> <name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property>
</configuration>

配置文件完毕!

1.5 hadoop启动

对文件系统进行格式化,先进入到 /usr/local/Cellar/hadoop/3.2.1_1/libexec/bin 路径中,在终端输入如下命令:hdfs namenode -format

得到图片的信息代表成功了!


0然后 cd /opt/homebrew/Cellar/hadoop/3.3.6/sbin 到此目录下,启动hadoop,执行命令:./start-dfs.sh     

页码输入:http://localhost:9870,出现如下结果:我们可以通过浏览器访问http://你的容器IP:9870/来查看 HDFS 面板以及详细信息

 

 相同目录下执行命令:./start-yarn.sh        启动yarn,hadoop的调度系统

网页输入:http://localhost:8088,出现如下界面:

 到此hadoop安装完成!

可以用 hdfs dfsadmin -report 命令来获取有关集群状态的详细信息。

关闭hadoop命令为:stop-dfs.sh

1.6 问题一,native不存在

安装完操作hdfs,比如查看文件 ,命令为:hadoop fs -ls /

结果会报这个,说是不能加载hadoop的native,

2023-07-17 17:13:28,448 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

网上搜索找到了原因,是因为我采用的brew是没有这个/lib/native环境的,要么找对应版本下载,要么需要到官网下载编译,我是在git上找到的,虽然和我的版本差的多,但能用,

找到目录以后直接放入,配置文件配置一下即可,我放到了此目录下: /opt/homebrew/Cellar/hadoop/    

 执行命令:vi ~/.bash_profile 

添加如下这一行,路径为你自己放的路径

export HADOOP_OPTS="-Djava.library.path=/opt/homebrew/Cellar/hadoop/lib/native"

然后执行这个命令:source ~/.bash_profile

再执行如下这个命令,此命令为查看Hadoop里的hdf的相对文件,如果里边没有文件为空,里边有文件则显示文件夹以及文件数量

hadoop fs -ls /     

 1.7 问题二,Datanode没有启动起来

测试上传文件输入如下命令:

# 上传文件
hadoop fs -put hello.txt /hello/

 报这个错的主要原因是因为Datanode没有启动起来,你可以用jps这个命令查看下,如果没有Datanode进程就代表没启动起来。

There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

jps 看一直没有DataNode,/opt/homebrew/Cellar/hadoop/3.3.6/libexec/tmp/data下的current文件删除,关闭(stop-dfs.sh)启动下(start-dfs.sh)就有了 。

before

after

 在执行上传文件,就ok了,我们可以执行查看文件内容也是ok的!

# 上传文件
hadoop fs -put hello.txt /hello/# 下载文件
hadoop fs -get /hello/hello.txt
# 输出文件内容
hadoop fs -cat /hello/hello.txt

 

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

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

相关文章

数学建模-拟合算法

这里的线性函数指的是参数为线性&#xff0c;而不是变量为线性。 yabx^2是线性的 用的比较多的是多项式拟合和自己定义的 拓展资料&#xff1a;工具箱曲线拟合类型评价解释 文件-导出代码 自动生成的代码修改图名和标签 如果不收敛&#xff0c;自己要修改初始值&#xf…

Python(Conda)环境迁移(从win10到macos12.5)笔记

文章目录 背景环境 1、通过conda迁移2、通过python迁移3、最后&#xff08;逐一安装&#xff09; 背景环境 win10是以前安装的conda和py。目前需要导出的环境的版本为py3.10.4。macos是重新安装的conda&#xff0c;目前有的环境是py3.11.4。我是先进conda用刚安装好的base创建…

vulnhub靶场noob:1

靶机下载地址&#xff1a;Noob: 1 ~ VulnHub Arp发现主机 arp-scan -l 扫描端口 nmap --min-rate 10000 -p- 192.168.21.132 扫描端口的服务版本号以及操作系统 nmap -sV -sT -sC -O -p21,80 192.168.21.132 可以看到ftp里面有文件&#xff0c;web是php 扫描基础漏洞 nma…

C++ cin

cin 内容来自《C Primer》 cin使用>>运算符从输入流中抽取字符 int carrots;cin >> carrots;如下的例子&#xff0c;用户输入的字符串有空格 #include <iostream>int main() {using namespace std;const int ArSize 20;char name[ArSize]; //用户名char …

【Linux】网络基础之UDP协议

目录 &#x1f308;前言&#x1f338;1、传输层&#x1f33a;2、重谈端口号&#x1f368;2.1、端口号范围划分&#x1f367;2.2、认识知名端口号 &#x1f340;3、UDP协议&#x1f368;3.1、UDP协议报文结构&#x1f369;3.2、UDP协议的特点&#x1f36a;3.3、基于UDP的应用层协…

linux -rw-r--r-x的含义

-rw-r--r-x的含义 权限显示位一共为10位&#xff0c;分为四段&#xff0c;从第2位算起&#xff0c;每3个1组 -rw-r--r-x-表示为普通文件文件所属用户拥有的权限rw-&#xff1a;426该用户所属组拥有的权限r--&#xff1a;4其他用户拥有的权限r-x&#xff1a;415 操作英文对应数…

生成式AI时代,亚马逊云科技致力推动技术的普惠,让更多企业受益

当谈及AIGC时&#xff0c; 我们该谈些什么&#xff1f; 生成式AI技术与应用的不断发展&#xff0c;为各个行业都注入了全新的机会与活力。AIGC成为了今年最为激动人心的技术话题。亚马逊云科技也一马当先&#xff0c;在6月27-28日&#xff0c;2023亚马逊云科技中国峰会上分享…

软件测试项目经验重要吗?

目前从行业薪资排名看&#xff0c;IT行业是我们普通人能够接触到的高薪行业&#xff0c;像金融、银行和投行等高薪职位&#xff0c;张雪峰老师在他的视频中分析过&#xff0c;不是一般人可以拿捏的。IT行业的大部分岗位需要专业的技能&#xff0c;留给我们这些非计算机专业科班…

Mac 谷歌浏览器选中查看悬浮出现的元素样式

Mac 谷歌浏览选中查看悬浮出现的元素样式 1. Mac 暂停脚本执行快捷键 command \或F8 2.以斗鱼主站下载悬浮面板为例 3. 操作步骤 &#xff08;1&#xff09;打开控制台&#xff0c;选中源代码 &#xff08;2&#xff09;鼠标选中下载&#xff0c;让面板悬浮出来 &#xf…

React中的key有什么作用?

一、是什么 首先&#xff0c;先给出react组件中进行列表渲染的一个示例&#xff1a; const data [{ id: 0, name: abc },{ id: 1, name: def },{ id: 2, name: ghi },{ id: 3, name: jkl } ];const ListItem (props) > {return <li>{props.name}</li>; };co…

【微服务】集成其他已有的模块

目录 下载新的模块信息删除git信息将已有模块复制到当前项目里面在父pom文件中&#xff0c;加上复制进的模块重新解析结果 下载新的模块信息 删除git信息 将已有模块复制到当前项目里面 在父pom文件中&#xff0c;加上复制进的模块 重新解析 结果 集成完成

学习记录——语义分割、实时分割和全景分割的区别、几个Norm的区别

语义分割、实时分割和全景分割区别&#xff1f; semantic segmentation&#xff08;语义分割&#xff09; 通常意义上的目标分割指的就是语义分割&#xff0c;图像语义分割&#xff0c;简而言之就是对一张图片上的所有像素点进行分类。   语义分割&#xff08;下图左&#…