专门做生鲜的网站,wordpress引用js,小程序logo一键生成器,优化服务平台1. hadoop介绍
Hadoop是Apache基金会开发的一个开源的分布式计算平台#xff0c;主要用于处理和分析大数据。Hadoop的核心设计理念是将计算任务分布到多个节点上#xff0c;以实现高度可扩展性和容错性。它主要由以下几个部分组成#xff1a;
HDFS (Hadoop Distributed Fi…1. hadoop介绍
Hadoop是Apache基金会开发的一个开源的分布式计算平台主要用于处理和分析大数据。Hadoop的核心设计理念是将计算任务分布到多个节点上以实现高度可扩展性和容错性。它主要由以下几个部分组成
HDFS (Hadoop Distributed File System)HDFS是Hadoop的分布式文件系统具有较高的读写速度很好的容错性和可伸缩性为海量的数据提供了分布式存储。其冗余数据存储的方式很好地保证了数据的安全性。
MapReduceMapReduce是一种用于并行处理大数据集的软件框架编程模型。用户可在无需了解底层细节的情况下编写MapReduce程序进行分析和处理分布式文件系统上的数据MapReduce保证了分析和处理数据的高效性。
YARN (Yet Another Resource Negotiator)YARN是Hadoop2.0以后引入的另一个核心技术它是一个任务调度和集群资源管理系统。
2. 部署
2.1 下载
官方下载日志如下 https://dlcdn.apache.org/hadoop/common/ 这里选择 最新的3.3.6
2.2 解压
检查版本
bin/hadoop version2.3 配置
配置 java home etc/hadoop/hadoop-env.sh #注意修改为自己的 export JAVA_HOME/usr/local/develop/java/zulu-jdk17.0.7修改 etc/hadoop/core-site.xml:
configurationpropertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/property
/configuration修改 etc/hadoop/hdfs-site.xml:
configurationpropertynamedfs.replication/namevalue2/value/property
/configuration检查ssh Setup passphraseless ssh Now check that you can ssh to the localhost without a passphrase:ssh localhostIf you cannot ssh to localhost without a passphrase, execute the following commands:ssh-keygen -t rsa -P -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys注意已经存在ssh key的话 就不要重写了 不然会影响到 你之前配置的ssh key mac上系统配置了 也不行的话 参考 https://blog.csdn.net/a15835774652/article/details/135572420
2.4 开始启动
首先启动 hdfs 首次需要format文件系统 Format the filesystem:
bin/hdfs namenode -formatStart NameNode daemon and DataNode daemon:
sbin/start-dfs.shBrowse the web interface for the NameNode; by default it is available at: 默认的地址 NameNode - http://localhost:9870/ http://localhost:9868/
示例图 开启YARN You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition. The following instructions assume that 1. ~ 4. steps of the above instructions are already executed. Configure parameters as follows: etc/hadoop/mapred-site.xml:
configurationpropertynamemapreduce.framework.name/namevalueyarn/value/propertypropertynamemapreduce.application.classpath/namevalue$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*/value/property!-- 设置历史任务的主机和端口 --propertynamemapreduce.jobhistory.address/namevaluelocalhost:10020/value/property!-- 设置网页端的历史任务的主机和端口 --propertynamemapreduce.jobhistory.webapp.address/namevaluelocalhost:19888/value/property
/configurationetc/hadoop/yarn-env.sh (注意这个jdk8之后 必须要加 不然yarn启动会报错)
export JAVA_HOME/usr/local/develop/java/zulu-jdk17.0.7
export YARN_RESOURCEMANAGER_OPTS--add-opens java.base/java.langALL-UNNAMED
export YARN_NODEMANAGER_OPTS--add-opens java.base/java.langALL-UNNAMEDetc/hadoop/yarn-site.xml:
configurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.nodemanager.env-whitelist/namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME/value/property!-- 开启日志聚集功能 -- propertynameyarn.log-aggregation-enable/namevaluetrue/value/property!-- 设置日志聚集服务器地址 -- propertynameyarn.log.server.url/namevaluelocalhost:19888/jobhistory/logs/value/property!-- 设置日志保留时间为 7 天 -- propertynameyarn.log-aggregation.retain-seconds/namevalue604800/value/property
/configurationStart ResourceManager daemon and NodeManager daemon:
sbin/start-yarn.shBrowse the web interface for the ResourceManager 浏览器查看 ResourceManager - http://localhost:8088/ 启动/关闭 历史服务器
# 启动
mapred --daemon start historyserver
# 关闭
mapred --daemon stop historyserver 使用jps查看启动的应用 查看HistoryServer控制台 : http://localhost:19888 另外 在初始化之后 也可以直接启动 sbin/start-all.sh 这个命令会启动 hdfs 和 yarn (生产环境慎用) 关闭 同理 sbin/stop-dfs.sh 停止 hdfs sbin/./stop-yarn.sh 停止yarn 也可以直接 sbin/stop-all.sh 来关闭hdfs和yarn (生产环境慎用)
以上就完成了 hadoop的伪集群搭建
可能会遇到的问题
启动yarn后 在jps中无法看到 resourcemanager
在日志文件中 发现 yarn 启动失败了 Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module 4d7c417d
在yarn-env.sh 添加配置即可
export JAVA_HOME/usr/local/develop/java/zulu-jdk17.0.7 export YARN_RESOURCEMANAGER_OPTS“–add-opens java.base/java.langALL-UNNAMED” export YARN_NODEMANAGER_OPTS“–add-opens java.base/java.langALL-UNNAMED”
烦人的警告信息
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablehadoop的bin都是在特定的机器上进行编译的不一定能支持所有的机器
解决办法 首先在 hadoop-env,sh 文件添加参数
export HADOOP_HOME/usr/local/develop/hadoop-3.3.6
export HADOOP_COMMON_LIB_NATIVE_DIR$HADOOP_HOME/lib/native
export HADOOP_OPTS$HADOOP_OPTS -Djava.library.path$HADOOP_HOME/lib/native然后可以关闭或者启动集群 进行测试下 如果告警日志没有 那就说明 hadoop的native包适用你的机器如果还是提示 那就要编译源码了 但是网络上有 已经编译好的如果有自己对应的版本的话 可以直接使用 GitHub 地址 https://github.com/silent-night-no-trace/mac-native-hadoop-library
good day