Hadoop学习之路(1)腾讯云搭建Hadoop3集群

1主机名和IP配置

1.1主机名

1.首先使用root用户名和root密码分别登录三台服务器
2.分别在三台虚拟机上执行命令:
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
3.分别在三台服务器上执行logout

1.2 IP设置

systemctl restart network

2配置免密登录

2.1 生成公钥和私钥

使用此命令:ssh-keygen -t rsa 分别在三台机器中都执行一遍,这里只在node1上做演示,其他两台机器也需要执行此命令。

2.2 配置hosts文件

hosts文件中配置三台机器ip和主机名的映射关系,其他两台机器按照相同的方式操作:vi /etc/hosts
特别注意的是如果在云服务器中配置,本节点的IP地址一定要配置内网地址

127.17.0.17是服务器node1的内网地址

127.17.0.7是服务器node2的内网地址

127.17.0.8是服务器node3的内网地址

2.3 拷贝公钥文件

(1)将node1的公钥拷贝到node2,node3上
(2)将node2的公钥拷贝到node1,node3上
(3)将node3的公钥拷贝到node1,node2上

以下以node1为例执行秘钥复制命令:ssh-copy-id -i 主机名

2.4验证免密登录配置

确保每一个服务器到其他服务器都可以免密登录
ssh node#
2.5添加本地认证公钥到认证文件中
cd ~
cd .ssh/
cat id_rsa.pub >> authorized_keys

3安装Hadoop

3.1创建hadoop用户组和hadoop用户

groupadd hadoop
useradd -g hadoop hadoop
id hadoop
设置密码:passwd hadoop
chown -R hadoop:hadoop /home/hadoop/
chmod -R 755 /home/hadoop/
#把root用户的环境变量文件复制并覆盖hadoop用户下的.bash_profile
cp .bash_profile /home/hadoop/


3.2Hadoop用户进行免密登录

*su - hadoop
source.bash_profile
ssh-keygen -t rsa
cd ~
chmod -R 755 .ssh/
chmod 644

chmod 600 id_rsa
chmod 600 id_rsa.pub
将node1的hadoop用户公钥拷贝到node2,node3上
将node2的hadoop用户公钥拷贝到node1,node3上
将node3的hadoop用户公钥拷贝到node1,node2上
ssh-copy-id -i 主机名
验证免密登录配置:ssh 主机名,确保每台每台服务器的hadoop用户都可以免密登录其他的服务器。
添加本地认证公钥到认证文件中,对每台服务器进行如下操作:
cat id_rsa.pub >> authorized_keys**

3.3配置Hadoop

(1)创建hadoop安装目录: mkdir -p /opt/bigdata
(2)解压hadoop-3.1.2.tar.gz
tar -xzvf hadoop-3.1.2.tar.gz -C /opt/bigdata/
(3)配置Hadoop环境变量
vi .bash_profile

配置详细信息:

JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
HADOOP_HOME=/opt/bigdata/hadoop-3.1.2
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export HADOOP_HOME
export PATH



(4)验证Hadoop环境变量
source .bash_profile
hadoop version

显示出hadoop版本信息表示安装和环境变量成功.

hadoop用户下也需要按照root用户配置环境变量的方式操作一下
(5)配置hadoop-env.sh
这个文件只需要配置JAVA_HOME的值即可,在文件中找到export JAVA_HOME字眼的位置,删除最前面的#
cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/
vi hadoop-env.sh
详细配置:
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
(6)配置core-site.xml
cd /opt/bigdata/hadoop-3.1.2/etc/hadoop/
vi core-site.xml

<configuration>
<!-- 指定hdfs的namenode主机的hostname -->
    <property>
        <name>fs.defaultFS</name>
      <value>hdfs://node1:9000</value>
    </property>
<!-- io操作流的配置 -->
<property>
        <name>io.file.buffer.size</name>
      <value>131072</value>
 </property>
<!--hadoop集群临时数据存储目录-->
     <property>
        <name>hadoop.tmp.dir</name>
      <value>/opt/bigdata/hadoop-3.1.2/tmpdata</value>
 </property>
</configuration>

(7)配置hdfs-site.xml
vi hdfs-site.xml

<configuration>
  <!--namenode元数据存储目录-->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/bigdata/hadoop-3.1.2/hadoop/hdfs/name/</value>
  </property>
  <!--指定block块的的大小-->
  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
  <!-- -->
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
  <!--工作节点的数据块存储目录 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/bigdata/hadoop-3.1.2/hadoop/hdfs/data/</value>
  </property>
  <!--block的副本数-->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

(8)配置mapred-site.xml
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的mapred-site.xml
vi mapred-site.xml

<!--指定运行mapreduce的环境是yarn -->
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  <property>
    <name>mapreduce.application.classpath</name>
    <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,
    $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
  </property>
</configuration>

(9)配置yarn-site.xml
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的yarn-site.xml
vi yarn-site.xml

<configuration>
<!--指定resourcemanager的位置-->
   <property>
     <name>yarn.resourcemanager.hostname</name>
     <value>node1</value>
   </property>
   <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
   </property>
   <property>
     <name>yarn.resourcemanager.address</name>
     <value>node1:18040</value>
   </property>
   <property>
     <name>yarn.resourcemanager.scheduler.address</name>
     <value>node1:18030</value>
   </property>
   <property>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <value>node1:18025</value>
   </property>
   <property>
     <name>yarn.resourcemanager.admin.address</name>
     <value>node1:18141</value>
   </property>
   <property>
     <name>yarn.resourcemanager.webapp.address</name>
     <value>node1:18088</value>
   </property>
</configuration>

(10)编辑works
配置/opt/bigdata/hadoop-3.1.2/etc/hadoop/目录下的works
vi works

(11)远程复制hadoop到集群机器
进入到root用户家目录下:cd ~
使用scp远程拷贝命令将root用户的环境变量配置文件复制到node2
scp .bash_profile [email protected]:~
使用scp远程拷贝命令将root用户的环境变量配置文件复制到node3
scp .bash_profile [email protected]:~
进入进入到hadoop的share目录下
cd /opt/bigdata/hadoop-3.1.2/share/
删除doc目录,这个目录存放的是用户手册,比较大,等会儿下面进行远程复制的时候时间比较长,删除后节约复制时间
rm -rf doc/
scp -r /opt [email protected]:/
scp -r /opt [email protected]:/

3.3.1使集群所有机器环境变量生效

在node2,node3的root用户家目录下使环境变量生效
node2节点如下操作:
cd ~
source .bash_profile
hadoop version

node3节点同样操作

3.3.2修改hadoop用户hadoop安装目录的权限

node2,node3也需要进行如下操作
node1登陆root用户
su root
chown -R hadoop:hadoop /opt/
chmod -R 755 /opt/
chmod -R g+w /opt/
chmod -R o+w /opt/

3.4格式化hadoop

su - hadoop
hdfs namenode -format

3.5启动集群

start-all.sh

在浏览器地址栏中输入:http://192.168.200.11:9870查看namenode的web界面

3.6运行mapreduce程序

hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -ls /
touch words
vi words
hdfs dfs -put words /test
hdfs dfs -ls -r /test

**执行:hadoop jar /opt/bigdata/hadoop-3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-
3.1.2.jar wordcount /test/words /test/output

**
执行:hdfs dfs -text /test/output/part-r-00000

本文使用的是hadoop3.1.3
链接:https://pan.baidu.com/s/1n32rpv-GAjvt7hFZkOnWhw
提取码:2jzu

原文地址:https://blog.51cto.com/10312890/2460431

时间: 2024-10-08 03:05:47

Hadoop学习之路(1)腾讯云搭建Hadoop3集群的相关文章

Spark学习之路 (二)Spark2.3 HA集群的分布式安装

一.下载Spark安装包 1.从官网下载 http://spark.apache.org/downloads.html 2.从微软的镜像站下载 http://mirrors.hust.edu.cn/apache/ 3.从清华的镜像站下载 https://mirrors.tuna.tsinghua.edu.cn/apache/ 二.安装基础 1.Java8安装成功 2.zookeeper安装成功 3.hadoop2.7.5 HA安装成功 4.Scala安装成功(不安装进程也可以启动) 三.Spar

Spark学习之路 (二)Spark2.3 HA集群的分布式安装[转]

下载Spark安装包 从官网下载 http://spark.apache.org/downloads.html 从微软的镜像站下载 http://mirrors.hust.edu.cn/apache/ 从清华的镜像站下载 https://mirrors.tuna.tsinghua.edu.cn/apache/ 安装基础 Java8安装成功 zookeeper安装成功 hadoop2.7.5 HA安装成功 Scala安装成功(不安装进程也可以启动) Spark安装过程 上传并解压缩 [[email

阿里封神谈hadoop学习之路

阿里封神谈hadoop学习之路 封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 spark 摘要: 在大数据时代,要想个性化实现业务的需求,还是得操纵各类的大数据软件,如:hadoop.hive.spark等.笔者(阿里封神)混迹Hadoop圈子多年,经历了云梯1.ODPS等项目,目前base在E-Mapreduce.在这,笔者尽可能梳理下hadoop的学习之路. 引言 当前,越来越多的同学进

Hadoop学习之路(五)Hadoop集群搭建模式和各模式问题

分布式集群的通用问题 当前的HDFS和YARN都是一主多从的分布式架构,主从节点---管理者和工作者 问题:如果主节点或是管理者宕机了.会出现什么问题? 群龙无首,整个集群不可用.所以在一主多从的架构中都会有一个通用的问题: 当集群中的主节点宕机之后,整个集群不可用.这个现象叫做:单点故障.SPOF 单点故障讲述的概念有两点 1.如果说宕机的那个节点是从节点,那么整个集群能够继续运行,并且对外提供正常的服务. 2.如果说宕机的那个节点是主节点,那么整个集群就处于宕机状态. 通用的解决方案:高可用

osgi实战学习之路:2. maven+maven-bundle-plugin+karaf搭建osgi之HelloWorld

环境准备: jdk版本 jdk:1.7 karaf: 版本:apache-karaf-3.0.1 下载地址: http://pan.baidu.com/s/1qWM4Y1u http://karaf.apache.org/ 配置本地仓库: 参考:http://blog.csdn.net/wobendiankun/article/details/25333113 启动karaf: karaf_home/bin/karaf.bat 启动成功如下: 安装 mvn-hello-provider 到本地仓

腾讯云搭建hexo博客

腾讯云搭建hexo博客 hexo腾讯云 1. 腾讯云 学生认证购买 重置密码和网络备案 2. hexo博客搭建 2.1 Node.js环境准备 2.2安装git 2.3安装hexo 切换淘宝源 安装hexo 新建一个博客文件夹并初始化 启动 2.4 nginx部署 2.4域名DNS配置 3. 本地搭建hexo,git推送到腾讯云自动部署 4. 小结 1. 腾讯云 学生认证购买 在阿里云和华为云购买失败的前提下,最终找到了腾讯云的购买,学生认证后价格只要10块一月,域名16一年,价格真香,我选择

【大话存储II】学习笔记(15章),文件级集群系统

[大话存储II]学习笔记(15章),块级集群存储系统里面分析的主要是块集群系统,同样文件级存储也可以集群化. 因为NAS系统的前端网络是以太网,速度比较低,导致NAS主要用于一些非关键业务中,比如文件共享.但是一些特殊应用也需要多主机同时访问某个大文件,比如3D渲染集群等.如果我们使用块集群存储系统,则会存在一个问题,需要在应用程序上引入文件锁,而NAS的文件系统一般都自带有文件锁机制,所以还不如把NAS存储系统进行集群化. 在谈怎么样把NAS系统进行集群化之前,我们说说集群文件系统的架构.集群

分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi

阿里云ECS搭建Kubernetes集群踩坑记

阿里云ECS搭建Kubernetes集群踩坑记 [TOC] 1. 现有环境.资源 资源 数量 规格 EIP 1 5M带宽 ECS 3 2 vCPU 16 GB内存 100G硬盘 ECS 3 2 vCPU 16 GB内存 150G硬盘 SLB 2 私网slb.s1.small 2. 规划 坑: 上网问题,因为只有一个EIP,所有其它节点只能通过代理上网; 负载均衡问题,因为阿里不支持LVS,负载均衡TCP方式后端又不支持访问负载均衡,HTTP和HTTPS方式,只支持后端协议为HTTP; 为了避免上