Ubuntu虚拟机的安装
关闭防火墙
为了减少搭建集群的复杂性,关闭防火墙如果对防火墙很了解可以可以不用关闭开放相应端口即可。借助ufw软件包使操作更方便。
# 安装防火墙工具
sudo apt-get install ufw
# 开启
sudo ufw enable
sudo ufw default deny # 开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)
# 关闭
sudo ufw disable
# 查看状态
sudo ufw status
# 开放端口
sudo ufw allow 80 允许外部访问80端口
sudo ufw delete allow 80 禁止外部访问80 端口
sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 要拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口
使防火墙处于关闭状态即可:
安装SSH
https://blog.csdn.net/xwh3165037789/article/details/123468111
安装jdk
https://blog.csdn.net/xwh3165037789/article/details/123468111
设置静态ip
https://blog.csdn.net/xwh3165037789/article/details/126306878
配置主机名
https://blog.csdn.net/xwh3165037789/article/details/126306878
映射ip地址与主机名
将ip地址与主机名映射的作用是使用主机名即可完成集群间的切换。
vi /etc/hosts
添加配置的静态ip和主机名即可。
ssh免密登录
ssh简介
完成主机ip映射之后使用密码实现主机间的切换:
ssh root@[主机映射名称]
输入
yes
后会让你输入密码:
成功切换过去
此时是需要密码的,每次输入密码是很不方便的,也不能实现集群的自动化,接下来需要配置ssh免密登录。
在root用户下输入
ssh-keygen -t rsa
三次回车
切换到秘钥目录
cd ~/.ssh
将公钥
id_rsa.pub
复制到本机上
cp id_rsa.pub authorized_keys
ssh连接远程主机的命令是
ssh user@hostname
==ssh [用户名][主机名]==根据上面主机映射的关系
共有三台主机和一个用户,用户是xwh,主机分别是master,xwh,localhost。就可以使用
ssh user@hostname
,经过免密登录的配置,现在切换已经不需要密码了。
完全分布式和伪分布式的主要却别也在此。
user@hostname
Hadoop的下载与安装
创建hadoop文件夹并上传hadoop文件,并解压到当前目录:
tar -zxvf hadoop-2.10.1
因为下载的源码,要全局使用需要配置环境变量,环境变量的配置文件在
/etc/profile
sudo vi /etc/profile
export HADOOP_HOME=/home/xwh/hadoop/hadoop-2.10.1
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH:$HOME/bin
如果是自己配置的jdk则
java_home
换为自己的路径即可,如果是安装的openjdk则其位置在:
/usr/lib/jvm
目录下:
配置完成后重启环境变量
source /etc/profile
,在使用
hadoop
命令检验是否配置成功,出现如下图所示即配置成功:
hadoop配置
hadoop-env.sh
文件的配置:
配置文件所在目录,在解压的hadoop目录下:
hadoop/hadoop-2.10.1/etc/hadoop
进入该目录如图所示:
将jdk路径配置在图上的
JAVA_HOME
处,只配置要jdk安装目录即可,不用到bin目录:
core-site.xml
文件配置
配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xwh/hadoop/hadoop-2.10.1/tmp</value>
</property>
</configuration>
hdfs-site.xml
文件配置
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
文件配置
目录下是没有该文件的只有一个模板,将
mapred-site.xml.template
复制一份改名即可。
复制命令
cp mapred-site.xml.template mapred-site.xml
该步骤可省略
yarn-site.xml
文件配置
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata:8032</value>
</property>
上面的配置根据自己实际修改
格式化分布式文件系统HDFS
该文件系统岁hadoop自动下载的的,格式化命令:
hdfs namenode -format
。只能格式化一次,若第一未成功需要删除上面配置的tmp目录重新格式化。
**启动集群
start-dfs.sh
**中途要输入一个yes:
namenode节点后台管理地址
ip+端口号[50070/50090]
http://192.168.131.131:50070/
http://192.168.131.131:50090/
由于小编安装的openjsk没有jps命令,需要另外安装工具包
sudo apt-get install java-1.7.0-openjdk-devel -y
如果出现错误就更新jdk版本
sudo apt-get install openjdk-8-jdk
就可以使用
jstack
,
jps
等调试命令了。
存在namenode和dataname说明配置成功。
使用
stop-dfs.sh
停止集群:
yarn
作为集群的管理者,启动yarn的命令为:
start-yarn.sh
:
也可以输入
ip+[yarn端口号]
进入yarn管理中心,这是在之前
yarn-site.xml
配置的
当全部启动是使用
jps
调试命令:
需要注意的是在关闭集群是要依次关闭yarn,hadoop。
stop-yarn.sh,stop-dfs.sh