Centos7.X安装单机Hadoop(3.3.4版本)
1. Hadoop 简介
Hadoop 是一个开源的分布式计算和存储框架,是 Apache 基金会开发的,包含3个核心组件:
-
HDFS:全称是 Hadoop Distributed File System,即 Hadoop 分布式文件系统。可以将将大文件、大批量文件分块存储到大量服务器组成的集群上。
-
MapReduce:分布式运算框架,可以基于它编写 MapReduce 应用程序,对大规模数据集(大于1TB)进行并行运算;
-
Yarn:分布式资源调度管理器,可以运行 MapReduce 应用程序。
2. 安装JAVA1.8版本
略...
3. 安装Hadoop
3.1. 下载、上传安装包、解压、放到安装位置
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/ hadoop-3.3.4.tar.gz
# 进入到root目录 cd /root # 解压 tar -zxvf hadoop-3.3.4.tar.gz # 创建安装目录 mkdir /usr/local/hadoop # 将解压后的hadoop挪到创建的安装目录 mv /root/hadoop-3.3.4/ /usr/local/hadoop/ # 进入到安装目录 cd /usr/local/hadoop/hadoop-3.3.4/
3.2. 修改 Hadoop 配置文件
3.2.1 vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/core-site.xml
在<configuration> </configuration>中添加如下代码:
<property> <name>fs.defaultFS</name> <value>hdfs://127.0.0.1:9000</value> //如果其他主机也要访问,那就将127.0.0.1:9000改为:你的网卡IP:9000,或者改为0.0.0.0:9000 </property> <property> <name>hadoop.tmp.dir</name> <!-- 自定义 hadoop 的工作目录 --> <value>/usr/local/hadoop/hadoop-3.3.4/hadoopdata</value> </property> <property> <name>hadoop.native.lib</name> <!-- 禁用Hadoop的本地库 --> <value>false</value> </property>
3.2.2 vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hdfs-site.xml
在<configuration> </configuration>中添加如下代码:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3.2.3 vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/yarn-site.xml
在<configuration> </configuration>中添加如下代码:
<property> <name>yarn.resourcemanager.hostname</name> <value>127.0.0.1</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <!-- yarn web 页面 --> <value>0.0.0.0:8088</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <!-- reducer获取数据的方式 --> <value>mapreduce_shuffle</value> </property>
3.2.4 vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/mapred-site.xml
在<configuration> </configuration>中添加如下代码:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
3.2.5 vi /usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hadoop-env.sh
在文件末尾添加:
# 将当前用户 root 赋给下面这些变量 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root # JAVA的绝对路径,可以使用whereis java查看 export JAVA_HOME=/usr/local/java/jdk1.8.0_341 # Hadoop的安装路径下的etc/hadoop的绝对路径 export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-3.3.4/etc/hadoop
3.3. 配置 Hadoop 环境变量
vi /etc/profile.d/hadoop.sh
HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.4 PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export PATH
使环境变量生效:
# 运行配置文件 source /etc/profile # 检查 PATH 中是否包含 $HADOOP_HOME/bin:$HADOOP_HOME/sbin 对应的目录 echo $PATH
3.4. 修改hosts文件,将当前主机名添加到/etc/hosts的127.0.0.1 后面
# 查看当前主机名 hostname # 此处结果为 ysp # 修改 hosts 文件,将当前主机名配到 127.0.0.1 后面 vi /etc/hosts
3.5. 配置本机 ssh 免密登录(因为hadoop在启动的时候会频繁ssh登录。免密是为了在启动服务脚本时不用再手动的输入账密了)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
3.6. 格式化 HDFS (首次启动前执行)
hdfs namenode -format
3.7. 启动 Hadoop
因为3.3步骤添加了hadoop的sbin的环境变量,所以这里直接执行start-all.sh
start-all.sh
4. 测试
4.1. HDFS 使用测试
在 HDFS 上创建目录
hadoop fs -mkdir /project/ # 查看 hadoop fs -ls /
将本地文件上传到 HDFS
# 新建文本文件 vi file1.txt # 向文本中写入字符串 hello word echo 123 >> test_file_1.txt # 将文本上传到 HDFS hadoop fs -put file1.txt /project/ # 查看文件 hadoop fs -ls /project/
查看 HDFS 上的文本文件内容
hadoop fs -cat /project/file1.txt hello world
将 HDFS 上的文件下载到本地
# 将 HDFS 上的文件下载到本地
hadoop fs -get /project/file1.txt
4.2. Hadoop Web 页面测试
浏览器访问部署机器IP:9870
:
4.3. Yarn Web 页面测试
浏览器访问部署机器IP:8088
: 8088端口是3.2.3步骤配置的