hadoop入门设置

Hadoop分布式

以三台虚拟机组成hadoop分布式系统,其中一台master,两台slave,master既是名称节点,也是数据节点,其他都为数据节点。

配置环境变量

将hadoop-3..2.1放在/usr/soft下,并命名hadoop321

将jdk-10放在/usr/soft下,命名jdk10

更改/etc/profile文件

在/etc/profile的最后加上

export JAVA_HOME=/usr/soft/jdk10
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/soft/hadoop321
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

更新环境变量

 . /etc/profile

配置hadoop

1、编辑/usr/soft/hadoop321/etc/hadoop/core-site.xml

<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
 </property>
</configuration>

2、编辑/usr/soft/hadoop321/etc/hadoop/hdfs-site.xml

<configuration>
 <property>
  <name>dfs.replication</name>
  #节点数量
  <value>3</value>
 </property>
 <property>
  <name>dfs.http.address</name>
     #访问ip:端口
  <value>0.0.0.0:5700</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
     #namenode位置
  <value>file:///root/hadoop/dfs/namenode</value>
 </property>
 <property>
  <name>dfs.datanode.name.dir</name>
     #datanode位置
  <value>file:///root/hadoop/dfs/datanode</value>
 </property>
</configuration>

3、初始化namenode

hdfs name -formate

查看/root/hadoop/dfs目录下是否有namenode目录

若存在,则NameNode初始化成功

若不存在,执行以下命令

cd /tmp
rm -rf *

清除缓存,重新初始化

4、修改用户配置(可选)

hadoop默认不能使用root用户登录(权限过大)

若要使用root用户登录hadoop

需修改/usr/soft/hadoop321/sbin/start-dfs.sh和/usr/soft/hadoop321/sbin/stop-dfs.sh

在开头添加以下代码

HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

5、指定JAVA_HOME

hadoop不会指定的寻找JAVA_HOME需要配置

修改文件/usr/soft/hadoop321/etc/hadoop/hadoop-env.sh

将原先代码

# export JAVA_HOME=

修改为

# export JAVA_HOME=/usr/soft/jdk10

6、开启hdfs服务

执行命令开启服务

start-dfs.sh

输入命令测试

jps

显示jps、datanode、namenode、secondarynamenode四项表示成功

可访问当前ip:5700加入hdfs服务管理界面。(ip通过ip add查看ens33对应的ip)

7、克隆虚拟机

  1. 关闭虚拟机

  2. 右击虚拟机选择管理->克隆

  3. 选择完整克隆(其他不变)

  4. 配置新虚拟机为slave1

  5. 登入新虚拟机,使用命令

    hostnamectl set-hostname slave1
    
  6. 输入 ip add查看ip

  7. 重复上面,配置slave2

8、设置master对slave1和slave2的免密登录

  1. 创建密钥

    cd /root/.ssh
    ssh-keygen
    

    在.ssh生成

    id_rsa 私钥

    id_rsa.pub 公钥

  2. 发布公钥

    cat id_rsa.pub>>authorized_keys
    

    authorized_keys:广而告之文件

  3. 免密登录slave

    在slave中创建目录/root/.ssh

    在master中执行scp authorized_keys root@slave1 slave1的ip:/root/.ssh

    即可在master中使用ssh slave1免密登录slave1

9、分布式hadoop:hdfs

主机名 hdfs角色 yarn角色
master namenode、datanode resourcemanager
slave1 datanode nodemanager
slave2 datanode nodemanager

域名配置

在三个虚拟机中的/etc/hosts配置域名,在文末加上

192.168.33.129 master
192.168.33.130 slave1
192.168.33.131 slave2

ip是在主机上使用ip add获取

设置集群成员

为三个虚拟机都配置

在/usr/soft/hadoop321/etc/hadoop/workers中添加内容

master
slave1
slave2

修改副本数量

修改/usr/soft/hadoop321/etc/hadoop/hdfs-site.xml

<property>
  <name>dfs.replication</name>
  #节点数量
  <value>3</value>
 </property>

启动hdfs

在master上启动hdfs

hdfs会根据配置启动slave1和slave2

访问hadoop

上传文件

hdfs dfs -put a.txt hdfs://master:9000/root

根据文件上传是否成功判断

浏览master的ip:5700到达hdfs的管理界面,查看DataNode数量是否为3.

若不为3,可考虑先关闭hdfs,使用rm - rf /tmp将slave1和slave2的 /tmp目录下的文件全部删除,执行find / -name VERSION查找datanode相关的信息,全部删除。在启动hdfs

注:因为虚拟机都是克隆的,DataNode的id值都相同,无法在hdfs的管理界面上显示全部。

yarn资源管理器

配置

配置/usr/soft/hadoop321/etc/hadoop/yarn-site.xml(每台)

<configuration>
    <property>
        <name>yarn.nodemanager.aux-serivces</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>

配置/usr/soft/hadoop321/etc/hadoop/mapred-site.xml

<configuration>
	<property>
    	<name>mapreduce.framework.name</name>
		<value>yarn</value>
    </property>
</configuration>

若要使用root用户登录,则需要配置yarn-start.sh和yarn-stop.sh

YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
posted @ 2020-08-25 19:15  ygfcoder  阅读(224)  评论(0)    收藏  举报