linux安装Hadoop-3.1.3-单机/伪分布
0、官方下载地址
[Apache Hadoop下载地址](https://hadoop.apache.org/releases.html)
[Apache Hadoop历史版本](https://archive.apache.org/dist/hadoop/common/)
一、前提准备
1.1 免密登录本机
登录本机:ssh localhost
输入密码,成功后退出登录:exit
如果这一步失败,请先执行上面登录本机步骤:cd ~/.ssh/
会有提示,都按回车就可以:ssh-keygen -t rsa
加入授权* :cat ./id_rsa.pub >> ./authorized_keys
再一次实验登录本机,发现可以直接登录不用密码了:ssh localhost
2.2 jdk的安装,参照博主另一篇文章linux的JDK安装
查看jdk是否安装成功:java -version
如果没有安装jdk,记得安装。建议卸载自带的openjdk
二、Hadoop单机配置(非分布式)
1、上传文件
-
使用工具上传
-
命令行上传
scp hadoop-3.1.3.tar.gz user@192.168.10.133:/home/user
2、解压hadoop压缩包
tar -zxvf hadoop-3.1.3.tar.gz
3、创建hadoop目录
sudo mkdir /usr/local/hadoop
4、移动到hadoop
sudo mv hadoop-3.1.3 /usr/local/hadoop/
5、进入local目录
cd /usr/local/hadoop
6、将hadoop权限给user
sudo chown -R user:user hadoop-3.1.3/
7、查看hadoop是否可以使用
/usr/local/hadoop/hadoop-3.1.3/bin/hadoop version
输入hadoop版本即可代表hadoop可以使用
Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
三、Hadoop伪分布安装,配置 HDFS
说明:
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
3.1 修改配置文件 core-site.xml
进入目录:cd /usr/local/hadoop/hadoop-3.1.3/etc/hadoop
修改文件:sudo vim ./core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
3.2 修改配置文件 hdfs-site.xml
sudo vim ./hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.3/tmp/dfs/data</value>
</property>
</configuration>
3.3 执行NameNode的格式化
cd /usr/local/hadoop/hadoop-3.1.3
./bin/hdfs namenode -format
显示 “successfully formatted” 和 “Exitting with status 0” 的提示,便成功了,否则显示 “Exitting with status 1” 就是出错。
3.4 开启NameNode 、DataNode守护进程
cd /usr/local/hadoop/hadoop-3.1.3
./bin/hdfs namenode -format
报错:
如果出现以下错误
关闭程序: ./sbin/stop-dfs.sh
cd /usr/local/hadoop/hadoop-3.1.3/etc/hadoop
sudo vim hadoop-env.sh
在上面加上以下
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351
export HADOOP=/usr/local/hadoop/hadoop-3.1.3
export PATH=$PATH:/usr/local/hadoop/hadoop-3.1.3/bin
同时删除tmp文件夹中的内容
cd /usr/local/hadoop/hadoop-3.1.3/tmp
执行初始化:
cd /usr/local/hadoop/hadoop-3.1.3
./bin/hdfs namenode -format
过程中可能会输入Y/N,大小写最好和他一样
再次启动
cd /usr/local/hadoop/hadoop-3.1.3
./sbin/start-dfs.sh
jps #输入jps看是否全部启动
3.5 Web 界面查看 NameNode 和 Datanode 信息
还可以在线查看 HDFS 中的文件
Hadoop2.x 为 http://localhost:50070
Hadoop3.x 已改为http://localhost:9870 http://192.168.10.128:9870
3.6 启动 YARN 来负责资源管理与任务调度
启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况
YARN:YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。
上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。
3.6.1 关闭hadoop
cd /usr/local/hadoop/hadoop-3.1.3
./sbin/stop-dfs.sh
3.6.2 修改配置文件 mapred-site.xml
重命名(有的已经改好了就不用改了):
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
修改文件:
vim ./etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.6.3 修改yarn-site.xml
vim ./etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
3.6.4 启动YARN
先启动hadoop
cd /usr/local/hadoop/hadoop-3.1.3
./sbin/start-dfs.sh
启动YARN
./sbin/start-yarn.sh # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver
#开启历史服务器,才能在Web中查看任务运行情况
查看jps,发现多了三个
启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:,如下图所示。
YARN Web页面
http://local:8088/cluster 远程: http://192.168.10.128:8088/cluster
3.7 退出
cd /usr/local/hadoop/hadoop-3.1.3/ #进入目录
./sbin/mr-jobhistory-daemon.sh stop historyserver
./sbin/stop-yarn.sh #退出yarn
./sbin/stop-dfs.sh #退出hadoop