自搭建Hadoop环境全记录 单机+伪分布 (ubuntu-16.04 64-bit , Hadoop2.8.2)

本文主要是介绍自搭建Hadoop环境全记录 单机+伪分布 (ubuntu-16.04 64-bit , Hadoop2.8.2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

搭建Hadoop环境,网上详细的教程很多,但还是缺少交代关键的步骤(因为机器环境、版本差异;有些环境变量作者的机器之前就设置好了,故新手往往会被卡住)。我也是同时对照看几份教程,还是遇到了很多问题,所以自己也整理了一下,适合新手参考。

Linux安装

硬件环境:Macbook Pro

CPU:Intel Core i7

RAM:16GB 2133 MHzLPDDR3

虚拟机:Parallels Desktop 12.2.0

Linux版本:ubuntu-16.04 64-bit

 

关于Linux需要提前知道的

●Shell(命令解析器)

●sudo命令(管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。需要密码)

●输入法切换:shift切换中英;Ubuntu自带中文输入法Sunpinyin

●复制ctrl+shift+c 粘贴ctrl+shift+v 

★Hadoop安装方式有:单机模式、伪分布式模式、分布式模式

Hadoop安装配置大致步骤:

1、创建Hadoop用户

2、SSH登录权限设置

3、安装Java环境

4、单机安装配置

5、伪分布式安装配置

Hadoop安装配置具体步骤:

一、创建hadoop用户(密码:hadoop)


其中:

sudo useradd –m hadoop –s /bin/bash(创建 hadoop 用户,并使用 /bin/bash 作为 shell)

sudo passwd hadoop(设置密码)

sudo adduser hadoop sudo(增加管理员权限)

创建后请将系统切换至hadoop用户。

二、SSH登录权限设置

●什么是SSH

SSH(Secure Shell),是建立在应用层和传输层基础上的安全协议。专为远程登录会话和其他网络服务提供安全性。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。由客户端和服务端的软件组成,服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文 件传输)等其他的应用程序。

●为什么要配置SSH

Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,为了能够顺利登录每台机器,远程管理Hadoop节点以及Hadoop节点间的安全共享访问,需要将所有机器配置为名称节点可以无密码登录它们。

●配置方式

配置方式是创建一个认证文件,然后用public key实现免密码的登录连接。 

*更新apt(后面会用apt安装一些软件)

sudo apt-get update

*安装vim编辑器,方便后面的配置文件修改。

sudo apt-get install vim

校验是否装有SSHClint 和 SSH server

rpm –qa | grep ssh

若未安装,需要安装

sudo apt-get install openssh-server

先用sshlocalhost测试,提示需要密码登陆


退出登陆


cd ~/.ssh/(先执行一次sshlocalhost就会生成该目录)

ssh-keygen -t rsa(之后要敲几次回车)

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

再用sshlocalhost测试,可以无密码登陆了。


三、安装Java环境

1、新建目录/usr/local/java


将jdk1.8文件夹拷至新目录下


(也可以将tar.gz拷过去再解压)

2、配置环境变量:

使用vim编辑器在 ~/.bashrc 中编辑环境变量

vim ~/.bashrc


export JAVA_HOME=/usr/local/java/jdk1.8


保存退出(按ESC,输入:wq)

执行  source ~/.bashrc

验证echo $JAVA_HOME


验证jdk版本 $JAVA_HOMG/bin/java –version 或 java-version


四、安装Hadoop2单机安装配置

1、将解压后的hadoop拷贝至/usr/local下

sudo cp -r ~/hadoop/hadoop /usr/local

2、修改文件权限

sudo chown -R hadoop ./hadoop

3、为Hadoop配置环境变量

export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

4、修改/etc/<hadoop>/<conf>/hadoop-env.sh,更改这里面JAVA_HOME的位置。用cat浏览或用sudo vim hadoop-env.sh命令直接编辑(编辑只读文件一定要加sudo打开)

在这里将默认的JAVA_HOME改为自己的实际地址。

修改后再测试hadoop version

如图,已可以成功查看hadoop版本号。


附:/.bashrc.sh中环境变量的最终版

export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_HOME=/usr/local/hadoop
export PATH=/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=/usr/local/hadoop/hadoop/etc/hadoop:/opt/hadoop/share/hadoop/common/*:/usr/local/hadoop/hadoop/share/hadoop/hdfs:/usr/local/hadoop/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/hadoop/share/hadoop/yarn/lib/*:/usr/local/hadoop/hadoop/share/hadoop/yarn/*:/opt/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/contrib/capacity-scheduler/*.jar

export CLASSPATH=$HADOOP_CLASSPATH

(很多教程这里export的时候使用了自引用(如export PATH=$PATH:…………)这样的后果貌似是如果多次执行这句话,就会在PATH中生成很多重复的路径,所以我最终去掉了这种引用,看的舒心用的放心..)

五、伪分布式安装配置

Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。在我的配置中位于/usr/local/hadoop/etc/hadoop/ 


● conf/hadoop-env.sh:Hadoop环境变量设置

●conf/core-site.xml:主要完成NameNode的IP和端口设置

●conf/hdfs-site.xml:主要完成HDFS的数据块副本等参数设置

● conf/mapred-site.xml:主要完成JobTracker IP和端口设置

● conf/masters:完成master节点IP设置

● conf/slaves:完成Slaves节点IP设置

伪分布式安装配置步骤:

1、修改配置文件 core-site.xml 

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>

<description>Abase forother temporary directories.</description>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>


2、修改配置文件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>


3、初始化HDFS文件系统

执行指令(Hadoop/bin下)Hadoop namenode –format


其中看到了Exitingwith status 0,表示初始化已经成功。

4、启动所有进程start-all.sh

使用jps查看所有的java进程


此时,可以再浏览器中输入http://localhost:50070 查看Hadoop信息


这篇关于自搭建Hadoop环境全记录 单机+伪分布 (ubuntu-16.04 64-bit , Hadoop2.8.2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1000028

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex