Hadoop安装(CentOS7版)

1. Hadoop三大发行版本简介

1)Apache Hadoop
官网:http://hadoop.apache.org/
最原始的版本,所有发行版均基于这个版本进行改进,不推荐使用,不稳定且有版本冲突等问题。
2)Cloudera Hadoop(Cloudera’s Distribution Including Apache Hadoop,简称:CDH)
3)Hortonworks Hadoop(Hortonworks Data Platform,简称:HDP)

两家大数据先驱Cloudera和Hortonworks公司合并后推出了新的统一的大数据平台CDP,但CDH和HDP仍可以到它们的官网去下载。

其中CDH还可以通过以下链接下载:
CDH5:http://archive.cloudera.com/cdh5/cdh/5/
CDH6:https://archive.cloudera.com/cdh6/

三者比较:

Apache Hadoop CDH HDP
管理工具 手动 Cloudera Manager Ambari
收费情况 开源 社区版免费,企业版收费 免费

两家大数据先驱Cloudera和Hortonworks于2018年10月宣布了双方称之为相对平等的合并,表示要创建世界领先数据平台。正式合并完成后Cloudera推出了新的统一的大数据平台CDP(Cloudera Data Platform),它也是Cloudera新兴的“企业数据云”战略的核心。同时宣布的还有他们将继续支持现有的CDH和HDP平台一直到2022年,同时在这3年对现有的产品还会进行交叉组合。-- 引自

2. Hadoop安装前置要求

2.1 安装JDK1.8+ (教程)

由于Hadoop由Java编写,所以需要Java环境支持。

2.2 ssh无密码登录部署 (教程)

Hadoop集群主从节点通信每次都要登录操作,这样肯定是不行的,所以要配置ssh无密码登录。

3. Hadoop CDH发行版下载

本文使用的Hadoop版本为hadoop-2.6.0-cdh5.15.1。如需要其它Hadoop生态的软件记得也要使用对应后缀的版本,例:hive-1.1.0-cdh5.15.1

CDH相关软件包下载地址:http://archive.cloudera.com/cdh5/cdh/5/

方式一:

Linux Hadoop下载命令:

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1.tar.gz

方式二:

本地下载下来后再传到服务器端,但不建议,冗余的操作。一般用于命令行下载慢的情况使用。
下载地址搜索hadoop-2.6.0-cdh5.15.1可以找到tar.gz安装包和文档:
Hadoop安装(CentOS7版)_第1张图片
Hadoop对应版本的文档:
在这里插入图片描述
Hadoop安装(CentOS7版)_第2张图片

4.Hadoop安装及配置

4.1 解压至指定目录:

tar -zxvf hadoop-2.6.0-cdh5.15.1.tar.gz -C /usr/softinstall

Hadoop软件包常见目录说明:
bin:hadoop客户端名单
etc/hadoop:hadoop相关的配置文件存放目录
sbin:启动hadoop相关进程的脚本
share:常用例子

4.2 配置HADOOP_HOME系统环境变量

本文根据官方文档中General --> Single Node Setup的说明来进行配置

如需对所有用户生效则配置在/etc/profile中:

vim /etc/profile

如仅需对当前用户生效则配置在~/.bash_profile中:

vim ~/.bash_profile

配置环境变量:

export HADOOP_HOME=/usr/softinstall/hadoop-2.6.0-cdh5.15.1
export PATH=$PATH:$HADOOP_HOME/bin

修改后需要source一下配置文件:

source /etc/profile
source ~/.bash_profile

说明:配置在/etc/profile~/.bash_profile中看自身需要二选一即可。

4.3 配置hadoop-env.sh

cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh

修改JAVA_HOME为具体路径而不是默认的环境变量,这样是为了防止系统中java没有配置环境变量,或者环境变量对应的版本不是想要的:

# The java implementation to use.
# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/softinstall/jdk1.8.0_231

4.4 配置core-site.xml

配置节点的IP地址和端口号:

vim core-site.xml

    
        fs.defaultFS</name>
        hdfs://lee000:8020</value>
    </property>
</configuration>

4.5 配置hdfs-site.xml

Hadoop默认3个节点,而现在实际上只有1个节点,所以要调整该副本系数为1(大家可以根据自身需求进行配置):

vim hdfs-site.xml

    
        dfs.replication</name>
        1</value>
    </property>
    
        hadoop.tmp.dir</name>
        /home/jimmy/install/hadoop_tmp</value>
    </property>
</configuration>

hadoop.tmp.dir 是 hadoop文件系统依赖的基本配置,很多配置路径都依赖它,它的默认位置在/tmp/{$user}下面,而LINUX 系统,在重启后,/tmp 下的目录被清空。所以在core-site.xml中需要配置 hadoop.tmp.dir 路径到持久化目录,不然每次重启后数据都被清空了。

4.6 配置slaves从节点

从节点DateNode默认是在localhost上运行,但现在单机测试,全配置到本地lee000主机上,所以localhost改成lee000(大家可以按需修改):

vim slaves
lee000

5. HDFS格式化及启动

5.1 HDFS格式化

注意:第一次启动的时候一定定要格式化文件系统(hadoop.tmp.dir),但不要重复执行

cd $HADOOP_HOME/bin

执行格式化:

hdfs namenode -format

格式化成功后可以在配置的hadoop.tmp.dir文件夹中找到dfs相关缓文件:

[root@lee000 bin]# cd /home/jimmy/install/hadoop_tmp
[root@lee000 hadoop_tmp]# ls
dfs

5.2 启动HDFS

cd $HADOOP_HOME/sbin
./start-dfs.sh

jps命令验证,有如下3个进程就代表集群启动成功:

[root@lee000 hadoop_tmp]# jps
59472 SecondaryNameNode
19138 Jps
59181 NameNode
59310 DataNode

如果启动失败,则应该去$HADOOP_HOME/logs目录查看日志,哪个进程没启动成功就查哪个

5.3 停止集群

./stop-dfs.sh

6.HDFS文件系统Shell操作

可以到官方文档中的General --> FileSystem Shell 中找到对应的Hadoop版本自行查阅。
例如:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

7.常见问题

7.1 防火墙问题

注意:如果发现jps验证进程是好的,但浏览器访问服务器(http://192.168.0.100:50070/)打不开,十有八九是防火墙问题。
查看防火墙状态:

sudo firewall-cmd --state

关闭防火墙:

sudo systemctl stop firewalld.service

参考:https://blog.csdn.net/yuxielea/article/details/100653903
Hadoop安装(CentOS7版)_第3张图片

7.2 HDFS如何单个进程启动或关闭

可以通过以下命令只启动NameNode和DataNode,而不启动SecondaryNameNode:

./hadoop-daemons.sh start namenode
./hadoop-daemons.sh start datanode

start/stop-dfs.sh与hadoop-daemons.sh的关系:
start-dfs.sh=
./hadoop-daemons.sh start namenode
./hadoop-daemons.sh start datanode
./hadoop-daemons.sh start secondarynamenode
stop-dfs.sh=
./hadoop-daemons.sh stop namenode
./hadoop-daemons.sh stop datanode
./hadoop-daemons.sh stop secondarynamenode

你可能感兴趣的:(Hadoop,hadoop)