
1.hadoop和jdk下载
我下载的hadoop版本是hadoop-2.6.0.-cdh5.16.2.tar.gz
如果有想换其他版本的可以去官网下载:https://hadoop.apache.org
下面是官网打开初始界面
往下拉到底部,选择Release archive,点击进去
进去以后各种版本任你挑选,选中你想要下载的版本,点击Release
最后再点击Download,下载tar包
下载完Hadoop再进行jdk下载(jdk版本参考Hadoop推荐的版本,不然有可能你的jdk会与它的兼容性存在bug HadoopJavaVersions - HADOOP2 - Apache Software Foundation)
我下载的jdk版本是 jdk-8u301-linux-x64.tar.gz 如果有想下其他版本可以直接点这个链接
也可以去自行去官网:https://www.oracle.com/index.html下载,进入官网页面,点击最上栏中间的Support
下拉页面,找到下载区域,点击Java
点击Java(JDK) for Developers
下滑选择JDK版本,一般下载JDK8版本。根据电脑配置选择你们想要的版本下载安装包
然后可以选择你想下载的版本
1-2.安装前的部署
1)从Windows上传文件到Linux:rz命令或者winscp软件
上传hadoop包,到/tmp(权限777)目录,不会受权限影响
2)创建用户:
创建hadoop用户
切换hadoop用户
创建自己的文件夹:
sourcecode(源代码编译)、software(安装包)、app(包解压目录)、log(日志文件)、lib(第三方jar)、data(数据目录)、tmp(临时文件)、sh(sh脚本)
2.jdk的部署可以看我blogMySQL的安装部署里面有
3.hdfs安装部署
3.1 解压
进入software目录查看安装包,并解压到app目录
3.2 配置软连接
进入app目录,进行软连接的配置
下面这张图是我配置好软连接之后的样子
ln -s 是软连接的命令语句,运行完以后就会出现软连接了
软连接好处:(相当于Windows软件的快捷方式)
a. 版本切换,脚本应用是配置的hadoop,是无感知的
b.小盘换大盘,系统盘比较小要换数据盘时,就很方便
3.3 解读目录只关注bin sbin etc
bin(可执行命令)、etc(配置文件)、sbin(启动执行脚本)
3.4 部署模式
Hadoop有三种模式,分别是:Local Mode(本地模式)、Pseudo-Distributed Mode(伪分布模式)、Fully-Distributed Mode(集群模式),我们学习一般使用伪分布模式。
3.5 修改hadoop-env.sh,显性java目录
这里配置的Java目录,就是你配置jdk环境变量时的目录,可以通过which java命令查看
2.6 配置ssh信任关系
切换到root用户,配置内网IP,红色箭头指定的就是需要添加的你的内网IP,后面是机器名。
(内网IP可以通过命令:ifconfig查看,inet对应的就是内网IP)
切换到hadoop用户
删除已存在的.ssh,建议生产上mv移走重命名
[hadoop@hadoop001 ~]$ rm -rf .ssh
[hadoop@hadoop001 ~]$ ssh-keygen 按三次回车
成功后,进入.ssh隐藏目录下
[hadoop@hadoop001 .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
最后至关重要一步:配置600权限
[hadoop@hadoop001 .ssh]$ sshchmod 0600 ~/.ssh/authorized_keys
验证ssh,第一次必须要输入yes建立关系,无需输入密码即可打印日期
[hadoop@hadoop001 .ssh]$ ssh hadoop@hadoop001 date
输入yes
第二次打印
[hadoop@hadoop001 .ssh]$ ssh hadoop@hadoop001 date
3.7 配置namenode进程以hadoop001启动
修改core-site.xml文件
3.8 配置secondary namenode 进程以hadoop001启动
修改hdfs-site.xml文件
3.9 配置datanode 进程以hadoop001启动
直接添加hadoop001(你的机器名)
3.10 格式化
表明格式化成功
且当前存储目录默认是在/tmp目录下的hadopp-hadoop
3.11 启动
进入sbin目录启动进程
[hadoop@hadoop001 sbin]$ start-dfs.sh
21/11/24 08:33:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [hadoop001]
hadoop001: starting namenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-hadoop-namenode-hadoop001.out
hadoop001: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-hadoop-datanode-hadoop001.out
Starting secondary namenodes [local host]
local host: starting secondarynamenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-hadoop-secondarynamenode-hadoop001.out
21/11/24 08:33:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
启动成功后我们可以看到,secondarynamenode是local host启动的,如果我们以local host启动的话,就只能当前机器进行访问。
修改secondary namenode 为hadoop001启动
接下来重启进程,先停止再启动
[hadoop@hadoop001 sbin]$ sh stop-dfs.sh
[hadoop@hadoop001 sbin]$ sh start-dfs.sh
成功实现hadoop启动三个进程,我们可以通过jps命令查看当前进程
3.12 测试部署是否完成
查看hadoop进程,找到namenode的进程号为84004,再通过进程找端口号
[hadoop@hadoop001 sbin]$ ps -ef | grep hadoop
[hadoop@hadoop001 sbin]$ netstat -nlp | grep 84004
接下来去windows浏览器输入:主机IP+50070
如果web界面能够打开,说明部署完成
4. 数据存储在/tmp/hadoop-hadoop不合理
因为/tmp目录30天不访问的文件文件夹会被按照规律删除,所以生产上不要把内容放在/tmp目录
因此我们把/tmp目录下的hadoop-hadoop文件夹内容都移动到自己创建的家目录下的tmp目录下
并且在core-site.xml文件中 新增文件位置
添加:
最后再重启dfs
stop-dfs.sh
start-dfs.sh