以前装Hadoop-3.1.2是跟着厦大林子雨的详细教程装的,所以遇到的问题不多,自己没怎么思考,导致跟着官网再装了一个Hadoop-2.9.2(为了装Hbase2.2.0)时装了两天,现在把遇到过的问题记下来以免以后再犯。

首先,安装软件首先看官网教程。但官网的教程是很简单的,比如Hadoop的安装。默认会创建hadoop用户;给hadoop权限;所有都在hadoop用户下操作(不然会出错);会更新apt;会解压;会配JAVA_HOME,会配置SSH免密登陆。但我是个小白啊,都不懂,因此查了很多资料。不过这些都是Linux基础,我现在得记住这些。

一、准备工作

(一)创建hadoop用户

1.1 创建可以登陆的 hadoop 用户,并自动建立用户的登入目录

sudo useradd -m hadoop

-m 是自动建立用户的登入目录,如果不输以新用户身份登入后会出错。

-s指定用户登入后所使用的shell。默认值为/bin/bash。(所以可以不指定)

其他详见useradd命令详解:

1.2 设置密码,按提示输入两次密码

sudo passwd ${你想设的密码}

sudo是使得普通用户有root权限的命令,如果就是root没必要输。

1.3 可为 hadoop 用户增加管理员权限,方便部署

sudo adduser hadoop sudo

(二)更新apt

后续我们使用 apt 安装软件(比如ssh-server),如果没更新可能有一些软件安装不了。

sudo apt-get update

(三)安装SSH,配置免密登陆

厦大教程cf官网教程,厦大说下载ssh-server(首先要确保你的linux系统中已经安装了ssh,对于ubuntu系统一般默认只安装了ssh client,所以还需要我们手动安装ssh server)

而官网说安装ssh(why?I don‘t know,但我相信官网hhh)

所以安装过程是:

sudo apt-get install ssh

sudo apt-get install pdsh

配置免密登陆是:

先check一下可不可以免密:

ssh localhost

如果不行,利用 ssh-keygen 生成密钥,并将密钥加入到授权中(参考官网)。

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #加入授权

chmod 0600 ~/.ssh/authorized_keys #啥意思?

(四)安装Java环境

4.1 apt傻瓜式安装java

按班主任的操作好像是先查看  java -version ,或者 which java ,没有,系统提示apt-install headlessjava啥的,然后安装openjdk-8-jdk

apt install openjdk-8-jdk

不安11好像是因为这个在hadoop3上没有错,比较稳定。

4.2 编辑当前登录用户的环境变量配置文件

vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

JAVA_HOME指明JDK安装路径,此路径下包括lib,bin,jre等文件夹。

如果你不记得自己的JAVA在哪里,可以输 whereis java ,再翻文件夹到第一个不是快捷键的就是你java的位置啦!

4.3 让环境变量立即生效

请执行如下代码:

source ~/.bashrc

4.4检验

执行上述命令后,可以检验一下是否设置正确:

用查看java -version等方式检验一下,至此,就成功安装了Java环境。下面就可以进入Hadoop的安装。

二、安装Hadoop

(一)下载Hadoop(假如是2.9.2,方法都是一样的,只是把名字改一下)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

(二)解压

wget默认下载到登陆路径~也就是/home/user,linux下安装路径一般是/usr/local,所以解压到那里。

sudo tar -zxf ~/hadoop-2.9.2.tar.gz -C /usr/local

林子雨的教程里面把hadoop-2.9.2改名了(mv 成hadoop),但考虑到可能装多个hadoop我就不改名了哈。

但hadoop-2.9.2的权限得改,因为hadoop-2.9.2文件默认拥有者是root。

cd /usr/local/ #进入用户安装目录

sudo chown -R hadoop ./hadoop-2.9.2 #修改文件权限(hadoop-2.9.2默认拥有者是root,这里我们让hadoop也成为拥有者)

(三)检查

(每一步都要检查一下,不然就会像我一样经常重置系统哦!)

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop-2.9.2./bin/hadoop version #查看hadoop版本信息,成功显示则安装成功

(四)修改/usr/local/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

uncomment export JAVA_HOME=${JAVA_HOME}或者修改为具体地址

三、单机配置standlone

默认就是,无需配置!我们可以运行运行grep例子

cd /usr/local/hadoop    #进入用户安装目录

mkdir ./input cp ./etc/hadoop/*.xml ./input #将配置文件作为输入文件

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+' cat ./output/* #查看运行结果

结果出现一次,说明✔

养成好习惯,删掉output,不然下次运行出错

rm -r ./output

四、伪分布式

(一)修改 ./ect/hadoop/core-site.xml

配置hdfs端口9000(默认是8020,但和Client连接的RPC端口冲突),让空空的configuration标签充实起来

可用 netstat -ntlp 查看所有使用端口

netstat -lent | grep 9000 查看9000端口

林子雨说可以配置tmp文件路径(默认为/tmp/hadoo-hadoop,重启时可能被系统清理掉),所以配吧配吧以免之后出错。(记住各种dir要根据自己安装的路径改一下啊)

hadoop.tmp.dir

file:/usr/local/hadoop-2.9.2/tmp

Abase for other temporary directories.

fs.defaultFS

hdfs://localhost:9000

(二)修改 ./ect/hadoop/hdfs-site.xml

hdfs-site中官网只配了replication(有几个备份),林子雨指定了 dfs.namenode.name.dir 和 dfs.datanode.data.dir

dfs.replication

1

dfs.namenode.name.dir

file:/usr/local/hadoop-2.9.2/tmp/dfs/name

dfs.datanode.data.dir

file:/usr/local/hadoop-2.9.2/tmp/dfs/data

(三)执行 NameNode 的格式化

./bin/hdfs namenode -format

结果应该是“successfully formatted” ,若JAVA_HOME报错,改./etc/hadoop/hadoop-env.sh中JAVA_HOME为具体地址

(四)启动

终于可以启动了,是不是很激动!

./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable WARN 提示可以忽略,并不会影响正常使用。

(五)检查

输入 jps 查看是否成功,成功了应该有四个

不成功的话:

1.查看.log日志,百度

2.若Datanode没启动

#针对 DataNode 没法启动的解决方法

./sbin/stop-dfs.sh #关闭

rm -r ./tmp #删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据

./bin/hdfs namenode -format #重新格式化 NameNode

./sbin/start-dfs.sh #重启

(六)Web界面访问

我之前一直无法通过localhost访问,后来才想起我不是在本机我电脑是阿里云的云主机啊啊啊啊!!所以正确做法是:

6.1首先关闭防火墙

6.2 浏览器输入{你阿里云的公网ip}:50070

(Hadoop 2.*是50070,3.1.2是9870,具体自行查看官网)

(七)伪分布式例子

7.1创建用户目录

用户目录格式: /user/username

./bin/hdfs dfs -mkdir -p /user/hadoop

7.2input文件

将本地/usr/local/hadoop-2.9.2/ect/hadoop下的xml配置文件拷贝到分布式HDFS中用户目录下的input文件夹中

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -put ./etc/hadoop/*.xml input

我在上传本地文件到HDFS时出现警告

WARN hdfs.DataStreamer: Caught exception java.lang.InterruptedException 但不影响上传,所以没管

复制完成后,可以通过如下命令查看文件列表

./bin/hdfs dfs -ls input

7.3运行例子

伪分布式读取HDFS中的input信息,输出结果

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

五、基本操作

hdfs的基本操作和单机模式相似,只是需要在hadoop安装目录下运行这个./bin/hdfs dfs

-mkdir新建目录(-p递归地./bin/hdfs dfs -mkdir -p /user/hadoop)

-get下载到本地(./bin/hdfs dfs -get output ./output)

-cat显示查看文件内容(./bin/hdfs dfs -cat output/*)

-put本地 目标地址(./bin/hdfs dfs -put ./etc/hadoop/*.xml input)

-列出文件目录(./bin/hdfs dfs -ls input)

-chmod 777 文件名(修改文件权限为所有人可读写)

-rm 删除(-r递归的)

六、参考资料

七、总结(敲重点!)

在阿里云Ubuntu实例上面装软件大概步骤就是

(1)在清华镜像上下载

wget http://mirrors.tuna.tsinghua.edu.cn/*

(2)解压

sudo tar -zxf ~/*.tar.gz -C /usr/local

(3)给hadoop(当前用户)这个文件夹的权限

sudo chown -R hadoop ./hadoop-2.9.2 #修改文件权限(hadoop-2.9.2默认拥有者是root,这里我们让hadoop也成为拥有者)

(4)按照官网,按单机、伪分布一步步来,修改各种配置文件

(5)要访问web前关一下防火墙(控制台)

下面这是我安装hadoop的命令行:

希望我踩过的坑大家就不要踩了,最后,我想说老师说的对啊装软件还是要看官网以及各种英文网站。希望以后装软件快一点,加油!

hadoop2.9安装及配置_阿里云服务器上装Hadoop的心得(内附Hadoop2.9.2详细安装教程)...相关推荐

  1. Ubuntu16.04下安装类似于windows下微信软件,非网页版微信(内附安装包和详细安装指令)

    一.下载安装包 安装包下载地址: 链接:https://pan.baidu.com/s/1M8i6mdC952exhyFoLp84rg 提取码:nt5q 然后解压压缩包,获得文件夹如下: 然后进入文件 ...

  2. yum安装mysql5.7 简书_阿里云服务器(centos7.3)上安装jdk、tomcat、mysql、redis

    前言: 平时我们敲的项目,只能在本地浏览,不论项目写得怎么样只有自己看得到,只有发布到了云服务器,别人才能访问得到.学习之路就是这样,当别人能访问自己的项目时,会更有成就感,所以接下来就一起看看阿里云 ...

  3. 云服务器架设网站教程_阿里云服务器购买流程详细教程及注意事项

    阿里云服务器如何购买?目前,无论个人站长还是企业,都将阿里云作为了上云首选,那么作为新手用户应该如何选择阿里云服务器呢?阿里云服务器配置选择,和网站或应用的类型.访问量.数据量大小.程序质量等因素息息 ...

  4. 基于阿里云服务器搭建hadoop集群:HDFS的namenode WEB访问9870端口打不开解决方法

    基于阿里云服务器搭建hadoop集群:HDFS的namenode WEB访问9870端口打不开解决方法 以下是基于我所面临问题的解决办法. 1.在本地的c:windows/system32/dirve ...

  5. centos6安装mysql并远程连接_阿里云服务器上安装redis并实现远程连接

    一.概述 之前一直将redis安装在本地,为了在服务器上使用redis进行数据的存储,需要在服务器端进行redis的安装,本次使用的是阿里云服务器,由于是第一安装,在安装及后续远程连接过程中也遇到一些 ...

  6. 阿里云centos服务器rdp远程桌面规则_阿里云服务器使用教程 新手用户的好帮手...

    云服务器越来越成为企业及个人用户开展网络业务的首选了,阿里云服务器ECS因其起步较早,用户数量已经是国内第一,全球五强的大云服务商了.虽然阿里云对于用户来说很熟悉了,但阿里云服务器的使用方法,相信还有 ...

  7. 阿里云mysql用户名和密码是什么_阿里云服务器数据库账号密码是什么

    阿里云服务器数据库账号密码是什么,阿里云虚拟机数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关操作,请前 ...

  8. 阿里云mysql怎么查看数据库_阿里云服务器如何查看数据库

    阿里云服务器如何查看数据库,阿里云上布数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关操作,请前往以下两 ...

  9. 阿里云mysql创建数据库服务器地址_阿里云服务器创建数据库操作流程

    阿里云服务器创建数据库操作流程,如何上传数据库阿里云. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关操作,请前 ...

最新文章

  1. 关于条件随机场的一些补充
  2. 城市轨道交通运营票务管理论文_【专业简介】城市轨道交通运营与管理
  3. 姚期智施尧耘获FOCS 2021时间检验奖,MIT华人学霸毛啸摘最佳学生论文奖
  4. 《JVM系列》深入浅出类加载机制中<init>和<Clinit>的区别【一篇即可搞懂初始化机制】
  5. centos mysql 设置_CentOS下MySQL安装后配置和设置-阿里云开发者社区
  6. Shell——运行Shell脚本
  7. linux修改rm指令执行(数据安全)
  8. Linux 内核设备属性
  9. 华为机试HJ52:计算字符串的距离(动态规划)
  10. 第四章 linux字符界面操作
  11. NHibernate从入门到精通系列(3)——第一个NHibernate应用程序
  12. H5分享到微信朋友圈与好友实现思路
  13. rpm包的卸载与安装
  14. (转)双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
  15. 解决js获取当前时间精确到秒并格式划成数字(20200712120610)
  16. AI领域各个方向大牛博客汇总
  17. 云计算 第四章 微软云计算 Windows Azure
  18. win10 kms激活
  19. Oracle数据库 登录命令 用户管理 建表 修改字段 数据类型 约束 增删改查
  20. php对接阿里巴巴开放平台

热门文章

  1. leetcode【困难】460、LFU 缓存
  2. 【ubuntu】禁用IP和端口
  3. leetcode17 电话号码的字母组合,39 组合总和(python)
  4. 全链路压测那点事(一)
  5. 平凡的世界,因你而美
  6. 浏览器火狐3.0发布之盛况
  7. 透明加密支持linux吗,IP-guard文档透明加密软件|文档防泄密|数据加密|Linux系统加密|Mac苹果系统文档加密...
  8. (原创)设置APP内的字体
  9. vmware15.5.5版本虚拟机(VMware Workstation 15 Pro)BUG(CentOS7.3下):切换大小写失效的解决方案
  10. 并发编程中你需要知道的基础概念