Hadoop伪分布式的部署
一、部署前的准备
(1)软件
一个空白的CentOS映像文件
Xshell(用于传输文件 rz命令只能在远程连接工具上有效)
(2)虚拟机配置
网络配置:网络适配器选择桥接
ip地址、子网掩码、网关、DNS服务器地址 =>可以在安装时的图形界面完成配置
=》也可以 vim /etc/sysconfig/network-script/ifcfg-ens33 修改
具体如下:
IPADDR="192.168.124.x" (和网关在同一网段)
NETMASK="255.255.255.0" (子网掩码也可能在配置文件中显示为 prefix=24)
GATEWAY="192.168.124.1" (路由器地址)
DNS1="8.8.8.8" (谷歌的DNS服务器地址)
DNS2="144.144.144.144"
DNS1="223.5.5.5" (阿里云的DNS服务器地址)
DNS2="223.6.6.6"
重启网络 systemctl restart network
验证网络状况 ping www.baidu.com
时间同步 ntpdate ntp1.aliyun.com
(3)关闭虚拟机的安全策略
防火墙:systemctl stop firewalld
systemctl disable firewalld
selinux:getenforce 查看selinux的状态
vim /etc/selinux/config
set nu 7 定位第7行
修改 selinux=disabled
reboot 重启
(4)更换yum源
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
*****多做备份 =》快照**********
(5)规划
yum install -y lrzsz
cd /opt mkdir 文件名
install 压缩包
software 文件解压后
test 测试
other 其他
上传文件:利用rz命令 将jdk-8u144-linux-x64.tar.gz 上传到install目录上去、Hadoop2.7.7.tar.gz 上传到 install目录上去
二、伪分布式集群部署
(1)java安装
tar -zxvf jdk-8u144-linux-x64.tar.gz -C software
(2)Hadoop安装 同上
(3)环境变量设置 vim /etc/profile
export JAVA_HOME=/opt/software/jdk8
export HADOOP_HOME=/opt/software/hadoop-2.7.7
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证java是否安装成功 java -version
(4) Hadoop伪分布式配置
### hadoop-env.sh
```shell
cd /opt/software/hadoop-2.7.7 #进入hadoop-2.7.7目录
vim etc/hadoop/hadoop-env.sh #编辑配置文件hadoop-env.sh
export JAVA_HOME=/opt/software/jdk8 #修改25行
export HADOOP_CONF_DIR=/opt/software/hadoop-2.7.7/etc/hadoop #修改33行
### core-site.xml
```xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop-2.7.7/tmp</value>
</property>
</configuration>
```
### hdfs-site.xml
```xml
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
```
### mapred-site.xml
```xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
```
### yarn-site.xml
```xml
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
```
### slaves
```
hadoop101
```
配置主机名到IP的映射
vim /etc/hosts
192.168.124.x 主机名
### 格式化文件系统
```
hadoop namenode -format
```
出现Storage directory /opt/software/hadoop-2.7.7/dfs/name has been successfully formatted 表示格式化成功
启动之前先完成免密登陆
ssh-keygen
ssh-copy-id hadoop101
### 启动Hadoop
```shell
start-all.sh
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
```
验证Hadoop
jps 检查运行的java进程
6002 NameNode
6131 DataNode
7283 Jps
6567 NodeManager
6300 SecondaryNameNode
6460 ResourceManager
### WEB端查看(可以先用netstat -nltup查看端口)
```
http://192.168.124.x:50070 #查看NameNode的状态
http://192.168.124.x:50075 #查看DataNode的状态
http://192.168.124.x:50090 #查看SecondaryNameNode的状态
```