(三)Java日志大数据(单机环境)学习笔记——Hadoop安装与配置
- Hadoop介绍
- 一、安装Hadoop
- 五、学习路线
Hadoop介绍
大家好,我是认真🇨🇳。本章我会记录hadoop分布式系统的搭建、配置和Java Api远程调用hadoop,hadoop对大数据搭建极为重要,因为它属于大数据架构的底层存储,其他的大数据软件的服务和运行将会建立在hadoop之上,下面先简单介绍下hadoop。
hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。hadoop实现了一个分布式文件系统,其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
一、安装Hadoop
hadoop下载地址:hadoop-3.2.2.tar.gz,提取码:net0
1. 将hadoop-3.2.2.tar.gz移动到 /usr/local 目录下
cd /usr/local
2. 解压hadoop-3.2.2.tar.gz
tar -zxvf /usr/local/hadoop-3.2.2.tar.gz
3. 对解压后的文件夹重命名
mv /usr/local/hadoop-3.2.2 /usr/local/hadoop
4. 修改core-site.xml配置文件
cd /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<!--默认文件系统的uri-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--配置临时目录,如果处理大数据很多,需要指定目录,这个很重要-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_temp</value>
</property>
<!--配置文件压缩类型,当前指定压缩类型为Gzip-->
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
</configuration>
5. 修改hdfs-site.xml配置文件
vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!--配置hdfs文件地址-->
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<!--配置文件副本个数,默认为3,由于我做的是单机,配置2-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--配置文件操作最大线程数,默认为4096-->
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>
</configuration>
6. 修改mapred-site.xml配置文件
vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<!--提交作业时使用的暂存目录,默认为local-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--MR应用程序的类路径-->
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*</value>
</property>
<!--mapreduce过程数据是否压缩-->
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<!--mapreduce过程数据压缩格式,和core-site.xml配置保持一致-->
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
<!--是否压缩作业输出-->
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
<!--数据输出压缩格式,和core-site.xml配置保持一致-->
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
<!--每个mapper可请求的内存量-->
<property>
<name>mapreduce.map.memory.mb</name>
<value>4096</value>
</property>
<!--每个reduce可请求的内存量-->
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>4096</value>
</property>
<!--mapper可请求的内存量-->
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx5120m</value>
</property>
<!--java选项配置-->
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx5120m</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx5120m</value>
</property>
</configuration>
7. 修改yarn-site.xml配置文件
vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--默认值的环境变量-->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!--应用程序的类路径-->
<property>
<name>yarn.application.classpath</name>
<value>/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/*:/usr/local/hadoop/share/hadoop/common/*:/usr/local/hadoop/share/hadoop/hdfs:/usr/local/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/share/hadoop/yarn:/usr/local/hadoop/share/hadoop/yarn/lib/*:/usr/local/hadoop/share/hadoop/yarn/*</value>
</property>
<!-- 关闭检查虚拟内存量 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!--RM上每个容器请求的最小分配(以虚拟CPU核为单位)-->
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>4</value>
</property>
<!--RM上每个容器请求的最最大分配(以虚拟CPU核为单位)-->
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>8</value>
</property>
<!--RM上每个容器请求的最小分配,单位MB-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>4096</value>
</property>
<!--RM上每个容器请求的最大分配,单位MB-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
</configuration>
8. 修改/etc/profile配置文件
vi /etc/profile
-- 在/etc/profile添加以下内容
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
source /etc/profile
9. 修改hadoop-env.sh配置文件
-- 找到sh中的JAVA_HOME位置,修改为以下配置
JAVA_HOME=/usr/local/jdk1.8
10. 进入到bin目录下
cd /usr/local/hadoop/bin
11. 配置 SSH 免密
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
12. 格式化 HDFS 文件系统
./hdfs namenode -format
13. 开启hadoop
cd /usr/local/hadoop/sbin
./start-all.sh
14. 检测hadoop是否运作
jps
15. 查看All Application运行状态
访问服务器的8088端口即可访问hadoop的web管理端,查看mr运行状态
15. 查看hdfs文件系统运行状态
访问服务器的50070端口即可访问hadoop的hdfs系统存储,点击"Utilities "下的"Browse the file system"查看文件存储