hadoop学习记录
一、准备需要三台 linux 服务器
- ip ---------->hostname
- 192.168.0.101 hadoop-ip-101
- 192.168.0.102 hadoop-ip-102
- 192.168.0.103 hadoop-ip-103
- 安装一台型新的 linu 虚拟机(centos7)
- 1)创建用户 hadoop
- useradd hadoop : 创建用户 hadoop
- passwd hadoop : 给用户 hadoop 设置密码
- 以 root 用户的身份将 hadoop 用户设置为管理员身份
- 2)以 root 用户将本机的 ip 设置为 192.168.0.101; 将本机的主机名设置为 hadoop-ip-101 (/etc/hostname); 修改 /etc/hosts 文件追加下列配置,并重启服务器
192.168.0.101 hadoop-ip-101 192.168.0.102 hadoop-ip-102 192.168.0.103 hadoop-ip-103
- 3)使用 hadoop 用户登录
- 创建 /home/hadoop/soft 与 /home/hadoop/module
- /home/hadoop/soft : 存放安装包
- /home/hadoop/module:存放解压文件
- 安装 jdk 与 hadoop;安装结果如下
- 创建 /home/hadoop/soft 与 /home/hadoop/module
- 4)配置环境变量
#JAVA_HOME export JAVA_HOME=/home/hadoop/module/jdk1.8.0_201 export PATH=$PATH:$JAVA_HOME/bin #HADOOP_HOME export HADOOP_HOME=/home/hadoop/module/hadoop-2.4.0 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
- 5) 切换 root 执行 source /etc/profile
- 6) 创建数据存储目录 /home/hadoop/hadoop2.4.0/data/tmp
- 1)创建用户 hadoop
- 以 hadoop-ip-101 为基础克隆两台机器 (请自行修改 ip 和 hostname)
- hadoop-ip-102
- hadoop-ip-103
二、组件分配
Hadoop-ip-101 Hadoop-ip-102 Hadoop-ip-103
HDFS
NameNode SecondaryNameNode
DataNode DataNode DataNode
YARN
NodeManager ResourceManager NodeManager
NodeManager
三、根据上述分配填写配置文件参数
- hadoop-env.sh、mapred-env.sh、yarn-env.sh 之需配置 JAVA_HOME 即可
- 配置 NameNode 与 DataNode: core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-ip-101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/module/hadoop-2.4.0/data/tmp</value>
</property>
</configuration>
- 配置数据备份个数及 SecondaryNameNode : hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-ip-103:50090</value>
</property>
</configuration>
- 配置 mapred-site.xml
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 配置 datanode 节点集群: slaves
hadoop-ip-101
hadoop-ip-102
hadoop-ip-103
- 配置 yarn 及 resourcemanager: yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-ip-102</value>
</property>
</configuration>
四、配置 SSH 免密登录
- 免密登录原理
- 配置要求配置
- hadoop-ip-101 -->hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 的免密登录
- hadoop-ip-102 -->hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 的免密登录
- 配置过程:
- ssh-keygen -t rsa 一直按回车
- ssh-copy-ip 主机名称,根据提示输入密码,结束及配置完成
五、启动 hadoop
- 在 hadoop-ip-101 下执行 hdfs namenode -format
- 在 hadoop-ip-101 下执行 start-dfs.sh
- 执行结束以后在 hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 上分别查看 jps (java 进程)
* 若 hadoop-ip-101显示:
[hadoop@hadoop-ip-101 ~]$ jps
4513 DataNode
4695 Jps
4397 NameNode
* 若 hadoop-ip-102显示:
[hadoop@hadoop-ip-102 ~]$ jps
3734 DataNode
3798 Jps
* 若 hadoop-ip-103显示:
[hadoop@hadoop-ip-103 ~]$ jps
3635 SecondaryNameNode
3673 Jps
3548 DataNode
若显示上述执行结果:则表示启动 hdfs 成功,若不是以上结果,则请先执行 stop-dfs.sh,然后分别在 hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 执行:
rm -rf /home/hadoop/module/hadoop-2.4.0/data/tmp/ /home/hadoop/module/hadoop-2.4.0/logs/
随后先检查配置文件是否争取以及/etc/hosts是否配置,ip是否修改,是否关闭防火墙
然后重新执行上述1,2
- 在 hadoop-ip-102 下执行 start-yarn.sh (由于 ResourceManager 配置在了 hadoop-ip-102 下故在该服务器下执行该命令)
- 执行结束以后在 hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 上分别查看 jps (java 进程)
* 若 hadoop-ip-101显示:
[hadoop@hadoop-ip-101 ~]$ jps
4513 DataNode
4805 Jps
4397 NameNode
4735 NodeManager
* 若 hadoop-ip-102显示:
[hadoop@hadoop-ip-102 ~]$ jps
3843 ResourceManager
3939 NodeManager
3734 DataNode
4137 Jps
* 若 hadoop-ip-103显示:
[hadoop@hadoop-ip-103 ~]$ jps
3729 NodeManager
3635 SecondaryNameNode
3548 DataNode
3820 Jps
若显示上述执行结果:则表示启动 hdfs,yarn 都启动成功,若不是以上结果,则请 hadoop-ip-102 下执行 stop-yarn.sh,然后在 hadoop-ip-101 下执行 stop-dfs.sh,最后分别在 hadoop-ip-101,hadoop-ip-102,hadoop-ip-103 执行:
rm -rf /home/hadoop/module/hadoop-2.4.0/data/tmp/ /home/hadoop/module/hadoop-2.4.0/logs/
随后先检查配置文件是否争取以及/etc/hosts是否配置,ip是否修改,是否关闭防火墙
然后重新执行上述1,2,3,4,5
一般情况下不会当配置文件及环境配置都正确时候,不会重复出现上述启动失败情况