系统:Ubuntu16.04

JDK:jdk-8u201

Hadoop:3.1.2

一、安装JDK

https://www.cnblogs.com/tanrong/p/10641803.html

二、安装并配置ssh免密登录

hadoop需要使用SSH的方式登陆,linux下需要安装SSH。客户端已经安装好了,一般只需要安装服务端就可以了:
在安装之前,还是先查看系统是否已经安装并且启动了ssh。

# 查看ssh安装包情况
dpkg -l | grep ssh # 查看是否启动ssh服务
ps -e | grep ssh

如果没有ssh服务,则安装ssh:

$ sudo apt-get install openssh-server

安装完成,开启服务(一般都是自动开启的,所以如果一切正常的话下面这条可以不用执行)

$ sudo /etc/init.d/ssh start

测试登陆本机 ssh localhost  输入yes,再输入密码,就应该可以登录了。但是每次输入比较繁琐,如果是集群那就是灾难了,所以要配置成免密码登陆的方式。

1. 生成公钥私钥,将在~/.ssh文件夹下生成文件id_rsa:私钥,id_rsa.pub:公钥

$ ssh -keygen -t rsa

一直回车即可

2. 导入公钥到认证文件,更改权限:

(1)导入本机:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

(2)导入服务器:(我只是在本机配置的,所以这一步我没做)

首先将公钥复制到服务器:

scp ~/.ssh/id_rsa.pub xxx@host:/home/xxx/id_rsa.pub 

然后,将公钥导入到认证文件,这一步的操作在服务器上进行:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 

最后在服务器上更改权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3)测试:ssh localhost 第一次需要输入yes和密码,之后就不需要了。

三、hadoop的安装与配置

1. 官网下载:https://hadoop.apache.org/releases.html  Binary download

也可以使用wget命名下载(下载目录是当前目录):

例如:version3.1.2 http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

2. 解压、移动到你想要放置的文件夹

mv ./hadoop-3.1.2.tar.gz ~/Software/hadoop

tar -zvxf hadoop-3.1.2.tar.gz

3. 创建hadoop用户和组,并授予执行权限

sudo addgroup hadoop
sudo usermod -a -G hadoop xxx   #将当前用户加入到hadoop组
sudo gedit /etc/sudoers  #将hadoop组加入到sudoer

在 root ALL=(ALL) ALL   后

添加一行 hadoop ALL=(ALL) ALL

sudo chmod -R 755 /home/rongt/Software/hadoop

sudo chown -R rongt:hadoop /home/rongt/Software/hadoop //否则ssh会拒绝访问

这些都是一般需要的操作,这篇文章还进行了其它的配置,如果遇到问题可以看看,是不是由于这些配置导致的:点这里

4. 修改配置文件,和JDK的安装一样,可以选择修改哪个文件。这里修改 sudo gedit /etc/profile 或者 sudo gedit ~/.bashrc

export HADOOP_HOME=/home/rongt/Software/hadoop/hadoop-3.1.2
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
# 使配置文件生效
source /etc/profile
或者 source ~/.bashrc

这篇配置文章还配了很多其它配置,我暂时没有配置,遇到问题,可以做为参考。点这里

记录一个报错 ERROR: /usr/lib/jvm/java-8-oracle/jre/bin/bin/java is not executable.

很明显路径错误,里面有两个bin,当时是因为环境变量设置错误,但是后来改了环境变量还是这样报错,考虑到是因为环境变量没有生效,于是执行了source /etc/profile但还是不行,最后重启之后解决了

5. 测试是否配置成功

hadoop version

6. hadoop单机配置(非分布式模式)

hadoop默认是非分布式模式,不需要进行其它配置。可以测试demo来观察是否配置正确。下面这个例子用来统计README.txt 文件的单词数

# 进入hadoop主目录
cd /home/rongt/Software/hadoop/hadoop-3.1.2
mkdir input
# 里面有个README.txt
cp README.txt input # 注意改成自己的Hadoop版本
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-3.1.2-sources.jar org.apache.hadoop.examples.WordCount input output

7. hadoop伪分布式配置

 伪分布式只需要更改两个文件就够了,core-site.xml和hdfs-site.xml。这两个文件都在hadoop目录下的etc/hadoop中。

cd /home/rongt/Software/hadoop/hadoop-3.1.2/etc/hadoop

首先是core-site.xml,设置临时目录位置,否则默认会在/tmp/hadoo-hadoop中,这个文件夹在重启时可能被系统清除掉,所以需要改变配置路径。修改<configuration> </configuration>

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/rongt/Software/hadoop/hadoop-3.1.2/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

 然后就是hdfs-site.xml,伪分布式只有一个节点,所以必须配置成1。还配置了datanode和namenode的节点位置。

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/rongt/Software/hadoop/hadoop-3.1.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/rongt/Software/hadoop/hadoop-3.1.2/tmp/dfs/data</value>
</property>
</configuration>

配置完成后在 /home/rongt/Software/hadoop/hadoop-3.1.2 (注意是自己的hadoop目录) 下使用以下命令 执行format命令,格式化名称节点

./bin/hdfs namenode -format 

开启hdfs:./sbin/start-dfs.sh  (同样注意路径)如果出现ssh认证 输入yes就可以了。

遇到报错:localhost: ERROR: JAVA_HOME is not set and could not be found.

解决方案:其实是hadoop里面hadoop-env.sh文件里面的java路径设置不对,hadoop-env.sh在/home/rongt/Software/hadoop/hadoop-3.1.2/etc/hadoop目录下,具体的修改办法如下:

# sudo gedit hdoop-env.sh

将语句
export JAVA_HOME=$JAVA_HOME
# 也有可能语句为export JAVA_HOME= (且被注释掉了) 修改为
export JAVA_HOME=/usr/lib/jvm/java-8-oracle # 自己的Java home路径,可以在终端输入$JAVA_HOME 查看 保存后退出,重新执行./sbin/start-dfs.sh

输入jps命令查看是否启动成功

namenode和datanode都要出现才算成功??

访问http://localhost:50070 查看节点信息。  具体要看配置文件,我目前的地址是:http://rongt:50070

关闭hdfs:     ./sbin/stop-dfs.sh

问题:hadoop无法访问50070端口

8. 配置yarn(非必须)

上面都是hdfs的配置,接下来就需要配置mapreduce的相关配置了,不配这个也不会影响到什么。但是缺少了资源调度,hadoop2.x版本使用yarn来进行任务调度管理,这是与1.x版本最大的不同。

在/home/rongt/Software/hadoop/hadoop-3.1.2下操作

# 并没有mapred-site.xml.template这个文件,不过直接有mapred-site.xml,所以没有执行这一步
# 我看的教程是安装2.x的,但我下的是3.1.2,这可能是版本区别吧
cp ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml sudo gedit ./etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

修改etc/hadoop/yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

启动yarn(要先启动了hdfs:./sbin/start-dfs.sh

./sbin/start-yarn.sh

开启历史服务器,查看历史任务,这样可以在web界面中查看任务运行情况:

./sbin/mr-jobhistory-daemon.sh start historyserver

启动成功后可以在http://localhost:8088/cluster访问集群资源管理器。

不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster 。

关闭资源管理器

./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver # 关了之后 http://localhost:8088/cluster就无法访问了

9. 分布式部署,没有两台电脑,没有尝试,具体见:这里

四、hdfs文件操作

参考链接:(在chrome书签 Hadoop - HDFS中都有)

HDFS文件操作

HDFS基本概念和命令行操作

hdfs中删除文件、文件夹、抓取内容

Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":student:supergroup:drwx------权限问题

Permission denied: user=administrator, access=WRITE, inode="/":root:supergroup:drwxr-xr-x

# 在linux命令前加  hdfs dfs -

hdfs dfs -help

# 查看 新版本要加一个 /
hadoop fs -ls / # 删除
hadoop fs -rm -r /wordCount2 # 新建
hdfs dfs -mkdir /Test # 赋权
hadoop fs -chmod 777 /wordCount2

参考:

Ubuntu16.04+hadoop2.7.3环境搭建  !!

ubuntu16.04 +Java8+ hadoop2.x单机安装

Ubuntu16.04下Hadoop的本地安装与配置  !!

Ubuntu安装Hadoop的更多相关文章

  1. Ubuntu安装Hadoop与Spark

    更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了.按 ctrl+alt+t 打开终端窗口,执行如下命令: sudo a ...

  2. Ubuntu 安装 hadoop

    安装完Linux后,我们继续(VMWare 安装 Linux  http://blog.csdn.net/hanjun0612/article/details/55095955) 这里我们开始学习安装 ...

  3. ubuntu安装hadoop经验

    安装环境: 1 linux系统 2 或(windows下)虚拟机 本文在linux系统ubuntu下尝试安装hadoop 安装前提 1 安装JDK(安装oracle公司的JDK ) (1)检查是否已安 ...

  4. Ubuntu 安装hadoop 伪分布式

    一.安装JDK  : http://www.cnblogs.com/E-star/p/4437788.html 二.配置SSH免密码登录1.安装所需软件        sudo apt-get ins ...

  5. ubuntu安装hadoop 若干问题的解决

    问题1:安装openssh-server失败 原因: 下列软件包有未满足的依赖关系: openssh-server : 依赖: openssh-client (= 1:5.9p1-5ubuntu1) ...

  6. Ubuntu - 安装hadoop(简约版)

    相关版本: VMware ubuntuKylin16.04 JDK :openjdk Hadoop-2.9.1 步骤: 1.SSH 配置 [ 远程登陆 ] [ 配置SSH免码登陆 ] *测试:ssh ...

  7. 在Ubuntu上单机安装Hadoop

    最近大数据比较火,所以也想学习一下,所以在虚拟机安装Ubuntu Server,然后安装Hadoop. 以下是安装步骤: 1. 安装Java 如果是新机器,默认没有安装java,运行java –ver ...

  8. [Hadoop入门] - 2 ubuntu安装与配置 hadoop安装与配置

    ubuntu安装(这里我就不一一捉图了,只引用一个网址, 相信大家能力) ubuntu安装参考教程:  http://jingyan.baidu.com/article/14bd256e0ca52eb ...

  9. 安装Hadoop及Spark(Ubuntu 16.04)

    安装Hadoop及Spark(Ubuntu 16.04) 安装JDK 下载jdk(以jdk-8u91-linux-x64.tar.gz为例) 新建文件夹 sudo mkdir /usr/lib/jvm ...

随机推荐

  1. 【转】BTree,B-Tree,B+Tree,B*Tree

    B树: 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: ...

  2. Jenkins Sonar

    sonar简介 SonarQube是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题.同时,它提供了丰富的插件,支持多种语言的检测, 如 Java.Python ...

  3. java容器-Map

    Map:基本思想是映射表(维护键-值对),HashMap,TreeMap,LinkedHashMap,ConcurrentHashMap等都是基于Map接口实现的map容器,他们特性不同,表现在效率, ...

  4. PMP知识点(五)——配置管理

    配置控制重点关注可交付成果及各个过程的技术规范,而变更控制则着眼于识别.记录.批准或否决对项目文件,可交付成果或基准的变更. 包括在实施整体变更控制过程中的部分配置管理活动有: 1.配置识别. 识别与 ...

  5. DOS:第一天

    cd,有时也写作chdir(change directory,改变目录),是在Unix.Windows和DOS操作系统下用于改变工作目录的命令行命令.在Unix的外壳脚本与Windows或DOS的批处 ...

  6. 基于Gecko内核的简单浏览器实现

    分享一个基于Gecko内核的简单浏览器实现过程. 项目需要需要开发一个简单浏览器,由于被访问的网页中有大量Apng做的动画,使用IE内核的webbrowser不能播放,使用基于WebKit和Cefsh ...

  7. js reduce()方法使用

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. reduce() 可以作为一个高阶函数,用于函数的 compose. 注意: reduce() 对 ...

  8. kettle使用记录

    1.linux系统抽取数据 export KETTLE_HOME=/home/oracle/Kettle/pdi-ce-6.1.0.1-196/data-integration export JAVA ...

  9. 【干货】使用SIFT取证工作站校验文件哈希----哈希一致则文件具备完整性

    此实验来源于课程活动部分:第1单元:计算机取证基础  1.3活动和讨论  活动:* nix系统中文件的基本散列 注意:本博客更多的信息可能没有交代完善,有的人看不明白是因为,我知道,但是没有写出来.本 ...

  10. MySQL数据优化

    很多企业,可能每天应对的数据量达百万,千万,甚至上亿的访问量,这样的量已经超过普通配置的mysql所承受的量,所以为了应对日益增长的访问量,我们需要对mysql做出相应的对策,进一步优化mysql以达 ...