今天是8月19日,距离开学还有15天,假期作业完成还是遥遥无期,看来开学之前的恶补是躲不过了

  今天总结一下在Linux环境下安装Hadoop的过程,首先是对Linux环境的配置,设置主机名称,网络设置、关闭防火墙、安装JDK、配置环境变量

  免密钥登录配置:大数据集群中的Linux计算机之间需要频繁分通信,免密钥登录是指两台Linux计算机之间不需要用户名和密码的SSH链接,默认状态下,SSH链接是需要密码认证的,但是可以通过修改系统认证,使系统通信免除密码输入和SSH认证

  首先终端生成密钥:

ssh-keygen -t rsa

再将公钥文件复制到.ssh目录下,复制后可以修改文件的权限

chmod  ~/.ssh/authorized_keys

将authorized_keys复制到其他节点

scp ~/.ssh/authorized_keys lqy0@linux0:~/

以上是关于主节点的配置,接下来是子节点的配置

还是执行生成密钥的命令,将主节点转移过来的authrized_keys移动到.ssh目录下,并修改它的权限

同样先生成密钥

ssh-keygen -t rsa

将从主节点复制过来的authorized_keys复制到.ssh目录下

mv authorized_keys ~/.ssh/

再修改authorized_keys的权限

chmod  authorized_keys

1      Hadoop环境搭建

1)     设置DNS,这里是一主两从

Master的hosts文件修改,需要添加所有节点的ip及域名,包括master和所有的slave

Sudo vi /etc/hosts 添加以下内容:

127.0.0.1            localhost

192.168.1.100   namenode-master

192.168.1.101   datanode-slave1

192.168.1.103   datanode-slave2

Slave的hosts文件修改,仅需要添加master和本机的ip和域名

Sudo vi /etc/hosts 添加以下内容:

127.0.0.1            localhost

192.168.1.100   namenode-master

192.168.1.101   datanode-slave1

或

192.168.1.103   datanode-slave2

2)     修改hostname

vi /etc/hostname

分别把各个机器的hostname设置为hosts文件中设置的dns

namenode-master

datanode-slave1

datanode-slave2

3)     所有机器添加grid用户,并设置sudo权限

useradd -m grid  #添加用户

passwd grid  #为gird用户设置密码,这里设置为grid

root权限下,vi /etc/sudoers,添加以下内容:

grid ALL=(ALL)  NOPASSWD:ALL

4)     安装SSH

Hadoop运行过程中需要管理远端的Hadoop守护进程,所有的机器都安装ssh

Sudo apt-get install ssh

5)     所有机器都在grid的家目录下创建.ssh文件夹

mkdir ~/.ssh  或者  mkdir /home/grid/.ssh

6)     SSH配置

在master的家目录下运行,ssh-keygen -t rsa,一直按回车键,将会按照默认的选项生成秘钥对,保存在.ssh/id_rsa文件中

接着执行以下命令:

cp id_rsa.pub authorized_keys

scp authorized_keys datanode-slave1:/home/grid/.ssh

scp authorized_keys datanode-slave2:/home/grid/.ssh

然后设置所有节点authorized_keys文件的权限为644

Sudo chmod 644 authorized_keys

7)     安装JDK

在master上操作,把SDK安装包分别远程拷贝到所有从节点中

scp jdk-7u25-linux-x64.tar.gz datanode-slave1:/home/grid/下载/jdk-7u25-linux-x64.tar.gz

scp jdk-7u25-linux-x64.tar.gz datanode-slave2:/home/grid/下载/jdk-7u25-linux-x64.tar.gz

将jdk-7u25-linux-x64.tar.gz解压到/usr/local/java/中

tar -zxvf jdk-7u25-linux-x64.tar.gz

sudo mv ./jdk1.7.0_25 /usr/local/java/jdk1.7.0_25

8)     配置jdk环境变量(所有节点都需要配置)

编辑/etc/profile

vi /etc/profile

最后面加上

export JAVA_HOME=/usr/local/java/jdk1..0_25 #jdk的解压目录

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

重启配置文件

source /etc/profile

9)     安装配置hadoop(所有节点都需配置)

解压tar -zxvf hadoop-2.6.0.tar.gz

剪切到/usr/local/下

配置环境变量 vi /etc/profile

添加export HADOOP_HOME=/usr/local/hadoop-2.6.0

重启配置文件生效 source /etc/profile

10)   配置hadoop(所有节点都配置)

创建以下目录:

sudo mkdir /usr/local/hadoopdata

sudo mkdir -p /usr/local/hadoopdata/dfs/name

sudo mkdir -p /usr/local/hadoopdata/dfs/data

改变这三个文件夹的owner

sudo chown –R grid:grid /usr/local/hadoopdata

11)   配置hadoop-env.sh

hadoop-2.6.0/etc/hadoop目录下

vi hadoop-env.sh修改jdk地址

export JAVA_HOME=/usr/local/java/jdk1.7.0_25

12)   配置core-site.xml

hadoop-2.6.0/etc/hadoop目录下

vi core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://namenode-master:9000</value>

</property>

<property>

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

<value>/usr/local/hadoopdata</value>

</property>

</configuration>

13)   配置hdfs-site.xml

hadoop-2.6.0/etc/hadoop目录下

vi hdfs-site.xml

添加如下代码

<configuration>

<property>

    <name>dfs.name.dir</name>

    <value>file:/usr/local/hadoopdata/dfs/name</value>

    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>

</property>

<property>

    <name>dfs.data.dir</name>

    <value>file:/usr/local/hadoopdata/dfs/data</value>

    <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>

</property>

<property>

    <name>dfs.replication</name>

    <value></value>

</property>

</configuration>

14)   配置mapred-site.xml

hadoop-2.6.0/etc/hadoop目录下

先复制

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<configuration>

<property>

<name>mapred.job.racker</name>

<value>namenode-master:</value>

</property>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobtracker.http.address</name>

<value>namenode-master:</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>namenode-master:</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<Value>namenode-master: </value>

</property>

</configuration>

15)   配置yarn-site.xml文件,增加yarn功能

hadoop-2.6.0/etc/hadoop目录下

vi yarn-site.xml

<Configuration>

      <property>

       <name>yarn.scheduler.maximum-allocation-mb</name>

       <value></value>

      </property>

           <property>

       <name>yarn.nodemanager.local-cache.max-files-per-directory</name>

       <value></value>

      </property>

          <property>

       <name>yarn.nodemanager.resource.memory-mb</name>

       <value></value>

      </property>

  <property>

       <name>yarn.resourcemanager.address</name>

       <value>namenode-master:</value>

      </property>

      <property>

       <name>yarn.resourcemanager.scheduler.address</name>

       <value>namenode-master:</value>

      </property>

      <property>

       <name>yarn.resourcemanager.resource-tracker.address</name>

       <value>namenode-master:</value>

      </property>

      <property>

       <name>yarn.resourcemanager.admin.address</name>

       <value>namenode-master:</value>

      </property>

      <property>

       <name>yarn.resourcemanager.webapp.address</name>

       <value>namenode-master:</value>

      </property>

</configuration>

16)   配置masters与slaves

配置masters

sudo vi masters

添加如下内容:

namenode-master

配置slaves

sudo vi slaves

添加如下内容:

datanode-slave1

datanode-slave2

17)   配置从节点hadoop

复制到从节点

scp -r hadoop-2.6.0 datanode-slave1:/home/grid/hadoop-2.6.0

scp -r hadoop-2.6.0 datanode-slave2:/home/grid/hadoop-2.6.0

将hadoop-2.6.0移动到/usr/local下

sudo mv ../hadoop-2.6.0 /usr/local/

18)   格式化NameNode

/usr/local/hadoop-2.6.0/目录下

./bin/hdfs namenode –format

19)   开启与关闭hdfs和yarn

/usr/local/hadoop-2.6.0/目录下

./sbin/start-dfs.sh  #开启hdfs

./sbin/stop-dfs.sh  #关闭hdfs

./sbin/start-yarn.sh  #开启yarn服务

./sbin/stop-yarn.sh  #关闭yarn服务

20)   用jps命令测试是否安装成功

2      Hive的安装

仅需配置主节点

1)     创建Hive数据目录

#创建数据仓库目录

sudo mkdir -p /usr/local/hive/warehouse

#创建数据临时目录

sudo mkdir mkdir -p /usr/local/hive/tmp

#创建IO临时目录

sudo mkdir mkdir -p /usr/local/hive/iotmp  

2)     配置环境变量

sudo vi /etc/profile,添加如下内容

export HIVE_HOME=/usr/local/apache-hive-2.0.0-bin

export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf

source /etc/profile

3)     配置hive-site.xml

#设置仓库目录

 <property>

    <name>hive.metastore.warehouse.dir</name>

    <value>/usr/hive/warehouse</value>

    <description>location of default database for the warehouse</description>

  </property>

#Hive的数据临时文件目录

<property>

    <name>hive.exec.scratchdir</name>

    <value>/usr/local/hive/tmp</value>

    <description>HDFS root scratch dir for Hive jobs which gets created with write all () permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>

  </property>

Linux集群搭建与Hadoop环境搭建的更多相关文章

  1. Hadoop框架:集群模式下分布式环境搭建

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...

  2. [原创]Postgres-XC集群笔记-概念与环境搭建

    文所描述的Postgres-XC版本:v1.2.1项目主页地址:http://sourceforge.net/projects/postgres-xc/ pdf文件下载: Postgres-XC集群搭 ...

  3. 使用Docker搭建Cloudera Hadoop 环境搭建

    单节点 单节点:https://hub.docker.com/r/cloudera/quickstart/ 相关命令 docker pull cloudera/quickstart:latest do ...

  4. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

  5. 【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题---WebApi环境搭建运行发布部署篇

    欢迎大家阅读<朝夕Net社区技术专刊>第1期 原文是我在知乎发表的,现在在这里分享! 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为首 ...

  6. 大数据系列(3)——Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  7. Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  8. 基于VMware的虚拟Linux集群搭建-lvs+keepalived

    基于VMware的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡.这方面的blog挺多,可是每一个 ...

  9. 自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?

    自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令: hadoop namenode -format 这个指令会重 ...

随机推荐

  1. 【转】VMWare vCenter 6.0安装配置

    版权声明: 专注于"GIS+"前沿技术的研究与交流,将云计算技术.大数据技术.容器技术.物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案:文章允许 ...

  2. BZOJ 3631: [JLOI2014]松鼠的新家 树上差分 + LCA

    Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在“树”上.松鼠想邀 ...

  3. 原生js通过最外层id获取下面指定的子元素

    需求:在vue中使用v-for循环出来的元素,设置动态id,之后获取下面的所有textarea标签 template: <table cellpadding = 2 v-for="(i ...

  4. 日记——OI历程

    学OI也一年多了(2015.12-),一直没学出个像样的东西.相比dalao们,我还是弱爆了. ljj,qyf,yyf三位三区dalao. xxy,myj两位三区学长dalao. 稍微总结一下前一段时 ...

  5. Linux挂载NAS共享文件夹

    [root@ftp:/mnt] > mount -o username=user01,password=1234567890 //192.168.31.20/share /mnt/nas [ro ...

  6. vue项目初始化结构

  7. vue采坑一:全局API

    Vue.set Vue.set( target, key, value ),target不能是 Vue 实例,或者 Vue 实例的根数据对象,因为源码中做了如下判断: var ob = (target ...

  8. java反射,简单demo

    直接上码 //获取方法.属性.构造函数时加 Declared 表示获取本类全部的,不分修饰符:不加 Declared 表示获取从父类继承的和本类公共的 //获取 First 类的无参构造函数 Cons ...

  9. [bzoj1861][Zjoi2006]Book 书架_非旋转Treap

    Book 书架 bzoj-1861 Zjoi-2006 题目大意:给你一个序列,支持:将指定编号的元素抽出,放到序列顶(底):将指定编号元素左右篡位:查询指定编号元素位置:查询指定数量位置元素编号. ...

  10. E - Just a Hook

    E - Just a Hook HDU 1698 思路:区间修改即可. #include<cstdio> #include<cstring> #include<iostr ...