ubuntu16.04 搭建hadoop2.X系列
1.软件版本(提供网盘链接)
- ubuntu-16.04.2-desktop-amd64.iso
- hadoop-2.7.3.tar.gz
- jdk-8u144-linux-x64.tar.gz
2.平台准备
服务器准备 (内存可为1G,2G只为流畅)
Master:内存2G 1核。
Slaver:内存2G 1核。IP设置 (IP类比自身服务器)
Master:192.168.1.10
Slaver:192.168.1.20
3.配置过程
系统安装
系统正常安装,主机名可分别设置为Master,slaver。并且设置用户名为hadoop 这样可省去创建用户步骤。
也可系统安装完后期修改。创建用户
#创建用户
sudo useradd -m hadoop -s /bin/bash
#设置密码
sudo passwd hadoop #按提示输入两次密码
#加入root组
sudo adduser hadoop sudo
3.更新并安装vim
#Master&Slaver
sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server
- 配置主机通信
- 修改主机名
/etc/hostname
内容为主机名,修改后需重启主机生效,可在系统安装时提前将主机名设置为Master
,Slaver
。
#Master
sudo vim /etc/hostname
Master
#Slaver
sudo vim /etc/hostname
Slaver
- 配置主机映射
/etc/hosts
文件是linux文件的主机映射,配置内容为IP HOSTNAME
。
比如192.168.1.10 Master
则ping Master = ping 192.168.1.10
.
配置时将主机字自解析删除掉,127.0.0.1 Master Slaver
#Master&Slaver
sudo vim /etc/hosts
192.168.1.10 Master
192.168.1.20 Slaver
5.配置无密钥访问
这边需要详细解释一下,首先,我们使用hadoop
用户登录,所以我们的家目录为/home/hadoop/
。
执行ssh-keygen -t rsa
后, 会在用户的家目录生成两个文件,分别为id_rsa
, id_rsa.pub
.
使用 cat命令,将公钥复制到authorized.keys
文件内(该文件默认不存在),
此时 authorized_keys
文件内容大致为
公钥 user@hostname
公钥为一堆长乱码,user为用户名,我们此时为hadoop. hostname为主机名,即我们的Master Slaver.
此时authorized_keys
文件内容大致为
公钥 hadoop@Master
公钥 hadoop@Slaver
此时,Master Slaver 下分别执行
#Slaver
ssh Master
#Master
ssh Slaver
即可实现免密钥登录,如果不成功,请删除.ssh/
下所有文件,重新执行该步骤。
#Master
ssh-keygen -t rsa #根据提示,三次回车即可生成密钥。
#Slaver
ssh-keygen -t rsa #根据提示,三次回车即可生成密钥。
cd /home/hadoop/.ssh/
cat id_rsa.pub >> authorized_keys
scp authorized_keys Master:/home/hadoop/.ssh/
#Master
cd /home/hadoop/.ssh/
cat id_rsa.pub >> authorized_keys
scp authorized_keys Slaver:/home/hadoop/.ssh/
- 配置JDK
首先,将JDK上传至/home/hadoop/
下。
#Master&Slaver
sudo tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local
sudo mv /usr/local/jdk1.8.0_144 /usr/local/jdk
sudo vim /home/hadoop/.bashrc
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH #此两行为配置内容,写在.bashrc文件最后,.bashrc为用户配置内容。
此时,配置文件和JDK已经安装修改完毕,进行验证。
source /home/hadoop/.bashrc
java -version #以打印出JAVA版本信息为主。
7.配置hadoop
将hadoop
上传至/home/hadoop
目录下,
#Master
sudo tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local #将hadoop文件解压缩至/usr/local
cd /usr/local
sudo mv hadoop-2.7.3 hadoop
sudo chown -R hadoop hadoop
配置环境变量
#Master&Slaver (Slaver节点也需要修改环境变量)
sudo vim /home/hadoop/.bashrc
#此三行添加至文件最后
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
#文件生效
source /home/hadoop/.bashrc
修改配置文件
文件内容统一在/usr/local/hadoop/etc/hadoop/
中
- hadoop.env.sh
#原语句为 export JAVA_HOME=${JAVA_HOME},修改为如下
export JAVA_HOME=/usr/local/jdk
- yarn.env.sh
#原语句为 export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 默认被注释的,在下面添加如下语句。
export JAVA_HOME=/usr/local/jdk
- slaves
#文件内容
Master
Slaver
- core-site.xml
fs.defaultFS
hdfs://Master:9000
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
- hdfs-site.xml
dfs.namenode.secondary.http-address
Master:50090
dfs.replication
1
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data
- mapred-site.xml
原文件名为 mapred-site.xml.template
sudo cp mapred-site.xml.template mapred-site.xml
文件内容为:
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
Master:10020
mapreduce.jobhistory.webapp.address
Master:19888
- yarn-site.xml
yarn.resourcemanager.hostname
Master
yarn.nodemanager.aux-services
mapreduce_shuffle
8.配置slaver节点
#Master
cd /usr/local
sudo tar -zcf /home/hadoop/hadoop.master.tar.gz hadoop #压缩/usr/local下的hadoop文件夹
sudo scp /home/hadoop/hadoop.master.tar.gz Slaver:/home/hadoop/
#Slaver
cd /home/hadoop
tar -zxvf hadoop.master.tar.gz -C /usr/local
#生效环境变量 source /home/hadoop/.bashrc
9.启动hadoop
#Master
hdfs namenode -format #仅首次运行需要执行初始化,之后不需要启动。
启动:
start-all.sh
关闭:
stop-all.sh
10.查看
JPS
#Master
jps
DataNode
NameNode
ResourceManager
SecondrryNameNode
JobHistoryServer
#Slaver
DataNode
NameNode