Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

由于小编在本学期有一门课程需要学习hadoop,需要在ubuntu的linux系统下搭建Hadoop环境,在这个历程中遇到一些问题,写下这篇博客来纪录这个历程,并把分享给人人。

Hadoop的安装方式

  • 单机模式:Hadoop默认模式为非分布式模式(内陆模式),无需 举行其他设置即可运行。非分布式即单 Java 历程,利便举行调试
  • 伪分布式模式:Hadoop可以在单节点上以伪分布式的方式运行, Hadoop 历程以星散的 Java 历程来运行,节点既作为 NameNode 也 作为 DataNode,同时,读取的是 HDFS 中的文件
  • 分布式模式:使用多个节点组成集群环境来运行Hadoop

建立Hadoop用户(可选)

若是安装 Ubuntu 的时刻不是用的 “hadoop” 用户,那么需要增添一个名为hadoop 的用户,首先按打开终端窗口,输入如下下令建立新用户 :

sudo useradd –m hadoop –s /bin/bash

上面这条下令建立了可以上岸的 hadoop 用户,并使用 /bin/bash 作为 shell 接着使用如下下令设置密码,可简朴设置为 hadoop,按提醒输入两次密码:

 sudo passwd hadoop

可为 hadoop 用户增添治理员权限,利便部署,制止一些对新手来说对照棘 手的权限问题:

sudo adduser hadoop sudo

SSH登录权限设置

SSH是什么?

SSH 为 Secure Shell 的缩写,是建立在应用层和传输层基础上的平安协议。 SSH 是现在较可靠、专为远程登录会话和其他网络服务提供平安性的协议。 行使 SSH 协议可以有用防止远程治理历程中的信息泄露问题。SSH最初是 UNIX系统上的一个程序,厥后又迅速扩展到其他操作平台。 SSH是由客 户端和服务端的软件组成,服务端是一个守护历程(daemon),它在后台运 行并响应来自客户端的毗邻请求,客户端包罗ssh程序以及像scp(远程拷 贝)、slogin(远程上岸)、sftp(平安文件传输)等其他的应用程序.

设置SSH的缘故原由

Hadoop名称节点(NameNode)需要启动集群中所有机械的Hadoop守护历程,这个过 程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,因此,为 了能够顺遂登录每台机械,需要将所有机械设置为名称节点可以无密码登录它们。

设置SSH的无密码登录

安装openssh-server( 通常Linux系统会默认安装openssh的客户端软件openssh-client),以是需要自己安装一下服务端。

sudo apt-get install openssh-server

输入 cd .ssh目录下,若是没有.ssh文件 输入 ssh localhost天生。

cd ~/.ssh/

天生秘钥

ssh-keygen -t rsa

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

将Master中天生的密钥加入授权(authorized_keys)

cat id_rsa.pub                     # 查看天生的公钥

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

cat id_rsa.pub >> authorized_keys    # 加入授权
chmod 600 authorized_keys    # 修改文件权限,若是不修改文件权限,那么其它用户就能查看该授权

完成后,直接键入“ssh localhost”,能无密码登录即可,

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

键入“exit”退出,到此SSH无密码登录设置就乐成了。

安装Java环境

scp下令传输Mac的文件到ubuntu

由于先生给了我们的java的jdk安装包,想着不用去ubuntu重新下载,以是就想到了行使scp下令传输Mac的文件到ubuntu,行使这个下令条件是Ubuntu安装了SSH服务器,在之前我们已经有了这步操作。

行使ifconfig查看ubuntu服务器的局域网IP地址

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

以下是行使scp下令传输文件的基本花样:
1. 内陆文件传输到服务器

从内陆将文件传输到服务器 从内陆将文件夹传输到服务器
scp[内陆文件的路径] [服务器用户名]@[服务器地址]:[服务器上存放文件的路径] scp -r[内陆文件的路径] [服务器用户名]@[服务器地址]:[服务器上存放文件的路径]
scp /Users/mac/Desktop/test.txt root@192.168.1.1:/root scp -r /Users/mac/Desktop/test root@192.168.1.1:/root

2. 服务器文件传输到内陆

将服务器上的文件传输到内陆 将服务器上的文件夹传输到内陆
scp [服务器用户名]@[服务器地址]:[服务器上存放文件的路径] [内陆文件的路径] scp -r [服务器用户名]@[服务器地址]:[服务器上存放文件的路径] [内陆文件的路径]
scp root@192.168.1.1:/root/default/test.txt /Users/mac/Desktop scp -r root@192.168.1.1:/root/default/test /Users/mac/Desktop

mac客户端执行传输下令

在选择Linux服务器端的储存文件地址时,由于权限缘故原由,默认的是在/tmp有权限,可以先把文件放到tmp文件目录下,然后在举行mv 或者scp到其他目录,即可。

scp /Users/xjh/Desktop/jdk-8u221-linux-x64.tar.gz hadoop@172.16.186.128:/tmp

传输速率照样蛮快的,如下图:
Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

在Ubuntu将jdk移动到我们新建的java目录下(没建的新建一个就是),到此传输文件乐成,可以最先设置Java环境了。

sudo mv /tmp/jdk-8u221-linux-x64.tar.gz usr/java

在java目录中,使用sudo tar下令解压jdk文件;

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

解压乐成后,java目录中会有对应的目录文件存在

设置Java环境

使用下令“sudo gedit ~/.bashrc”打开设置文件,在末尾添加以下几行文字,注重自己的jdk版本号。

#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH

使用下令“source ~/.bashrc”使环境变量生效。

source ~/.bashrc

设置软毗邻,软毗邻相当于windows系统中的快捷键,部门软件可能会从/usr/bin目录下查找Java,因此添加该软毗邻防止其他软件查找不到的情形。

新闻行列周全领会(一)

sudo update-alternatives --install /usr/bin/java  java  /usr/java/jdk1.8.0_221/bin/java 300
sudo update-alternatives --install /usr/bin/javac  javac  /usr/java/jdk1.8.0_221/bin/javac 300

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

测试java是否安装乐成

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

Hadoop单机安装设置

将我们下载的Hadoop解压到 /usr/local/ 中

sudo tar zxvf tmp/hadoop-3.2.1.tar.gz -C /usr/local

行使cd /usr/local/ 下令切换操作空间,将文件夹名改为hadoop

sudo mv ./hadoop-3.2.1/ ./hadoop

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

修改文件权限

sudo chown -R hadoop:hadoop ./hadoop

Hadoop 解压后,在Hadoop目录下的etc/hadoop/hadoop-env.sh文件中添加如下的 Java环境信息。

export JAVA_HOME=/usr/java/jdk1.8.0_221

然后,保留hadoop-env.sh文件,即完成单机模式的Hadoop基本安装。测试Hadoop是否安装乐成,如泛起如下图所示的版本信息,即可。

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

默认情形下,单机模式的Hadoop以Java历程的方式运行,可依次运行如下下令举行进一步测试。

sudo mkdir input
sudo cp etc/hadoop/*.xml input

执行下列下令,运行MapReduce程序,完成测试盘算。

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

执行下列下令,查看盘算效果。

cat output/*

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

Hadoop目录下,会有input和output两个新建的文件,output中有上述程序 的运算效果,到此Hadoop单机安装设置乐成。

Hadoop伪分布式安装设置

  • Hadoop可以在单节点上以伪分布式的方式运行,Hadoop历程以分 离的 Java 历程来运行,节点既作为 NameNode 也作为 DataNode, 同时,读取的是 HDFS 中的文件
  • Hadoop的设置文件位于/usr/local/hadoop/etc/hadoop/中,伪分布式 需要修改2个设置文件 core-site.xml 和 hdfs-site.xml
  • Hadoop的设置文件是xml花样,每个设置以声明property的name 和 value 的方式来实现
    hadoop目录熟悉

hadoop下的目录

修改设置文件之前,先看一下hadoop下的目录:

  • bin:hadoop最基本的治理剧本和使用剧本所在目录,这些剧本是sbin目录下治理剧本的基础实现,用户可以直接使用这些剧本治理和使用hadoop
  • etc:设置文件存放的目录,包罗core-site.xml,hdfs-site.xml,mapred-site.xml等从hadoop1.x继续而来的设置文件和yarn-site.xml等hadoop2.x新增的设置文件
  • include:对外提供的编程库头文件(详细动态库和静态库在lib目录中,这些头文件军事用c++界说的,通常用于c++程序接见hdfs或者编写mapreduce程序)
  • Lib:该目录包罗了hadoop对外提供的才酿成动态库和静态库,与include目录中的头文件连系使用
  • libexec:各个服务对应的shell设置文件所在目录,可用于设置日志输出目录、启动参数等信息
  • sbin:hadoop治理剧本所在目录,主要包罗hdfs和yarn中种种服务的启动、关闭剧本
  • share:hadoop各个模块编译后的jar包所在目录。

修改设置文件 core-site.xml

 <configuration> 
   <property>
        <name>hadoop.tmp.dir</name> 
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
   </property> 
   <property>
     <name>fs.defaultFS</name>
     <value>hdfs://localhost:9000</value> 
    </property>
</configuration>
  • hadoop.tmp.dir示意存放暂且数据的目录,即包罗NameNode的数据,也包 括DataNode的数据。该路径随便指定,只要现实存在该文件夹即可
  • name为fs.defaultFS的值,示意hdfs路径的逻辑名称

修改设置文件 hdfs-site.xml

<configuration> 
   <property>
       <name>dfs.replication</name>
       <value>1</value> 
   </property> 
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/usr/local/hadoop/tmp/dfs/name</value> 
    </property>
   <property>
       <name>dfs.datanode.data.dir</name>         
       <value>file:/usr/local/hadoop/tmp/dfs/data</value>
   </property>
</configuration>
  • dfs.replication示意副本的数目,伪分布式要设置为1
  • dfs.namenode.name.dir示意内陆磁盘目录,是存储fsimage文件的地方
  • dfs.datanode.data.dir示意内陆磁盘目录,HDFS数据存放block的地方
文件名称 花样 形貌
hadoop-env.sh Bash剧本 纪录设置Hadoop运行所需的环境变量,以运行 Hadoop
core-site.xml Hadoop设置XML Hadoop core的设置项,例如HDFS和MapReduce 常用的I/O设置等
hdfs-site.xml Hadoop设置XML Hadoop的守护历程的设置项,包罗NameNode、 SecondaryNameNode和DataNode等
mapred-site.xml Hadoop设置XML MapReduce守护历程的设置项,包罗JobTracker 和TaskTracker
masters 纯文本 运行SecondaryNameNode的机械列表(每行一 个)
slaves 纯文本
hadoop- metrics.properties Java属性 控制metrics在Hadoop上若何公布的属性

至此,设置完毕,然则还不能启动,要对hdfs先举行花样化。类似以前的软盘,使用前要先花样化,执行下令:

sudo ./bin/hdfs namenode -format

看到日志信息:即花样化乐成。

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

在我们name目录(这个目录是我们自己设置的时刻指定的)下也会泛起映像文件(fsimage),用于将数据持久化 。

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

启动Hadoop

输入以下下令启动Hadoop:

sbin/start-dfs.sh

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

安装jps

sudo apt install openjdk-11-jdk-headless

安装好之后jps检查角色若是有多个角色,就启动乐成。

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

浏览器接见localhost:9870

Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

本次给人人分享的内容就到这里啦,以为还不错的点个赞支持一下小编,你的一定就是小编前进的动力。另外若是想领会更多盘算机专业的知识和技巧的,献上我的小我私家博客北徯,另外需要种种资料的童鞋,可以关注我的微信民众号北徯,免费的PPT模板,种种资料等你来领。
Hadoop学习条记(1)-Hadoop在Ubuntu的安装和使用

原创文章,作者:admin,如若转载,请注明出处:https://www.2lxm.com/archives/5431.html