参考博客:https://blog.csdn.net/pengjunlee/article/details/104290537
参考视频:https://www.bilibili.com/video/BV11N411d7Zh?p=16
Hadoop的部署方式
Hadoop有以下几种部署的模式,初学使用单机模式会比较简单
安装准备
依赖jdk,centos安装jdk参考博客
下载Hadoop安装包
下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.2.1/
本例中,我下载的是当前最新的稳定版本 hadoop-3.2.1.tar.gz 。
修改HOSTS配置
[hadoop@localhost ~]$ sudo vi /etc/hosts
# 在文件末尾添加一行,在后面的core-site.xml配置会用到
127.0.0.1 hadoopmaster
安装Hadoop
首先,将hadoop-3.2.1.tar.gz 解压至安装目录。
/opt/deployEnvironment/hadoop/hadoop-3.2.1
接下来, 配置Hadoop 环境变量
# 修改环境变量文件
vim /etc/profile
# 追加以下内容
export HADOOP_HOME=/opt/deployEnvironment/hadoop/hadoop-3.2.1
export PATH=$PATH:${HADOOP_HOME}/bin
export PATH=$PATH:${HADOOP_HOME}/sbin
# 重新加载环境变量
source /etc/profile
尝试输入h然后按tab键看是否有提示hadoop,如果有则表示环境变量配置成功
最后,还需要修改 %HADOOP_HOME%/etc/hadoop/ 目录下面的几个配置文件。
Hadoop集群配置详解
Hadoop集群配置详解
Hadoop core-site.xml配置项整理
hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_211
# Location of Hadoop.
export HADOOP_HOME=/usr/local/hadoop-3.2.1
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
<description>执行MapReduce任务的运行时框架</description>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<!-- 注意修改,这里为你HADOOP的安装目录 -->
<value>HADOOP_MAPRED_HOME=/opt/deployEnvironment/hadoop/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.map.env</name>
<!-- 注意修改,这里为你HADOOP的安装目录 -->
<value>HADOOP_MAPRED_HOME=/opt/deployEnvironment/hadoop/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<!-- 注意修改,这里为你HADOOP的安装目录 -->
<value>HADOOP_MAPRED_HOME=/opt/deployEnvironment/hadoop/hadoop-3.2.1</value>
</property>
</configuration>
core-site.xml
<configuration>
<!-- hdfs的根目录,后续安装hbase,hbase的配置hdfs的路径要跟这个保持一致 -->
<property>
<name>fs.default.name</name>
<value>hdfs://hadoopmaster:9000</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/dfs/datanode</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
启动Hadoop
格式化NameNode
第一次启动HDFS需要先进行格式化,使用如下命令:
# $HADOOP_PREFIX/bin/hdfs namenode -format <cluster_name>
hdfs namenode -format
启动NameNode
[hadoop@localhost ~]$ hdfs --daemon start namenode
[hadoop@localhost ~]$ jps
6355 NameNode
6424 Jps
TIPS:如果启动失败,可以查看%HADOOP_HOME%/logs/ 目录下的日志进行错误排查。
启动DataNode
[hadoop@localhost hadoop-3.2.1]$ hdfs --daemon start datanode
[hadoop@localhost hadoop-3.2.1]$ jps
6544 Jps
6355 NameNode
6477 DataNode
NameNode和DataNode启动之后,在浏览器中输入 http://IP:50070 访问HDFS的管理界面。
SSH免密码登录配置
配置SSH免登陆遇到的问题
- 文件被锁而且本体没有chattr命令
用lsattr发现/root/.ssh/authorized_keys被锁了,所以修改不了,导致配置不了SSH免密登陆
解决方法
1.需要下载chattr 源码 :https://github.com/posborne/linux-programming-interface-exercises/blob/master/15-file-attributes/chattr.c
2.下载到你电脑上,然后 执行完成以后 生成可执行文件 chattr.out
gcc chattr.c -o chattr_run.out
3.然后解除锁定文件
./chattr_run.out -ia fileName
启动Yarn
[hadoop@localhost logs]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers
[hadoop@localhost logs]$ jps
8872 NameNode
10632 Jps
9257 DataNode
10170 ResourceManager
10284 NodeManager
启动Yarn遇到的问题
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
检查HDFS
在HDFS上创建文件夹,并且上传文件,检查是否正常。
问题原因:dr.who是Resource Manager UI的用户,主要原因是当前用户对于此路径或此路径下的文件权限不够导致,无法读、写、或者执行等操作。
解决方法:
1.先stop-all.sh,关闭集群
2.修改配置文件core-site.xml,添加如下代码
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
3.重启,start-all.sh
4.测试,成功!
- 上传接口调用失败
问题:F12看浏览器接口是否调用失败,发现报错
解决方法:
1.配置host文件
2.做好服务器防火墙相关设置