一.实验目的

1. 掌握Linux虚拟机的安装方法。

2. 掌握Hadoop的伪分布式安装方法。

二.实验内容

(一)Linux基本操作命令

Linux常用基本命令包括:

ls,cd,mkdir,rm,man,cat,ssh,yum,vim,vi等。

(二)安装JDK

Hadoop是Java实现的,运行在Java虚拟机上,安装JDK并设置JAVA环境变量。

(三)配置各节点间无密码验证

Hadoop集群的启动需要通过SSH启动各从节点,需要配置各节点之间SSH无密码验证。

(四)配置和启动Hadoop分布式集群

Hadoop有三种配置:单击模式、伪分布式模式(单台节点模拟分布式)和分布式模式,本实验是配置伪分布式模式的Hadoop。

三.实验环境

VMWare15 Pro、Ubuntu16.04、Hadoop3.2.1。

四.实验步骤和完成情况

1. VMware 15安装Ubuntu 16.04并配置环境

https://www.cnblogs.com/caoer/p/12669183.html

2. 创建hadoop用户

1)创建hadoop用户,并使用/bin/bash作为shell: sudo useradd -m hadoop -s /bin/bash

2) 为hadoop用户设置密码,之后需要连续输入两次密码: sudo passwd hadoop

3) 为hadoop用户增加管理员权限:sudo adduser hadoop sudo

4) 切换当前用户为用户hadoop: su – hadoop

5) 更新hadoop用户的apt: sudo apt-get update

3. JDK安装和Java环境变量配置

(1)安装 JDK 1.7

hadoop用户登陆,下载JDK安装包, 个人电脑系统选择对应版本,我选的是jzxvf jdk-7u80-linux-x64.tar.gz,输入命令:

$ mkdir /usr/lib/jvm                           #创建jvm文件夹

$ sudo tar zxvf jdk-7u80-linux-x64.tar.gz  -C /usr/lib/jvm #/ 解压到/usr/lib/jvm目录下

$ cd /usr/lib/jvm                                 #进入该目录

$ mv  jdk1.7.0_80 java                         #重命名为java

$ vi ~/.bashrc                                 #给JDK配置环境变量

其中如果权限不够,无法在相关目录下创建jvm文件夹,那么可以使用 $ sudo -i  语句进入root账户来创建文件夹。

(2)Java环境变量配置

root用户登陆,命令行中执行命令”vi /etc/profile”,按I并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。

export JAVA_HOME=/usr/lib/jvm/java

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存并退出,执行以下命令使配置生效

$ source  ~/.bashrc

$ java -version                          #检测是否安装成功,查看java版本

4. 配置所有节点之间SSH无密码验证

以节点A和B两个节点为例,节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复制到B上。

因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。

(1)安装ssh: sudo apt-get install openssh-server

登录ssh:ssh localhost

退出登录的ssh localhost:exit

(2)进入ssh目录:cd ~/.ssh/

(a)节点用hadoop用户登陆,并执行以下命令,生成rsa密钥对:

ssh-keygen -t rsa (回车后敲击三次回车)

这将在/home/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。

(c)加入授权:cat ./id_rsa.pub >> ./authorized_keys

这样配置过后SSH无密码登陆,可以通过命令“ssh localhost”来验证。

5. Hadoop集群配置

使用hadoop用户登陆,下载hadoop-3.2.1.tar.gz,将其解压到/usr/local/hadoop目录下: sudo tar -zxvf  hadoop-2.6.0.tar.gz -C /usr/local,进入目录:cd /usr/local,重命名为hadoop: sudo mv  hadoop-3.2.1    hadoop,修改文件权限:sudo chown -R hadoop ./hadoop。

给hadoop配置环境变量:

(1)打开bashrc文件:vi ~/.bashrc

(2)加入以下代码:

export HADOOP_HOME=/usr/local/hadoop

export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

(3)保存更改并生效:source ~/.bashrc。

$hadoop version 查看hadoop是否安装成功。

6. Hadoop集群启动

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

a)  首先将jdk1.8的路径添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh文件。

$ cd /usr/local/hadoop/etc/hadoop/

$ vim hadoop-env.sh

b)  修改core-site.xml:vim 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>

c)  修改配置文件 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>

d)     配置完成后,执行 NameNode 的格式化

$ cd /usr/local/hadoop/

$ ./bin/hdfs namenode -format

e)  启动namenode和datanode进程,并查看启动结果

$ ./sbin/start-dfs.sh

$ jps

f)  成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

至此Hadoop安装就结束啦,以上为个人大数据学习成长历程~

云计算课程实验之安装Hadoop及配置伪分布式模式的Hadoop的更多相关文章

  1. 使用docker搭建hadoop环境,并配置伪分布式模式

    docker 1.下载docker镜像 docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop:latest 注:此镜像为阿里云个人上传镜 ...

  2. 06_Hadoop配置伪分布式模式详解

    查看IP地址,设为手动模式: 配置hadoop用户sudo权限 su切换到root身份,配置vim /etc/sudoers文件,加入 hadoop ALL=(root)NOPASSWD:ALL    ...

  3. cdh版本的hadoop安装及配置(伪分布式模式) MapReduce配置 yarn配置

    安装hadoop需要jdk依赖,我这里是用jdk8 jdk版本:jdk1.8.0_151 hadoop版本:hadoop-2.5.0-cdh5.3.6 hadoop下载地址:链接:https://pa ...

  4. 【Hadoop】配置全分布式模式

    分布式原理 配置 详细过程 假设有三台虚拟机,1台master主机namenode,2台slave奴隶机datanode 所有机器都要配好jdk.Java环境变量.hadoop_env.sh里java ...

  5. hadoop 2.4 伪分布式模式

    1.core-site.xml 在<configuration></configuration>中插入 <property> <name>fs.defa ...

  6. Hadoop Single Node Setup(hadoop本地模式和伪分布式模式安装-官方文档翻译 2.7.3)

    Purpose(目标) This document describes how to set up and configure a single-node Hadoop installation so ...

  7. 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...

  8. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    摘自: http://www.cnblogs.com/kinglau/p/3796164.html http://www.powerxing.com/install-hadoop/ 当开始着手实践 H ...

  9. Hadoop安装教程_单机/伪分布式配置

    环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统(可参考使用VirtualBox安装CentOS).如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoo ...

随机推荐

  1. js函数prototype属性学习(二)

    继续探讨js对象的prototype属性,前面已经看到在创建完一个对象之后,随时都会有一个_proto_属性伴随所有,那么,这个_proto_又是用来干嘛的,面试时问的高大上的原型链又是怎么回事? 拿 ...

  2. 重学 Java 设计模式:实战适配器模式

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术 ...

  3. CSS3新增伪类有那些?

    p:first-of-type 选择属于其父元素的首个元素 p:last-of-type 选择属于其父元素的最后元素 p:only-of-type 选择属于其父元素唯一的元素 p:only-child ...

  4. Java实现 LeetCode 799 香槟塔 (暴力模拟)

    799. 香槟塔 我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟. 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了 ...

  5. Java实现 洛谷 采药

    题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...

  6. Java实现 蓝桥杯 算法训练 大小写转换

    算法训练 大小写转换 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小 ...

  7. Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素 - 允许重复

    381. O(1) 时间插入.删除和获取随机元素 - 允许重复 设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构. 注意: 允许出现重复元素. insert(val):向集合中插 ...

  8. mybatis技术总结

    一.框架概述 day1 1.什么是框架 框架是系统的可重用设计,是对J2EE底层技术的封装(JDBC,IO流,多线程,Servlet,Socket). 2.框架解决了哪些问题? 1.解决了技术整合问题 ...

  9. vue + elementUI开发,使用el-tabs,导致浏览器卡死问题。

    第一次自己建项目,用过el-tabs,当时是正常使用的. 贴下版本信息: "element-ui": "^2.13.0", "js-md5" ...

  10. 2.vue-常用指令

    1.v-html:刷新的时候是整个DOM元素都会跟着一起进行刷新 v-text:直接刷新DOM种的text文本内容2.如果想在vue绑定html中的属性使用的是v-bind进行绑定的 v-bind:h ...