hadoop+hive-0.10.0完全分布式安装方法

hadoop+hive-0.10.0完全分布式安装方法

1、jdk版本:jdk-7u60-linux-x64.tar.gz

http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html

2hive版本:hive-0.10.0.tar.gz

https://archive.apache.org/dist/hive/hive-0.10.0/

3hadoop版本:hadoop-2.2.0.tar.gz

http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.2.0/

4Linux操作系统:ubuntu-14.04-server-amd64.iso

http://releases.ubuntu.com/14.04/

模拟3台安装,hosts文件中添加以下信息,功能分配如下:

192.168.1.150   hdp1   //namenode,SecondaryNamenode,ResourceManager

192.168.1.151   hdp2   //datanode,nodemanager

192.168.1.152   hdp3   //datanode,nodemanager

1、jdk安装

(1)将下载的jdk文件jdk-7u60-linux-x64.tar.gz解压到相应的文件夹下(可根据情况自己选择安装路径):

# tar zxf jdk-7u60-linux-x64.tar.gz

# mv  jdk1.7.0_60  /usr/local/jdk7

 

2)配置jdk 环境变量

     # vi ~/.bashrc   打开.bashrc文件,添加下面配置信息

export JAVA_HOME="/usr/local/jdk7"

export PATH="$PATH:$JAVA_HOME/bin"

 

(3)验证是否安装正确

# java -version 

java version "1.7.0_60"

Java(TM) SE Runtime Environment (build 1.7.0_60-b19)

Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

 

2、新建一个用户,如hadoop,并设置密码

# groupadd hadoop 

# useradd -c "Hadoop User" -d /home/hadoop -g hadoop -m -s /bin/bash hadoop

# passwd hadoop

  hadoop

3、配置ssh 

(1)切换到hdp1新建的hadoop用户下 :# su - hadoop

(2)$ ssh-keygen -t rsa

(3)$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

(4)$ ssh localhost 验证是否成功

(5)hdp2,hdp3采用同样的方法配置ssh,然后将各自的.ssh/id_rsa.pub追加到hdp1.ssh/authorized_keys中,实现hdp1hdp2hdp3的免密码登录,方便启动服务

登录到hdp2hadoop用户:scp .ssh/id_rsa.pub hadoop@hdp1:.ssh/hdp2_rsa

登录到hdp3hadoop用户:scp .ssh/id_rsa.pub hadoop@hdp1:.ssh/hdp3_rsa

在hdp1中:cat .ssh/hdp2_rsa >> .ssh/authorized_keys

               cat .ssh/hdp3_rsa >> .ssh/authorized_keys

注:以上的准备工作三台机器应完全一样,尤其注意安装的目录,修改相应的主机名等信息

 

接下来安装Hadoop部分

1、 解压文件,并配置环境变量

将下载的hadoop-2.2.0.tar.gz解压到/home/hadoop路径下:

   tar -zxvf hadoop-2.2.0.tar.gz /home/hadoop/

移动hadoop-2.2.0/usr/local目录下:

  sudo mv hadoop-2.2.0 /usr/local/

注意:每台机器的安装路径要相同!!

  # vi ~/.bashrc   打开.bashrc件,添加下面配置信息

export HADOOP_HOME=/usr/local/hadoop

export HADOOP_MAPRED_HOME=${HADOOP_HOME}

export HADOOP_COMMON_HOME=${HADOOP_HOME}

export HADOOP_HDFS_HOME=${HADOOP_HOME}

export YARN_HOME=${HADOOP_HOME}

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

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

 

2、 hadoop配置过程

配置之前,需要在hdp1本地文件系统创建以下文件夹:

~/hadoop/dfs/name

~/hadoop/dfs/data

~/hadoop/temp

这里要涉及到的配置文件有7个:

~/hadoop/etc/hadoop/hadoop-env.sh

~/hadoop/etc/hadoop/yarn-env.sh

~/hadoop/etc/hadoop/slaves

~/hadoop/etc/hadoop/core-site.xml

~/hadoop/etc/hadoop/hdfs-site.xml

~/hadoop/etc/hadoop/mapred-site.xml

~/hadoop/etc/hadoop/yarn-site.xml

以上个别文件默认不存在的,可以复制相应的template文件获得。

配置文件1hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk7)

配置文件2yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk7)

配置文件3slaves (这个文件里面保存所有slave节点)

写入以下内容:

hdp2 

hdp3

配置文件4core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp1:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

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

<value>file:/home/hadoop/hadoop/temp</value>

<description>Abase for other temporary directories.</description>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.groups</name>

<value>*</value>

</property>

</configuration>

配置文件5hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hdp1:9001</value>

</property>

<property>

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

<value>file:/home/hadoop/hadoop/dfs/name</value>

</property>

<property>

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

<value>file:/home/hadoop/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

配置文件6mapred-site.xml

<configuration>

<property>

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

<value>yarn</value>

</property>

<property>

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

<value>hdp1:10020</value>

</property>

<property>

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

<value>hdp1:19888</value>

</property>

</configuration>

配置文件7yarn-site.xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

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

<value>hdp1:8032</value>

</property>

<property>

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

<value> hdp1:8030</value>

</property>

<property>

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

<value> hdp1:8031</value>

</property>

<property>

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

<value> hdp1:8033</value>

</property>

<property>

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

<value> hdp1:8088</value>

</property>

<property>

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

<value>8092</value>

</property>

<property>

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

<value>1024</value>

</property>

</configuration>

 

3、复制到其他节点

这里可以写一个shell脚本进行操作(有大量节点时比较方便)

cp2slave.sh

#!/bin/bash

scp –r /usr/local/hadoop hadoop@hdp2:/usr/local/

scp –r /usr/local/hadoop hadoop@hdp3:/usr/local/

4、启动验证

4.1 启动hadoop

进入安装目录: cd hadoop/

(1)格式化namenodebin/hdfs namenode –format

(2)启动hdfs: sbin/start-dfs.sh

此时在hdp1上面运行的进程有:namenode, secondarynamenode

hdp2和hdp3上面运行的进程有:datanode

(3)启动yarn: sbin/start-yarn.sh

此时在hdp1上面运行的进程有:namenode,secondarynamenode,resourcemanager

hdp2和hdp3上面运行的进程有:datanode,nodemanager

(4)启动historyserver: sbin/mr-jobhistory-daemon.sh start historyserver

查看集群状态:bin/hdfs dfsadmin –report

查看文件块组成:bin/hdfs fsck / -files -blocks

查看HDFS: http://192.168.1.150:50070

查看RM: http://192.168.1.150:8088

4.2 运行示例程序:

先在hdfs上创建一个文件夹

bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 2 1000

接下来安装Mysql部分,存储hive元数据

1、sudo apt-get install mysql-server  按提示安装,并设置root用户密码

2创建mysql用户hive

   $ mysql -u root -p 进入root用户

    mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive'; 

3、授权:  

   mysql> GRANT ALL PRIVILEGES ON *.* TO'hive'@'%' WITH GRANT OPTION;

4、登录到hadoop 用户 $ mysql -u hiv -p 

5、创建数据库hive

mysql>create database hive; 

接下来安装Hive部分

1、 解压文件,并配置环境变量

将下载的hive-0.10.0.tar.gz解压到/home/hadoop路径下。

sudo mv hive/usr/local/

注意:每台机器的安装路径要相同!!

  # vi ~/.bashrc   打开.bashrc文件,添加下面配置信息

export HIVE_HOME=/usr/local/hive

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

2、在hive/conf中添加hive-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
<name>hive.metastore.local</name>
<value>false</value>
<description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
<description></description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
<description>class implementing the jdo persistence</description>
</property>

<property>
<name>javax.jdo.option.DetachAllOnCommit</name>
<value>true</value>
<description>detaches all objects from session so that they can be used after transaction is committed</description>
</property>

<property>
<name>javax.jdo.option.NonTransactionalRead</name>
<value>true</value>
<description>reads outside of transactions</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>

3mysql jdbc driver拷贝到hivelib

4、启动hive并测试:

hive> show tables;

OK

Time taken: 5.204 seconds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于gitgithub的操作

先马克&#xff0c;回头细看&#xff0c;然后整理一下 https://linux.cn/article-4292-1.html转载于:https://www.cnblogs.com/mengjie1001/p/10076530.html

一种解决 MacBook 里的 App Store 无法登录的问题

刚刚买回来的 2018 款带有 touchbar 的 MacBook Pro 15 inc 在用 App Store 安装 app 时一直无法登录成功&#xff08;网络链接都是好的&#xff09;&#xff0c;导致软件都无法更新&#xff0c;折腾了挺一会的。 后来发现是要退出设置里的 iCloud 登录&#xff0c;然后重新登录…

第二次冲刺

1、今日各个成员的问题 组员问题张晋誌对mui的API看得不是很懂&#xff0c;无法顺利的使用袁庆杰基础不牢,编写困难周建峰eclipse没法创建web项目&#xff0c;按照网上的方法&#xff0c;check for updates 和 install new software 之后也没用许家烨给单一功能知道如何实现但项…

牌类游戏使用微服务重构笔记(八): 游戏网关服务器

网关服务器 所谓网关&#xff0c;其实就是维持玩家客户端的连接&#xff0c;将玩家发的游戏请求转发到具体后端服务的服务器&#xff0c;具有以下几个功能点&#xff1a; 长期运行&#xff0c;必须具有较高的稳定性和性能对外开放&#xff0c;即客户端需要知道网关的IP和端口&a…

配置独立于系统的PYTHON环境

配置独立于系统的PYTHON环境 python 当前用户包 一种解决方案是在利用本机的python环境的基础上&#xff0c;将python的包安装在当前user的.local文件夹下 一共有两种方式来实现pip的时候安装到当前user 设置pip配置文件 pip.conf 一种是在~/.pip文件夹下的pip配置文件pip.conf…

好程序员技术教程分享JavaScript运动框架

好程序员技术教程分享JavaScript运动框架&#xff0c;有需要的朋友可以参考下。 JavaScript的运动&#xff0c;即让某元素的某些属性由一个值变到另一个值的过程。如让div的width属性由200px变到400px&#xff0c;opacity属性由0.3变到1.0&#xff0c;就是一个运动过程。 实现运…

linux 下mysql等php的安装 lnmp

访问https://lnmp.org/install.html按照步骤安装 当下载执行完 wget -c http://soft.vpser.net/lnmp/lnmp1.3.tar.gz && tar zxf lnmp1.3.tar.gz && cd lnmp1.3 && ./install.shlnmp 要到.install.sh下改一下下载地址&#xff0c;把http直接更换成…

单纯形法

单纯形法 如果目标函数中所有系数都非正&#xff0c;那么显然这些变量直接取0是最优的&#xff0c;所以此时答案为即为常数项。 我们要做的就是通过转化把目标函数的系数全部搞成非负。 思路就是用非基变量替换基变量。 先找到一个目标函数中系数为正的变量&#xff0c;在所有限…

洛谷P1828 香甜的黄油 Sweet Butter

香甜的黄油 Sweet Butter 黄油真的是这么做的吗&#xff1f;&#xff01;&#xff01;&#xff01;[惶恐] 这道题是Dijkstra算法的简单变形 通过题意我们要找到一个点使奶牛所在点的路程和最短。通过Dijkstra的模板我们可以求的一点到其他任一点的最短路径&#xff0c;那么我们…

JAVA List集合转Page(分页对象)

/*** version 1.0* author: fwjia*/ import java.util.List;public class PageModel<T> {/**** 当前页*/private int page 1;/**** 总页数*/public int totalPages 0;/**** 每页数据条数*/private int pageRecorders;/**** 总页数*/private int totalRows 0;/**** 每页…

分区分表实验用的语句

--查看索引 select * from DBA_IND_PARTITIONS &#xff54;; select status,t.* from dba_indexes t where t.OWNERGANSUSC; select count(*) from ACT_HI_VARINST SELECT ALTER INDEX || TABLE_OWNER || . || INDEX_NAME || UNUSABLE; UNUSABLE_INDEX FROM ALL_INDEX…

分布式数据库数据一致性的原理、与技术实现方案

http://youzhixueyuan.com/the-principle-and-technology-realization-of-distributed-data-consistency.html 背景 可用性&#xff08;Availability&#xff09;和一致性&#xff08;Consistency&#xff09;是分布式系统的基本问题&#xff0c;先有著名的CAP理论定义过分布式…

模块之re模块 —— 正则

#‘match’只匹配从左向右第一个值是否在中括号的范围内&#xff0c;如果没有就返回None 如果有就直接打印一个对象&#xff0c;加上.group()就可以返回你要找的区间里面的值&#xff0c;如果没有找到对应的值&#xff0c;加上‘.group()’会报错 #‘search’ 默认是从整个st…

centos7 docker

Docker 是一个开源工具&#xff0c;它可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机&#xff0c;并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序&#xff0c;并且可以扩展到成千上万的节点。 容器和 VM&#xff08…

批处理ping指定ip列表

for /f in (filename) do (command) for /f %i in (C:\ip.txt) do (ping %i -n 1 && echo %i 通 >>IP.txt || echo %i 不通 >>IP1.txt) 有返回写入ip.txt 没有写入ip1.txt转载于:https://blog.51cto.com/2216859/2384188

Intellij Idea 2017创建web项目及tomcat部署实战

相关软件&#xff1a;Intellij Idea2017、jdk16、tomcat7 Intellij Idea直接安装&#xff08;可根据需要选择自己设置的安装目录&#xff09;&#xff0c;jdk使用1.6/1.7/1.8都可以&#xff0c;主要是配置好系统环境变量&#xff0c;tomcat7上tomcat的官网下载压缩包解压即可。…

docker ssh

1&#xff0c;首先&#xff0c;需要从Docker官网获得centos或Ubuntu镜像 2&#xff0c;当本地已有Ubuntu镜像后&#xff08;大概200M左右大小&#xff09;&#xff0c;使用如下命令 [cpp]view plaincopy docker run -t -i ubuntu /bin/bash 即可启动一个容器&#xff0c;并放…

[BFS]JZOJ 4672 Graph Coloring

Description 现在你有一张无向图包含n个节点m条边。最初&#xff0c;每一条边都是蓝色或者红色。每一次你可以将一个节点连接的所有边变色&#xff08;从红变蓝&#xff0c;蓝变红&#xff09;。找到一种步数最小的方案&#xff0c;使得所有边的颜色相同。Input 第一行包含两个…

实现继承的方式

/*** 借助构造函数实现继承*/function Parent1(){this.name "parent1";}Parent1.prototype.say function(){};function Child1(){//将父构造函数的this指向子构造函数的实例上Parent1.call(this);//applythis.type "child1";}console.log(new Child1);/…

Vue源码: 关于vm.$watch()内部原理

vm.$watch()用法 关于vm.$watch()详细用法可以见官网。 大致用法如下: <script>const app new Vue({el: "#app",data: {a: {b: {c: c}}},mounted () {this.$watch(function () {return this.a.b.c}, this.handle, {deep: true,immediate: true // 默认会初始化…