基础环境:window主机 + VMware Workstation Pro + Ubuntu18.04镜像
资源:
虚拟机:master + slave1 ( + slave2) #内存不足可仅装两台
基本步骤:
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
su - hadoop
mkdir -p ~/chadoop/java
mkdir -p ~/chadoop/hadoop
mkdir -p ~/chadoop/tmp
mkdir -p ~/chadoop/dfs/name ~/chadoop/dfs/data
cd /mnt/hdfs/share
tar -zxvf jdk-8u231-linux-x64.tar.gz -C ~/chadoop/java
sudo vim /etc/profile
在末尾添加
export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231 #(必须与解压路径一致)
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
cd /mnt/hdfs/share
tar -zxvf hadoop-2.8.5.tar.gz -C ~/chadoop/hadoop
vim ~/.profile
在末尾添加
HADOOP_HOME=~/chadoop/hadoop/hadoop-2.8.5 #(文件路径必须一致)
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
PATH=$PATH:$HADOOP_HOME/bin
PATH=$PATH:$HADOOP_HOME/sbin
export PATH HADOOP_HOME HADOOP_CONF_DIR
source ~/.profile
hadoop
cd ~/chadoop/hadoop/hadoop-2.8.5/etc/hadoop
涉及的文件:
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
hadoop-env.sh
mapred-env.sh
yarn-env.sh
slaves
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
file:/home/hadoop/chadoop/tmp
io.file.buffer.size
131072
dfs.namenode.name.dir
/home/hadoop/chadoop/dfs/name
namenode的目录位置
dfs.datanode.data.dir
/home/hadoop/chadoop/dfs/data
datanode的目录位置
dfs.replication
2
hdfs系统的副本数量
dfs.namenode.secondary.http-address
master:9001
备份namenode的http地址
dfs.webhdfs.enabled
true
hdfs文件系统的webhdfs使能标致
cp mapred-site.xml.template mapred-site.xml
mapreduce.framework.name
yarn
指明MapRreduce的调度框架为yarn
mapreduce.jobhistory.address
master:10020
知名MapReduce的作业历史地址
mapreduce.jobhistory.webapp.address
master:19888
指明MapReduce的作业历史web地址
yarn.resourcemanager.address
master:18040
yarn.resourcemanager.scheduler.address
master:18030
yarn.resourcemanager.webapp.address
master:18088
yarn.resourcemanager.resource-tracker.address
master:18025
yarn.resourcemanager.admin.address
master:18141
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
加入JAVA_HOME位置
export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
加入JAVA_HOME位置
export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
加入JAVA_HOME位置
export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
关闭master虚拟机,右键单击master机器名
克隆类型为 完整克隆
虚拟机名称为 slave1
slave1机器的内存分配可降低一些
启动 master
启动 slave1
Ctrl+Alt+T 打开终端
切换用户
su - hadoop
分别查看两台机器的IP,命令(18.04不再使用ifconfig):
ip address
(或ip a)
以 master 为例
sudo vim /etc/hosts
ping master
(相当于ping 192.168.28.130)
ping slave1
sudo apt-get update
sudo apt-get install openssh-server
cd ~/.ssh
ssh-keygen -t rsa
回车默认确定
cat ./id_rsa.pub >> ./authorized_keys
chmod 600 authorized_keys
sudo vim /etc/ssh/sshd_config
启用以下参数
AddressFamily any #允许任何地方登录
PermitRootLogin yes # 允许root账号登录
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile /home/hadoop/.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
/etc/init.d/sshd restart
转入操作slave1机器上,重复 1~9 步骤
在master机器上把slave1的公钥传到master的authorized_keys上
ssh slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys
master:~$ ssh slave1
slave1:~$ ssh master
hadoop namenode -format
start-all.sh
stop-all.sh