目录
前言:
1. 下载最新的hadoop 安装包
2. 安装hadoop
2.1 查看java环境位置
2.2 修改hadoop-env.sh文件
2.3 修改core-site.xml
2.4 配置文件系统 hdfs-site.xml
2.5 配置计算框架 mapred-site.xml
2.6 配置文件系统 yarn-site.xml
2.7 Hadoop namenode 格式化
3. 启动hadoop集群
3.1 如果Connection refused配置ssh
3.2 util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
3.3 发现http://localhost:50070启动之后打不开,其实hadoop3.0之后变成了http://localhost:9870
3.4 18088 yarn正常
Hadoop运行环境基于Java,必须要有jdk环境
修改配置文件,用图形化的就好,不用非得vim。右键要打开的文件,选择打开方式-文本编辑。
注意建立文件夹,给与最高权限哈。否则可能会出问题。
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
也可以用brew安装
brew install hadoop
brew下载的话,会在/usr/local/Cellar/ 这个目录下面。
那么去找:
/usr/local/Cellar/hadoop/
直接下下来:
我选择直接下下来,放在我常用的环境目录。(因为brew好慢)
下下来直接用图形化的拷贝到想放的目录,然后双击解压即可。
我放在了用户根目录建了一个environment的文件夹,常用的环境变量都放在那了
/Users/dk/environment/hadoop/hadoop-3.2.2
这个是解压缩hadoop所在的文件夹目录
HADOOP_HOME=/Users/dk/environment/hadoop/hadoop-3.2.2
先编辑
vim ~/.bash_profile
添加下述内容,注意 HADOOP_HOME要更改为你自己的安装环境目录
vim 按i 进行插入编辑,按esc然后:wq!保存
# hadoop
export HADOOP_HOME=/Users/dk/environment/hadoop/hadoop-3.2.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
退出编辑模式,使用 :wq! 保存修改
使环境变量生效 source ~/.bash_profile
终端输入检查是否配置成功:
hadoop version
Hadoop 3.2.2
Source code repository Unknown -r 7a3bc90b05f257c8ace2f76d74264906f0f7a932
Compiled by hexiaoqiao on 2021-01-03T09:26Z
Compiled with protoc 2.5.0
From source with checksum 5a8f564f46624254b27f6a33126ff4
This command was run using /Users/dk/environment/hadoop/hadoop-3.2.2/share/hadoop/common/hadoop-common-3.2.2.jar
终端输入:
/usr/libexec/java_home
结果:
/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
接下来修改etc/hadoop/下面的sh文件和xml配置文件(我直接在图形化界面找的)
command+f 搜索
# export JAVA_HOME=
然后填充上面的java环境位置
放在
默认情况下,Hadoop 将数据保存在/tmp 下,当重启系统时,/tmp 中的内容将被自动清空, 所以我们需要指定自己的一个 Hadoop 的目录,用来存放数据。
另外需要配置 Hadoop 所使用的默认文件系统,以及 Namenode 进程所在的主机。
注意更改 file的位置,换成自己建立的一个缓存目录
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
file:/Users/dk/Documents/hadoop_tmp
fs.trash.interval
1440
该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认 情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所 以需要将副本个数改为 1;否则 Hadoop 程序会报错。
注意更换目录,自己建立dfs/name文件夹
dfs.replication
1
dfs.permissions
false
dfs.namenode.name.dir
file:/Users/dk/Documents/hadoop_tmp/dfs/name
dfs.datanode.data.dir
file:/Users/dk/Documents/hadoop_tmp/dfs/data
可能历史版本,没有mapred-site.xml,提供了模板 mapred-site.xml.template 将其重命名为 mapred-site.xml 即可。
该版本存在,直接编辑。
mapreduce.framework.name
yarn
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
localhost:18040
yarn.resourcemanager.scheduler.address
localhost:18030
yarn.resourcemanager.resource-tracker.address
localhost:18025
yarn.resourcemanager.admin.address
localhost:18141
yarn.resourcemanager.webapp.address
localhost:18088
hdfs namenode -format
成功则会看到”successfully formatted”和”Exitting with status 0”的提示,若为 “Exitting with status 1” 则是出错。
报错
2021-01-26 15:26:37,331 ERROR conf.Configuration: error parsing conf core-site.xml
因为,少了个 <
可以用https://www.runoob.com/xml/xml-validator.html来进行xml校验。已改正。
见到了successfully成功:
2021-01-26 15:30:30,464 INFO common.Storage: Storage directory /Users/dk/Documents/hadoop_tmp/dfs/name has been successfully formatted.
正常启动:
Web UI 查看集群是否成功启动,浏览器中打开http://localhost:50070/,以及http://localhost:18088/;检查 namenode 和 datanode 是否正常,检查 Yarn 是否正常。
检查:
终端输入jps
遇到了:Connection refused
Starting resourcemanager
Starting nodemanagers
localhost: ssh: connect to host localhost port 22: Connection refused
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 验证ssh
ssh localhost
如果已经配置过git
直接用
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 验证ssh
ssh localhost
验证结果:
Last login: Tue Jan 26 15:37:56 2021 from 127.0.0.1
查询得到,暂时无视
对后续操作比如
hadoop fs
和hive等不影响,不是强迫症的可以暂时无视它,哈哈),无法为平台加载本地hadoop库…可使用合适的内置java类。
解决:
自Hadoop 3.0.0 - Alpha 1以来,端口配置发生了变化:
http://localhost:50070
已移至
http://localhost:9870
请参阅 https://issues.apache.org/jira/browse/HDFS-9427
完整走了一遍安装配置~下面开始wordcount
参考:https://blog.csdn.net/b_aihe/article/details/96650866