一,系统配置部分

1,启用固定ip

cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-enoXXXX(每台电脑不一样)

按图中修改,ip部分按自己实际配置修改

重启网络服务

service network restart

2,关闭防火墙

# 查看防火墙状态
firewall-cmd --state

# 停止防火墙
systemctl stop firewalld.service

# 禁止firewall开机启动
systemctl disable firewalld.service 

3,时间同步

安装 ntp命令: yum install ntp -y
将ntp设置为缺省启动:systemctl enable ntpd
启动ntp服务:service ntpd restart
将系统时区改为上海时间(即CST时区):ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步时间 ntpdate -u ntp1.aliyun.com
输入date命令查看时间是否正确
 

4,配置hosts文件

entos 7 /etc/hosts

192.168.3.101 node1
192.168.3.102 node2
192.168.3.103 node3
192.168.3.104 node4

 

一,java部分

1,首先把jdk-8u333-linux-x64.tar.gz文件上传到/usr/local/hadoop目录

2,解压

tar -zxvf jdk-8u333-linux-x64.tar.gz

3,配置java环境变量 

vi /etc/profile

按i开始编辑,把以下几行环境变量配置到文件中

export JAVA_HOME=/usr/local/hadoop/jdk1.8.0_333
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

按esc ,然后:wq退出,执行

source /etc/profile

重载配置文件。

执行

java -version

出来版本号,即为配置成功

二 ,hadoop部分

1,首先把hadoop-3.2.3.tar.gz文件上传到/usr/local/hadoop目录

2,解压

tar -zxvf hadoop-3.2.3.tar.gz

3,进入hadoop目录检查是否可用

./bin/hadoop version   #  查看hadoop版本信息,成功显示则安装成功

4,配置java环境变量 

vi /etc/profile

按i开始编辑,把以下几行环境变量配置到文件中

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

按esc ,然后:wq退出,执行

source /etc/profile

重载配置文件。

5.修改hadoop-env.sh中的 JAVA_HOME

vi /usr/local/hadoop/hadoop-3.2.3/etc/hadoop/hadoop-env.sh

顶格添加export JAVA_HOME=/usr/local/hadoop/jdk1.8.0_333

6.添加hadoop/etc/hadoop/core-site.xml节点

vi /usr/local/hadoop/hadoop-3.2.3/etc/hadoop/core-site.xml

加入以下内容,其中hadoopdata目录必须不存在,由hadoop生成

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000/</value>
    </property> 
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoopdata</value>
    </property>

fs.defaultFS:The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri’s scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri’s authority is used to determine the host, port, etc. for a filesystem. 默认文件系统的名称。URI形式。uri’s的scheme需要由(fs.SCHEME.impl)指定文件系统实现类。 uri’s的authority部分用来指定host, port等。默认是本地文件系统。 HA方式,这里设置服务名,例如:hdfs://mycluster1 HDFS的客户端访问HDFS需要此参数。

hadoop.tmp.dir:A base for other temporary directories. 只可以设置一个值;建议设置到一个足够空间的地方,而不是默认的/tmp下 服务端参数,修改需重启

7,修改hdfs-site.xml文件

vi /usr/local/hadoop/hadoop-3.2.3/etc/hadoop/hdfs-site.xml

加入以下内容

   <property>
        <name>dfs.replication</name>
        <value>3</value>
   </property>
   <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:50090</value>
   </property>

 dfs.replication这个参数是个client参数,即node level参数。需要在每台datanode上设置。
其实默认为3个副本已经够用了,设置太多也没什么用。

一个文件,上传到hdfs上时指定的是几个副本就是几个。以后你修改了副本数,对已经上传了的文件也不会起作用。可以再上传文件的同时指定创建的副本数
hadoop dfs -D dfs.replication=1 -put 70M logs/2

可以通过命令来更改已经上传的文件的副本数:
hadoop fs -setrep -R 3 /

查看当前hdfs的副本数
hadoop fsck -locations
 

8,hadoop/etc/hadoop/slaves 中 指定  DN(hadoop3.x中slaves改为了workers)

node2
node3

9,手动创建masters文件, 指定 SNN

node2

10,同步配置文件到其它节点

scp -r hadoop/    node2:/king/
scp -r hadoop/    node3:/king/
scp -r hadoop/    node4:/king/

11格式化 NN

hdfs namenode -format

12启动dfs服务

 start-dfs.sh

 

 

报错

1

解决方案

在Hadoop安装目录下找到sbin文件夹

在里面修改四个文件

对于start-dfs.sh和stop-dfs.sh文件,在顶部添加下列参数:

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


对于start-yarn.sh和stop-yarn.sh文件,在顶部添加下列参数:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


重新开始start...就可以了。
 

未完待续

最后修改于 2022-05-18 06:51:27
上一篇