先在Windows上操作
下载Hadoop2的最终稳定版2.10.1,官网下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
进入jdk官网注册一个账号https://profile.oracle.com/myprofile/account/create-account.jspx
打开自己的邮箱,比如我用的是QQ邮箱https://mail.qq.com/
打开收件箱里最新的一封邮件
打开jdk下载的官网https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
我这里最新的免费版本是8u291
开始下载JDK
下载传输工具Filezilla,官网https://filezilla-project.org/download.php?type=client
打开虚拟机里的CentOS 7
不用操作,等待CentOS 7打开,然后选择登录用户,输入密码
输入代码,虚拟机里的粘贴快捷键是SHIFT+CTRL+V
ip addr
用FileZilla传文件到虚拟机
回到虚拟机
切换到管理员
su
卸载CentOS 7自带的jdk
rpm -e --nodeps `rpm -qa | grep java`
解压jdk到根目录下的/usr目录
cd /usr
tar -zvxf local/share/jdk-8u291-linux-x64.tar.gz
编辑环境变量
vim /etc/profile
按“i”进入编辑模式,在文件末尾加入以下内容
export JAVA_HOME=/usr/jdk1.8.0_291
export JRE_HOME=/usr/jdk1.8.0_291/jre
export PATH=.:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
按“ESC”退出编辑模式,然后输入“:wq”保存并退出vim编辑器
使环境变量立即生效
source /etc/profile
看一看jdk-8u291安装好没有,显示版本号说明安装成功
java -version
为操作系统添加hadoop用户并设置密码,之后对 Hadoop的操作均由hadoop用户完成
Hadoop的一些服务无法通过root用户启动,因此,为 Hadoop设置一个专用的用户是必要的
useradd hadoop
passwd hadoop
su hadoop
ssh-keygen -t rsa
输入三次回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
exit
su hadoop
ssh localhost
输入yes
exit
exit
在/usr目录下新建一个hadoop文件夹,然后解压文件“hadoop-2.10.1.tar.gz”至/usr/hadoop目录
mkdir hadoop
tar -zxvf local/share/hadoop-2.10.1.tar.gz -C hadoop
修改hadoop文件夹所属的用户为hadoop
chown -R hadoop:hadoop /usr/hadoop
编辑环境变量
vim /etc/profile
按“i”,在文件末尾加入
export HADOOP_HOME=/usr/hadoop/hadoop-2.10.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
按“ESC”,然后输入“:wq”保存并退出
使环境变量立即生效
source /etc/profile
查看安装是否成功
hadoop version
Hadoop的伪分布式安装需要在hadoop-2.10.1/etc/hadoop目录按下列步骤修改配置文件
首先需要配置hadoop-env.sh
cd hadoop/hadoop-2.10.1/etc/hadoop
vim hadoop-env.sh
按“i”,在文件末尾加入以下内容
export JAVA_HOME=/usr/jdk1.8.0_291
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.10.1/etc/hadoop
按“ESC”,然后输入“:wq”保存并退出
配置core-site.xml,在修改文件前养成备份的好习惯,也就是用cp命令复制出一个同名文件加bak的后缀(cp xxx xxx.bak)
cp core-site.xml core-site.xml.bak
vim core-site.xml
按“i”,在configuration标签中增加信息,增加之后如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
按“ESC”,然后输入“:wq”保存并退出
配置hdfs-site.xml
cp hdfs-site.xml hdfs-site.xml.bak
vim hdfs-site.xml
在configuration标签中增加信息,增加之后如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
在configuration标签中增加信息,增加之后如下
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
chown -R hadoop:hadoop mapred-site.xml
配置yarn-site.xml
cp yarn-site.xml yarn-site.xml.bak
vim yarn-site.xml
在configuration标签中增加信息,增加之后如下
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动Hadoop服务之前,首先需要格式化Hadoop的 namenode
su hadoop
ssh localhost
hdfs namenode -format
启动Hadoop服务(启动HDFS服务 – 启动YARN服务 – 启动MapReduce服务)
start-dfs.sh
输入“yes”
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
运行jps命令,查看正在运行的进程
jps
Hadoop支持通过web查看运行状态
通过http://localhost:50070/查看Namenode状态。
通过http://localhost:8088/ 查看资源管理器 状态。
通过http://localhost:19888/查看JobHistoryServer历史服务器状态
当不再需要Hadoop运行时,运行下面的命令终止Hadoop的全部服务
终止命令和启动命令顺序相反,把start改成了stop
mr-jobhistory-daemon.sh stop historyserver
stop-all.sh
之后启动Hadoop可以用如下命令
start-all.sh
mr-jobhistory-daemon.sh start historyserver