[hadoop]3.0.0版本以上mac hadoop环境配置安装,以及安装的一些坑解决

目录

前言:

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。右键要打开的文件,选择打开方式-文本编辑。

注意建立文件夹,给与最高权限哈。否则可能会出问题。

1. 下载最新的hadoop 安装包

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

2. 安装hadoop

这个是解压缩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
  1. 退出编辑模式,使用 :wq! 保存修改

  2. 使环境变量生效 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

 

2.1 查看java环境位置

终端输入:

 /usr/libexec/java_home

结果: 

/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home

接下来修改etc/hadoop/下面的sh文件和xml配置文件(我直接在图形化界面找的)

2.2 修改hadoop-env.sh文件

command+f 搜索

# export JAVA_HOME=

然后填充上面的java环境位置

2.3 修改core-site.xml

放在<configuration>里面</configuration>

默认情况下,Hadoop 将数据保存在/tmp 下,当重启系统时,/tmp 中的内容将被自动清空, 所以我们需要指定自己的一个 Hadoop 的目录,用来存放数据。

另外需要配置 Hadoop 所使用的默认文件系统,以及 Namenode 进程所在的主机。

注意更改 file的位置,换成自己建立的一个缓存目录

<property>
     <name>fs.defaultFS</name>
     <value>hdfs://localhost:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录  自己创建-->
<property>
     <name>hadoop.tmp.dir</name>
     <value>file:/Users/dk/Documents/hadoop_tmp</value>
</property>
<property>
     <name>fs.trash.interval</name>
     <value>1440</value>
</property>

2.4 配置文件系统 hdfs-site.xml

该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认 情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所 以需要将副本个数改为 1;否则 Hadoop 程序会报错。

注意更换目录,自己建立dfs/name文件夹

<property>
     <name>dfs.replication</name>
     <value>1</value>
</property>
<!--不是root用户也可以写文件到hdfs-->
<property>
     <name>dfs.permissions</name>
     <value>false</value>    <!--关闭防火墙-->
</property>
<!-- name node 存放 name table 的目录 -->
<property>
     <name>dfs.namenode.name.dir</name>
     <value>file:/Users/dk/Documents/hadoop_tmp/dfs/name</value>
</property>
<!-- data node 存放数据 block 的目录 -->
<property>
     <name>dfs.datanode.data.dir</name>
     <value>file:/Users/dk/Documents/hadoop_tmp/dfs/data</value>
</property>

2.5 配置计算框架 mapred-site.xml

可能历史版本,没有mapred-site.xml,提供了模板 mapred-site.xml.template 将其重命名为 mapred-site.xml 即可。

该版本存在,直接编辑。

<property>
      <!--指定mapreduce运行在yarn上-->
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>

2.6 配置文件系统 yarn-site.xml

<!-- Site specific YARN configuration properties -->
<property>
<!-- mapreduce 执行 shuffle 时获取数据的方式 -->
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
</property>
<property>
      <name>yarn.resourcemanager.address</name>
      <value>localhost:18040</value>
</property>
<property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>localhost:18030</value>
</property>
<property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
       <value>localhost:18025</value>
</property>
<property>
       <name>yarn.resourcemanager.admin.address</name>
       <value>localhost:18141</value>
</property>
<property>
       <name>yarn.resourcemanager.webapp.address</name>
       <value>localhost:18088</value>
</property>

2.7 Hadoop namenode 格式化

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.

3. 启动hadoop集群

正常启动:

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

3.1 如果Connection refused配置ssh

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

3.2  util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

查询得到,暂时无视

对后续操作比如hadoop fs和hive等不影响,不是强迫症的可以暂时无视它,哈哈),无法为平台加载本地hadoop库…可使用合适的内置java类。

3.3 发现http://localhost:50070启动之后打不开,其实hadoop3.0之后变成了http://localhost:9870

解决:

自Hadoop 3.0.0 - Alpha 1以来,端口配置发生了变化:

http://localhost:50070

已移至

http://localhost:9870

请参阅 https://issues.apache.org/jira/browse/HDFS-9427

3.4 18088 yarn正常

 

完整走了一遍安装配置~下面开始wordcount

 

参考:https://blog.csdn.net/b_aihe/article/details/96650866

 

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,以下是在CentOS 7上搭建Hadoop 3.0.0完全分布式环境的步骤: 1.安装Java Hadoop是基于Java编写的,需要先安装Java。在终端中输入以下命令: ``` sudo yum install java-1.8.0-openjdk-devel ``` 2.下载和解压Hadoop 在终端中输入以下命令: ``` wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0.tar.gz tar -xzvf hadoop-3.0.0.tar.gz ``` 3.配置环境变量 打开环境变量配置文件: ``` sudo vi /etc/profile ``` 在文件末尾添加以下内容: ``` export HADOOP_HOME=/path/to/hadoop-3.0.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 保存并退出。 4.配置Hadoop 进入Hadoop的conf目录: ``` cd /path/to/hadoop-3.0.0/etc/hadoop/ ``` 修改以下配置文件: core-site.xml: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/path/to/hadoop-3.0.0/data/tmp</value> </property> </configuration> ``` hdfs-site.xml: ``` <configuration> <property> <name>dfs.namenode.name.dir</name> <value>/path/to/hadoop-3.0.0/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/path/to/hadoop-3.0.0/data/datanode</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` yarn-site.xml: ``` <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>1024</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> </property> </configuration> ``` mapred-site.xml: ``` <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 注意:以上配置中的master应替换为你的主节点的hostname。 5.配置SSH免密码登录 在所有节点上执行以下命令: ``` ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ``` 将主节点的authorized_keys文件复制到所有从节点: ``` scp ~/.ssh/authorized_keys slave1:~/.ssh/ scp ~/.ssh/authorized_keys slave2:~/.ssh/ ``` 6.启动Hadoop集群 在主节点上执行以下命令: 格式化HDFS: ``` hdfs namenode -format ``` 启动HDFS和YARN: ``` start-dfs.sh start-yarn.sh ``` 在浏览器中访问http://master:50070,可以看到HDFS的状态。 在浏览器中访问http://master:8088,可以看到YARN的状态。 7.测试Hadoop集群 在Hadoop安装目录下创建一个input目录,并在其中创建一个文件,内容随意。 ``` mkdir input echo "Hello Hadoop" > input/file1 ``` 将文件上传到HDFS: ``` hdfs dfs -mkdir /input hdfs dfs -put input/file1 /input/ ``` 运行Hadoop自带的wordcount示例: ``` hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount /input /output ``` 查看结果: ``` hdfs dfs -cat /output/part-r-00000 ``` 如果输出了单词“Hello”的计数结果,则说明Hadoop集群已经成功搭建。 至此,在CentOS 7上搭建Hadoop 3.0.0完全分布式环境的步骤就完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值