需求分析:
1.虚拟机准备 1.1 scp(secure copy)安全拷贝1.虚拟机准备
2.安装JDK
3.配置Hadoop集群
4.配置ssh
5.启动、测试集群
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法
scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
1.2 添加映射、关闭防火墙注意:
如果目标目录不存在,直接将源test放到opt目录下
scp -r test/ root@hadoop01:/opt/目标目录/
添加映射
sudo vi /etc/hosts
#hadoop01的ip地址 hadoop01
#hadoop02的ip地址 hadoop02
例如:
192.168.80.171 hadoop01 #主机
192.168.80.172 hadoop02 #客机
关闭防火墙
2.安装JDK 2.1 解压jdksudo systemctl status firewalld #查看防火墙状态
sudo systemctl stop firewalld #关闭防火墙
sudo systemctl disable firewalld #开机启动时关闭防火墙
tar -zxvf jdk-8u171-linux-x64.tar.gz
mv jdk1.8.0_171 jdk1.8
2.2 修改环境变量
sudo vim /etc/profile
# sudo vim ~/.bashrc
# bashrc 只作用于hadoop用户名下,
# /etc/profile 这个可以作用于所有用户名下
# 添加以下内容
#java environment
export JAVA_HOME=/home/tate/bigdata/jdk1.8 #自己的安装路径
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
# 环境变量生效
source /etc/profile
# source ~/.bashrc
# 测试
java -version
3.配置Hadoop集群 3.1 解压Hadoop、配置环境变量
3.2 配置集群#解压
tar -zxvf hadoop-2.7.3.tar.gz
#配置环境变量
sudo vi /etc/profile
#添加如下配置
export HADOOP_HOME=/home/tate/bigdata/hadoop-2.7.3 #自己hadoop的存放路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#使环境生效
source /etc/profile
#测试
hadoop version
集群部署规划
| hadoop01 | hadoop02 | |
| HDFS | NameNode DataNode | SecondaryNameNode DataNode |
| YARN | NodeManager | ResourceManager NodeManager |
注意:假如将resourceManager也分派到hadoop01上,那么最后启动的时候可以在hadoop01上直接执行sbin目录下的start-all.sh脚本即可全部启动。
创建文件夹
cd $HADOOP_HOME
# hdfs文件夹是存放namenode和datanode的相关数据和文件
# tmp是存放临时文件的,logs是存放日志文件的
mkdir hdfs tmp logs && mkdir hdfs/name hdfs/data
1.配置核心文件
配置core-site.xml
cd $HADOOP_HOME/etc/hadoop
vi core-site.xml
在
fs.defaultFS
hdfs://hadoop01:9000
hadoop.tmp.dir
/home/tate/bigdata/hadoop-2.7.3/tmp
2.hdfs配置文件
配置hadoop-env.sh
vi hadoop-env.sh
export JAVA_HOME=/home/tate/bigdata/jdk1.8
配置hdfs-site.xml
vi hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address hadoop02:50090
dfs.name.dir
/home/tate/bigdata/hadoop-2.7.3/hdfs/name
dfs.data.dir
/home/tate/bigdata/hadoop-2.7.3/hdfs/data
3.yarn配置文件
配置yarn-env.sh
vi yarn-env.sh
export JAVA_HOME=/home/tate/bigdata/jdk1.8
配置yarn-site.xml
vi yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop02
yarn.resourcemanager.webapp.address
hadoop02:8088
4.MapReduce配置文件
配置mapred-env.sh
vi mapred-env.sh
# 添加
export JAVA_HOME=/home/hadoop/bigdata/jdk1.8
配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
mapreduce.framework.name
yarn
修改slaves文件
vi slaves
hadoop01
hadoop02
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
4.配置ssh5.启动集群ssh-keygen -t rsa
三次回车
将 .ssh文件里的id_rsa.pub放到authorized.keys
cat id_rsa.pub >> authorized.keys
免密测试
ssh@hadoop02
在集群上分发配置好的Hadoop配置文件或者克隆虚拟机
假如是克隆虚拟机的话
- 修改hostname,修改对应的节点名称修改ip地址,修改对应的静态ip地址
找到需要克隆的虚拟机右键管理进行克隆(选择创建完整克隆)
如果集群是第一次启动,需要格式化NameNode,在namenode节点(也就是hadoop01节点)上执行命令
hadoop namnode -format
假如说第一次执行格式化操作没有成功,进行相应的修改之后。应该执行删除新建的那五个文件夹,然后重新建立。再去执行格式化操作命令
5.2 启动集群# 删除自己新建的文件夹
# 重建这几个文件夹
rm -rf hdfs tmp logs && mkdir hdfs tmp logs && mkdir hdfs/name hdfs/data
# 重新执行格式化
hadoop namenode -forma
cd $HADOOP_HOME/sbin
#在hadoop01中启动hdfs
./start-all.sh
#在hadoop02中启动yarn
./start-yarn.sh
浏览器中输入:http://hadoop01:50070/
查看seconderyNamenode 情况http://hadoop02:50090/status.html
查看yarn的情况http://hadoop02:8088
5.3 集群基本测试
上传文件到集群
(1)上传小文件
hdfs dfs -mkdir -p /user/hadoop/input
hdfs dfs -put wcinput/wc.input /user/hadoop/input
(2)上传大文件
bin/hadoop fs -put
/user/hadoop/input



