Ubuntu 18.04 安装 Hadoop系统环境

Wesley13
• 阅读 633

安装ubuntu-server系统

安装系统

选择系统语言-English

Ubuntu 18.04 安装 Hadoop系统环境

1.png

键盘设置-Chinese

Ubuntu 18.04 安装 Hadoop系统环境

2.png

选择操作Install ubuntu

3.png

设置网络(这里选择默认)

4.png

选择Done

5.png

6.png

文件系统设置-选择使用整个磁盘

7.png

选择磁盘

8.png

选择Done

9.png

选择继续Continue

10.png

配置文件设置

11.png

12.png

正在安装

13.png

Reboot Now

14.png

15.png

16.png

安装ssh环境

配置root用户密码

修改root用户的初始密码

sudo passwd

17.png

退出当前用户,使用root登陆系统。

关闭防火墙

关闭防火墙

systemctl stop firewalld.service

开机不启动防火墙

systemctl disable firewalld.service

查看防火墙状态

ufw status

inactive状态是防火墙关闭状态,active是开启状态。

配置root用户远程连接

(注:装了ssh-server,如果未安装,请先安装)

apt-get install openssh-server

修改sshd_config

vim /etc/ssh/sshd_config

找到

# Authentication:
LoginGraceTime 120
PermitRootLogin without passwd
StrictModes yes

改成

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

然后重启SSH服务即可。

重启过后通过shell连接:

18.png

设置ssh localhost 免密码登录

ssh localhost
exit

输入密码登录本机和退出本机

19.png

在进行了初次登陆后,会在当前家目录用户下有一个.ssh文件夹,进入该文件夹下:

cd ~/.ssh/

使用rsa算法生成秘钥和公钥对:

ssh-keygen -t rsa

20.png

运行后一路回车就可以了,其中第一个是要输入秘钥和公钥对的保存位置,默认是在:

.ssh/id_rsa

然后把公钥加入到授权中:

cat ./id_rsa.pub >> ./authorized_keys

再次ssh localhost的时候就可以无密码登陆了。

安装jdk

解压jdk

创建一个java的文件夹,用户存放Java文件

mkdir /usr/local/java

通过ftp工具把下载好的jdk安装包上传到java文件夹下。

21.png

解压:

cd /usr/local/java
tar -vxzf jdk-8u181-linux-x64.tar.gz

解压成功后会在当前目录下看到:

jdk1.8.0_181文件夹

然后删除安装包:

rm jdk-8u181-linux-x64.tar.gz

配置jdk

设置环境变量:

vim /etc/profile

在末尾添加:

JAVA_HOME=/usr/local/java/jdk1.8.0_181
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

重新加载环境变量的配置文件:

source /etc/profile

检测:

java -version

22.png

安装Hadoop

解压hadoop

创建一个hadoop的文件夹,用户存放hadoop文件

mkdir /usr/local/hadoop

通过ftp工具把下载好的hadoop安装包上传到hadoop文件夹下。

解压:

cd /usr/local/hadoop
tar -vxzf hadoop-2.7.7.tar.gz

解压完成:

23.png

移动hadoop-2.7.7文件下的文件到当前的目录

mv ./hadoop-2.7.7/* ./

删除hadoop-2.7.7文件夹

rm -rf ./hadoop-2.7.7

查看文件夹的所有者以及用户组,最重要的是拥有者是否是当前用户

24.png

如果拥有者不是当前用户,则修改为当前用户:

sudo chown -R 当前用户名 ./hadoop

配置hadoop

设置环境变量:

vim /etc/profile

在末尾添加:

JAVA_HOME=/usr/local/java/jdk1.8.0_181
HADOOP_HOME=/usr/local/hadoop
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export PATH
export HADOOP_HOME

重新加载环境变量的配置文件:

source /etc/profile

检测:

hadoop version

25.png

修改配置文件

在core-site.xml 中添加

<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://0.0.0.0:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
 </property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
</property>

26.png

在 hdfs-site.xml 中添加

<property>
    <name>dfs.data.dir</name>
    <value>/usr/local/hadoop/hdfs/data</value>
    <description>datanode上数据块的物理存储位置</description>
</property>

<!-- 设置hdfs副本数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

27.png

在 hadoop-env.sh 中更改 JAVA_HOME

注释掉:

export JAVA_HOME=${JAVA_HOME}

添加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_181

测试,启动

格式化namenode:

hadoop namenode -format

28.png

启动hdfs

start-all.sh

29.png

查看相应的进程:

jps

30.png

确定5个进程全部启动。

访问测试:

10.168.1.129:50070

31.png

设置开机启动

进入/etc/init.d/目录下

cd /etc/init.d/

创建文件hadoop

vim hadoop

写入开机启动相关的脚本内容

#!/bin/bash
#
# chkconfig: 2345 88 33
# description: Starts and stops Hadoop server

### BEGIN INIT INFO
# Required-Start:
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Starts and stops Hadoop server
# Description:          Starts and stops Hadoop server
### END INIT INFO

start(){
    #
    # Start Hadoop
    #
    /usr/local/hadoop/sbin/start-all.sh
}
stop(){
    #
    # Stop Hadoop
    #
    /usr/local/hadoop/sbin/stop-all.sh
}

case "$1" in
    start)
        start
        exit $?
    ;;

    stop)
        stop
        exit $?
    ;;

    restart)
        #
        # Restart Hadoop
        #
        stop
        sleep 5
        start
        exit $?
    ;;

*)
echo "Usage hadoop start/stop/restart"
exit 1;;
esac

设置文件权限

chmod +x hadoop

添加到服务中

update-rc.d -f hadoop defaults

测试

service hadoop start

查看服务是否启动成功

jps

7.png

本文同步分享在 博客“吟风者”(JianShu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这