准备
Java Downloads | Oracle 官网:下载hadoop-2.7.3.tar.gz
Apache Hadoop 官网:下载hadoop-2.7.3.tar.gz
下到本地后用Xftp 6或者其它方法上传到服务器,我上传到了/opt/local ,用XShell和notepad++(或vscode或直接vi编辑器)连接服务器
连接XShell后,执行停止防火墙 systemctl stop firewalld.service ,禁止firewall开机启动 systemctl disable firewalld.service ,查看firewall-cmd --state 显示not running
解压
连上服务器先切到压缩包路径下,cd /opt/software ,执行解压缩,解压到/usr/local/ (必须是这个路径,不要自定义)
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/local/
tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/
配置JDK环境
在notepad++中打开/etc/profile ,最后面添加
export JAVA_HOME=/usr/local/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
配置完成后输入XShell中source /etc/profile 让环境变量生效
检查结果输入javac 或javac 或java -version 返回相关信息
[root@server1 ~]
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
配置Hadoop
Hadoop有三种模式
-
Local (Standalone) Mode(本地模式):开发人员debug调试使用,local把文件存到本地的文件系统中 -
Pseudo-Distributed Mode(伪分布式):开发人员debug调试使用,在本地搭建HDFS,伪分布式,完全分布 -
Fully-Distributed Mode(完全分布式(集群) ):生产环境使用,高可用性,比如突然有个节点出问题,保证集群还可用
本地模式
在notepad++中打开/etc/profile ,最后面添加
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成后输入XShell中输入source /etc/profile 让环境变量生效,接着
cd ~
cd $HADOOP_HOME
cd share/hadoop/mapreduce
ls
hadoop jar hadoop-mapreduce-examples-2.7.3.jar pi 10 20
Job Finished in 6.524 seconds
Estimated value of Pi is 3.12000000000000000000
伪分布模式
完全分布式需要免密登录,不然每一次都需要输入密码
根目录下没有.ssh 这个文件,在XShell中输入ssh localhost 输入密码,输入yes ,exit ,退出之后,输入ls -a 此时根目录下已有.ssh 文件
cd .ssh
ssh-keygen -t rsa
ssh-copy-id root@localhost
ssh localhost
exit
先为主机添加映射,本地电脑C:\Windows\System32\drivers\etc\host
ipconfig
以太网适配器 VMware Network Adapter VMnet8:
IPv4 地址 . . . . . . . . . . . . : xxx.xxx.xx.x
hostname
xxxxxx
notepad C:\Windows\System32\drivers\etc\hosts
xxx.xxx.xx.x name
xxx.xxx.xx.x name
同理为虚拟机添加映射,不知道配置可以先在XShell输命令找一下,查看虚拟机主机名hostname ,查看ip地址ifconfig ,用notepad++找/etc/hosts
xxx.xxx.xx.x name
xxx.xxx.xx.x name
完全分布式与伪分布大同小异,多台虚拟机,之后的配置文件都需要配一遍然后且每一个虚拟机的/etc/hosts 和本地的host 都需要做映射
xxx.xxx.xx.x name
xxx.xxx.xx.x name
xxx.xxx.xx.x name
之后配置文件,以下操作到notepad++进行文件编辑,在/usr/local/hadoop-2.7.3/etc/hadoop 找对应文件
hadoop-env.sh
export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk1.8.0_162
mapred-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_162
yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_162
建好目录(之后格式化也会自动生成,可以跳过)
cd /usr/local/hadoop-2.7.3/
mkdir data
cd data
mkdir name
mkdir tmp
core-site.xml,最下面修改<configuration></configuration> ,第6行换为自己的主机
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://server1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.3/data/tmp</value>
</property>
</configuration>
hdfs-site.xml,最下面修改<configuration></configuration>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop-2.7.3/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-2.7.3/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml,默认没有这个文件,从notepad++直接新建文件命名mapred-site.xml,从mapred-site.xml.template复制内容,也可以通过XShell命令cp mapred-site.xml.template mapred-site.xml
最下面修改<configuration></configuration> ,注意第10、14行换成自己主机名,注意server是自己的主机名,也可以写IP地址,前提都是需要做好主机名与ip的映射
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>server1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>server1:19888</value>
</property>
</configuration>
yarn-site.xml,最下面修改<configuration></configuration> ,注意第12行换成自己主机名
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server1</value>
</property>
</configuration>
格式化只能做一次!hdfs namenode -format ,格式化成功会返回Exiting with status 0
22/06/05 00:08:46 INFO util.ExitUtil: Exiting with status 0
22/06/05 00:08:46 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at server1/192.168.26.153
************************************************************/
如果是status 其它查看报错根据报错修改,检查错误后,执行以下命令,然后再次格式化
cd /usr/local/hadoop-2.7.3/data
rm tmp -rf
rm name -rf
测试
- 启动集群
start-dfs.sh ,输入yes - 使用jps命令查看当前节点上运行的服务:
jps - 启动
start-yarn.sh - 成功启动后,通过Web界面查看NameNode和Datanode信息和HDFS文件系统:打开浏览器输入(Windows
C:\Windows\System32\drivers\etc\host 的和Linux的/etc/hosts 映射配置好):http://server1:50070 ,http://server1:8088 查看任务进度
http://server1:50070 如图
cd $HADOOP_HOME
cd share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.3.jar pi 10 20
- 关闭集群
stop-yarn.sh ,stop-dfs.sh 或者一键关闭stop-all.sh
服务汇总
一、启动服务:
1.单独启动namenode:
sbin/hadoop-daemon.sh start namenode
2.单独启动datanode:
sbin/hadoop-daemon.sh start datanode
3.单独启动secondarynamenode
sbin/hadoop-daemon.sh start secondarynamenode
4.单独启动yarn的两个服务:
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
启动hdfs(启动了namenode,secondarynamenode和datanode):start-dfs.sh
启动yarn(启动了resourcemanager和nodemanager):start-yarn.sh
一键启动所有的进程服务:start-all.sh
启动历史服务:mr-jobhistory-daemon.sh start historyserver
二、停止服务
1.单独停止yarn的两个服务:
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
2.单独停止datanode:
sbin/hadoop-daemon.sh stop datanode
3.单独停止secondarynamenode
sbin/hadoop-daemon.sh stop secondarynamenode
4.单独停止namenode:
sbin/hadoop-daemon.sh stop namenode
停止yarn(停止了resourcemanager和nodemanager):stop-yarn.sh
停止hdfs(停止了namenode,secondarynamenode和datanode):stop-dfs.sh
一键停止所有的进程服务:stop-all.sh
停止历史服务:mr-jobhistory-daemon.sh stop historyserver
|