准备工作
环境配置
安装linux
- RedHat 7.4,官网下载
- 关闭防火墙
systemctl stop firewalld services //关闭防火墙
systemctl disable firewalld services //禁止防火墙开机启动
- 配置主机名(一共三台虚拟机)
vi /etc/hosts
192.168.118.111 bigdata1
192.168.118.112 bigdata2
192.168.118.112 bigdata3
安装JDK
- 官网下载
- 解压到
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/tool/jdk/
- 配置环境变量
JAVA_HOME = /root/tool/jdk/jdk1.8.0_144
export JAVA_HOME
PATH = $JAVA_HOME/bin:$PATH
export PATH
- 生效环境变量
source ~/.bash_profile
安装hadoop
- 下载 Hadoop-2.7.3
- 解压
tar -zxvf hadoop-2.7.3.tar.gz -C ~/tool/hadoop/
- 配置环境变量
HADOOP_HOME = /tool/hadoop/hadoop-2.7.3
export HADOOP_JAVAHOME
PATH = $HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
- 生效环境变量
source ~/.bash_profile
主机模式
- 特点:没有HDFS。只能测试MapReduce程序(不运行在yarn中,做一个独立的java程序来运行)
- 配置相关文件:
- hadoop配置文件都在
~/tool/hadoop/hadoop-2.7.3/etc/hadoop/
目录下 - 修改
hadoop-env.sh
里面的JAVA_HOME
参数,对应的值为你配置的JAVA_HOME环境变量的值,课使用echo $JAVA_HOME
来获取
- 配置完成
- 注意主机模式下的路径都是本地Linux的路径,而伪分布和全分布模式的路径为HDFS的路径
伪分布模式
- 特点:在单机上,模拟一个分布式的环境,具备hadoop所有的功能
- 修改配置文件:
<!--数据节点的冗余度-->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-权限,默认为true-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
<configuration>
<!--配置HDFS主节点的地址-->
<!--9000为RPC的通信端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata1:9000</value>
</property>
<!-- HDFS数据块和元信息保存在操作系统的目录-->
<!--默认是linux的tmp目录,务必修改,因为tmp是临时存放,一旦关机,文件就会丢失-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/tool/hadoop/hadoop-2.7.3/tmp</value>
</property>
</configuration>
- mapred-site.xml
默认没有这个文件,需要自己创建,复制一份mapred-site.xml.template
并修改名字为mapred-site.xml
<configuration>
<!--MR程序运行的容器-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<!--配置yarn主节点的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata1</value>
</property>
<!--nodemaneger执行MR程序的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
</configuration>
- 格式化HDFS的
namenode
目录:/root/tool/hadoop/hadoop-2.7.3/tmp
命令:hdfs namenode -format
成功标志:出现如下日志
Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted. - 配置完成
- 启动/停止
HDFS ----- start-dfs.sh / stop-dfs.sh
Yarn ----- start-yarn.sh / stop-yarn.sh
合并 ----- start-all.sh / stop-all.sh
web console访问:
hdfs ---- ip:50070
yarn ---- ip:8088
全分布模式
- 三台linux
- 配置 JDK、hadoop、关闭防火墙、设置免密登录
获取密钥对:ssh-keygen -t rsa
ssh-copy-id -i .ssh-id_rsa.pub root@bigdata1
ssh-copy-id -i .ssh-id_rsa.pub root@bigdata2
ssh-copy-id -i .ssh-id_rsa.pub root@bigdata3
- 保证集群的时间同步
- 时间同步服务器
- 网络同步
- date -s 20219-03-11
- 修改配置文件:
<configuration>
<!--数据块的冗余度-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-权限,默认为true-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
<configuration>
<!--配置HDFS主节点的地址-->
<!--9000为RPC的通信端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata1:9000</value>
</property>
<!-- HDFS数据块和元信息保存在操作系统的目录-->
<!--默认是linux的tmp目录,务必修改,因为tmp是临时存放,一旦关机,文件就会丢失-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/tool/hadoop/hadoop-2.7.3/tmp</value>
</property>
</configuration>
- mapred-site.xml
默认没有这个文件,需要自己创建,复制一份mapred-site.xml.template
并修改名字为mapred-site.xml
<configuration>
<!--MR程序运行的容器-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<!--配置yarn主节点的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata1</value>
</property>
<!--nodemaneger执行MR程序的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
</configuration>
// 将localhost删除
bigdata2
bigdata3
// 或者写ip地址
- 格式化HDFS的
namenode
目录:/root/tool/hadoop/hadoop-2.7.3/tmp
命令:hdfs namenode -format
成功标志:出现如下日志
Storage directory /root/tool/hadoop/hadoop-2.7.3/tmp/dfs/name has been successfully formatted. - 把bigdata1上安装好的目录复制到从节点上
scp -r hadoop-2.7.3/ root@bigdata2:/root/hadoop
scp -r hadoop-2.7.3/ root@bigdata3:/root/hadoop
- 启动/停止
HDFS ----- start-dfs.sh / stop-dfs.sh
Yarn ----- start-yarn.sh / stop-yarn.sh
合并 ----- start-all.sh / stop-all.sh
web console访问:
hdfs ---- ip:50070
yarn ---- ip:8088