1、前言
1.1 大数据的定义
大数据(Big Data)是一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征(4V特征)。IBM公司提出大数据具有5V特点:Volume(大量化)、Velocity(快速化)、Variety(多样化)、Value(价值低)、Veracity(真实性)。
1.2 Hadoop生态圈简介
2、Hadoop伪分布式安装
2.1 VMwear安装Centos7
网上虚拟机的安装教程挺多的,本文就不赘述了。这里贴一个我当时看的博客:VMwear安装Centos7超详细过程
2.2 前期准备
2.2.1 设置虚拟机IP地址
因为虚拟机的IP地址默认是自动获取的,因此可能随着网络环境的改变而改变。为此,我们需要先设置下固定IP地址。
点击桌面右上角网络图标 --> Wired --> Wired Settings --> Setting,然后选择IPv4,在Addresses栏中输入IP地址(注:该IP地址最好与主机处于同一网段)。
2.2.2 修改主机名
要永久修改主机名,可以使用如下shell命令,修改主机名为hadoop0.
hostnamectl set-hostname hadoop0
然后将本机IP地址配置进hosts文件
vim /etc/hosts
# 在文件末尾加上一行
192.168.1.11 hadoop0
2.2.3 ssh连接虚拟机
在通过ssh连接虚拟机之前,要先查看下22端口是否开启。如果没有开启的话,可以参考网上教程。
netstat -tunlp | grep 22
# 或者以下方式
service ssh status
service sshd status
推荐使用ssh软件进行连接,如WinSCP和MobaXterm
2.2.4 安装JDK
从官网下载jdk-8u291-linux-x64.tar.gz,然后使用WinSCP或者MobaXterm将其上传到CentOS7的 /usr/local 目录下。接着使用cd命令切换到 /usr/local 目录,并使用tar命令进行解压缩。
cd /usr/local/
tar -xvf jdk-8u291-linux-x64.tar.gz
解压缩完成后,可安装如下命令配置环境变量。
# 将解压缩后的文件重命名为jdk
mv jdk1.8.0_152/ jdk
# 然后将JDK的安装目录 /usr/local/jdk 配置到 /etc/profile 的PATH环境变量中
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
# 使环境变量生效
source /etc/profile
使用java -version命令查看JDK的版本号,测试JDK是否配置成功。
2.3 安装Hadoop
2.3.1 下载Hadoop
从官网下载hadoop-3.0.0.tar.gz,使用WinSCP或者MobaXterm将其上传到CentOS7的 /usr/local 目录下,准备进行安装。
cd /usr/local/
tar -xvf hadoop-3.0.0.tar.gz
mv hadoop-3.0.0 hadoop
2.3.2 配置环境变量
vim /etc/profile
# 配置环境变量
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 配置hadoop五个进程的账号
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
2.3.3 配置hadoop-env.sh
hadoop-env.sh文件存储了所有Hadoop Shell命令使用的全局设置,比如JAVA_HOME、hadoopconfdir和运行时变量:hadoop栈大小、java运行内存大小等等。
切换到Hadoop配置文件所在目录 /usr/local/hadoop/etc/hadoop/,然后修改hadoop-env.sh的JDK路径。
cd /usr/local/hadoop/etc/hadoop/
vim hadoop-env.sh
# 将37行的 #JAVA_HOME=/usr/Java/testing hdfs dfs -ls 改成如下
JAVA_HOME=/usr/local/jdk
2.3.4 配置core-site.xml
vim core-site.xml
# 配置HDFS的访问URL
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop0:9000/</value>
<description>NameNode URI</description>
</property>
</configuration>
更多配置信息见core-default.xml
2.3.5 配置hdfs-site.xml
配置访问NameNode和DataNode的元数据存储路径,以及NameNode和SecondaryNameNode的访问端口。
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop0:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop0:50090</value>
</property>
</configuration>
更多配置信息见hdfs-default.xml
2.3.6 配置yarn-site.xml
配置yarn的nodemanager和resourcemanager的访问端口等信息。
<configuration>
<!-- Site specific YARN configuration properties -->
<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.resource-tracker.address</name>
<value>hadoop0:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop0:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop0:8050</value>
</property>
</configuration>
更多配置信息见yarn-default.xml
2.3.7 格式化并启动Hadoop
到这里Hadoop相关配置已经完成了,但是我们在启动Hadoop之前需要先对其进行格式化。
hadoop namenode -format
如果没有报错,则表示格式化成功。
注意:如果在使用Hadoop的过程中出错,或者Hadoop启动不了,可能需要重新格式化。重新格式化可以参照停止Hadoop,删除Hadoop下的data和logs文件夹进行格式化的步骤进行。
stop-all.sh
cd /usr/local/hadoop/
rm -rf data/ logs/
hadoop namenode -format
使用start-all.sh命令来启动Hadoop的所有进程,同理stop-all.sh是关闭Hadoop的所有进程。
2.3.8 验证Hadoop
我们可以使用jps命令查看Hadoop相关进程(jps是JDK提供的一个查看当前java进程的小工具,可以看做是JavaVirtual Machine Process Status Tool的缩写)
可以使用Hadoop命令查看HDFS上的文件
hadoop fs -ls /
目前HDFS上面还没有任何文件,HDFS的相关内容将在下一节进行介绍。
也可以浏览器访问的方式查看Hadoop运行相关信息 。
2.3.9 结语
贴一个Hadoop官方文档: hadoop3.0官方文档