Hadoop+Hive部署安装配置

最近结合具体的项目,搭建了Hadoop+Hive,在运行Hive之前要首先搭建好Hadoop,关于Hadoop的搭建有三种模式,在以下的介绍中,我主要的采用的是Hadoop的伪分布安装模式。写下来给各位分享。
准备工作:
这里写图片描述
以上所有的下载的安装包和解压后文件均在/usr/local/hadoop目录

这里写图片描述

1、分别ssh到每台服务器上,在root用户下修改hostname
su root
vim /etc/sysconfig/network
这里写图片描述
如上图所示,HOSTNAME=master
vim /etc/hosts
这里写图片描述
如上图所示,将localhost.localmain处改成master,遮挡处是IP地址,囧,然后重启服务器
reboot
在master服务器添加每台主机名字和地址的映射
vim /etc/hosts
这里写图片描述
然后检查ping连接
ping slave1
同理,在其他三台服务器上修改主机名和添加地址映射。

2、分别在每台服务器上建立相应的文件夹,并修改文件夹权限
mkdir /usr/local/hadoop
chmod 777 –R /usr/local/hadoop

3、安装jdk,Hadoop使用环境必须有jdk,每台服务器上都必须安装
首先检查有无jdk:java -version
cd /usr/local/hadoop
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
将下载的安装包上传到master上的/usr/local/hadoop文件夹下
tar-zxvf jdk-7u79-linux-x64.tar.gz
配置jdk的环境变量:
vim /etc/profile
这里写图片描述
使其立即生效 source /etc/profile
检查是否安装成功:java –version
这里写图片描述

4、hadoop 用户准备:
添加用户:useradd hadoop
用户密码:passwd hadoop
授权给hadoop: chown -R hadoop:hadoop /usr/local/hadoop

5、SSH无密码登录配置
在Hadoop中,nameNode是通过SSH来启动和停止各个DataNode上的各种守护进程,这就要在节点之间执行指令的时候是不需要输入密码的形式,故需要配置SSH运用无密码公钥认证的形式。
切换到hadoop用户下:以下是配置master SSH无密码登录slave1
su hadoop
ssh-keygen –t rsa –P ‘’
三次Enter
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
su root
vim /etc/ssh/sshd_config
这里写图片描述
service sshd restart
测试本地无密码连接是否成功:
这里写图片描述
然后将id_rsa.pub分发到slave1服务器上:
scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
在slave1主机上,在hadoop用户下:
su hadoop
mkdir ~/.ssh(如果没有,就要新建.ssh文件夹)
chmod 700 ~/.ssh
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
切换到root用户下:
vim /etc/sys
这里写图片描述
同上: vim /etc/ssh/sshd_config
service sshd restart
回到master主机上测试SSH无密码连接slave1:
这里写图片描述
同上,分别配置master SSH无密码连接slave2,slave3。
以上的配置过程,只能实现master 分别SSH无密码连接slave1,slave2,slave3,而无法实现slave1,slave2,slave3 SSH 无密码连接master。
若要实现slave1,slave2,slave3 SSH无密码连接master,以slave1 SSH无密码连接master为例:同理,先在slave1主机上hadoop用户下,生成id_rsa.pub,再拷贝到master主机上,并追加到authorized_keys.最后配置成功如下图:
这里写图片描述

6、安装Hadoop(集群中的所有机器都要安装Hadoop)
cd /usr/local/hadoop
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
tar –zxvf hadoop-1.2.1.tar.gz
修改环境变量:
su root
vim /etc/profile
这里写图片描述
使之立即生效:
source /etc/profile
修改hadoop conf文件夹下的hadoop-env.sh
cd /usr/local/hadoop/hadoop-1.2.1/conf
vim hadoop-env.sh
这里写图片描述
将上图中红框下的文字取消注释;
修改conf下的hdfs-site.xml文件
这里写图片描述
修改conf下core-site.xml文件:
这里写图片描述
修改conf下mapred-site.xml:
这里写图片描述
注意:四台服务器上都要进行相应的配置。

7、master上进行验证:
格式化Hadoop:
cd /usr/local/hadoop/ hadoop-1.2.1/bin
./hadoop namenode –format
./start-all.sh
jps

这里写图片描述

(二)Hive安装(每个节点上都要安装Hive)
这里选用mySql作为元数据库,将mySql和Hive安装在master服务器上
统一给放到/usr/local/hadoop
1、下载安装文件,并解压:
cd /usr/local/hadoop
wget http://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
tar -zxvf apache-hive-1.2.1-bin.tar.gz

2、配置环境变量
在root用户下:
su root
vim /etc/profile
这里写图片描述
生效:source /etc/profile
chown –R hadoop:hadoop /usr/local/hadoop

3、安装mySql
yum install mysql-server
安装完成后;
service mysqld start
mysql>mysql;
如果报错:
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’
解决办法:
service mysqld stop
mysqld_safe –skip-grant-tables &;
mysql –uroot –p

use mysql;
update user set password=PASSWORD(“hadoop”)where user=”root”;
flush privileges;
quit
service mysqld restart
mysql -uroot –phadoop
或者mysql –uroot –hmaster –phadoop
如果可以登录成功,则表示MySQL数据库已经安装成功。
创建Hive用户:
mysql>CREATE USER ‘hive’ IDENTIFIED BY ‘hive’;
mysql>GRANT ALL PRIVILEGES ON . TO ‘hive’@’master’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON . TO ‘hive’@’master’ IDENTIFIED BY ‘hive’;
mysql>flush privileges;
创建Hive数据库:
mysql>create database hive;

4、修改Hive配置文件:
cd /apache-hive-1.2.1-bin/conf
cp hive-default.xml.template hive-default.xml
vi hive-site.xml
这里写图片描述

5、拷贝JDBC驱动包
将mySql的JDBC驱动包复制到Hive的lib目录下
cp mysql-connector-java.bin.jar /usr/local/hadoop/ apache-hive-1.2.1-bin /lib

6、分发Hive分别到slave1,slave2,slave3上
scp -r /usr/local/hadoop/apache-hive-1.2.1-bin slave1:/usr/local/hadoop/
scp -r /usr/local/hadoop/apache-hive-1.2.1-bin slave2:/usr/local/hadoop/
scp -r /usr/local/hadoop/apache-hive-1.2.1-bin slave3:/usr/local/hadoop/
配置环境变量如同master。

7、测试Hive
进入到Hive的安装目录,命令行:
cd /usr/local/hadoop/apache-hive-1.2.1-bin/bin
hive
hive>show tables;
正常显示,即是安装配置成功。
注意:在测试Hive之前要启动hadoop
若要进行远程服务启动则如下:
cd /usr/local/hadoop/apache-hive-1.2.1-bin/bin
nohup hive –-service hiveserver2
静止不动是正常的,在后台已经启动相关服务。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
本文主要结合Spark-1.6.0的源码,对Spark中任务调度模块的执行过程进行分析。Spark Application在遇到Action操作时才会真正的提交任务并进行计算。这时Spark会根据Action操作之前一系列Transform操作的关联关系,生成一个DAG,在后续的操作中,对DAG进行Stage划分,生成Task并最终运行。整个过程如下图所示,DAGScheduler用于对Application进行分析,然后根据各RDD之间的依赖关系划分Stage,根据这些划分好的Stage,对应每个Sta

Hadoop 2.0工作原理学习 - 2016-07-15 17:07:13

1 HDFS简介 1.1 Hadoop 2.0介绍 Hadoop是Apache的一个分布式系统基础架构,可以为海量数据提供存储和计算。Hadoop 2.0即第二代Hadoop系统,其框架最核心的设计是HDFS、MapReduce和YARN。其中,HDFS为海量数据提供存储,MapReduce用于分布式计算,YARN用于进行资源管理。 Hadoop 1.0和Hadoop 2.0的结构对比: Hadoop 2.0的主要改进有: 1、通过YARN实现资源的调度与管理,从而使Hadoop 2.0可以运行更多种类的
    本文借鉴官文,添加了一些解释和看法,其中有些理解,写的比较粗糙,有问题的地方希望大家指出。写这篇文章,是想把一些官文和资料中基础、重点拿出来,能总结出便于大家理解的话语。与大多数“wordcount”代码不同的是,并不会有如何运行第一storm代码等内容,只有在运行完代码后,发现需要明白:“知其然,并知其所以然”。 Storm是什么?为什么要用Storm?为什么不用Spark? 第一个问题,以下概念足以解释: Storm是 基于数据流的实时处理系统 ,提供了大吞吐量的实时计算能力。通过数据入口获取
本文要解决的问题: 从源码级别对Spark Streaming进行简单学习。 Summarize Spark Streaming实现了对实时流数据的高吞吐量、低容错的数据处理API。它的数据来源有很多种:Kafka、Flume、Twitter、ZeroMQ、TCP Scoket等。架构图如下: Streaming接收实时流输入的数据,将其按批划分,然后交给Spark Enigne分批处理。如下图所示: StreamingContext 和SparkContext相似。要使用Spark的流处理就必须创建St
1.前言 HBase是云计算环境下最重要的NOSQL数据库,提供了基于Hadoop的数据存储、索引、查询,其最大的优点就是可以通过硬件的扩展从而几乎无限的扩展其存储和检索能力。但是HBase与传统的基于SQL语言的关系数据库无论从理念还是使用方式上都相去甚远,以至于要将基于SQL的项目移植到HBase时往往需要重写整个项目。 为了解决这个问题,很多开源项目提供了HBase的类SQL中间件,意即提供一种在HBase上使用的类SQL语言,使得程序员能够像使用关系数据库一样使用HBase, Apache Pho
为什么要用VXLAN 随着云计算数据中心的大规模建设与运营,传统的依赖VLAN技术的二层网络技术面临着越来越多的问题: vlan的数量限制   4096个vlan远不能满足大规模云计算数据中心的需求 物理网络基础设施的限制    基于IP子网的区域划分限制了需要二层网络连通性的应用负载的部署 TOR交换机MAC表耗尽     虚拟化以及东西向流量导致更多的MAC表项 多租户场景 租户可以自定义网络,且无需考虑与其他租户IP地址的重叠。 目前解决这些问题的主要方案是基于overlay的大二层网络技术。典型的
本节我们讨论 volume 的 Backup 操作。 Backup 是将 volume 备份到别的地方(备份设备),将来可以通过 restore 操作恢复。 Backup VS Snapshot 初看 backup 功能好像与 snapshot 很相似,都可以保存 volume 的当前状态,以备以后恢复。但二者在用途和实现上还是有区别的,具体表现在: Snapshot 依赖于源 volume,不能独立存在;而 backup 不依赖源 volume,即便源 volume 不存在了,也可以 restore。

LibSVM在Java中的简单应用 - 2016-07-14 18:07:36

首先,在这里首先感谢台湾林智仁先生的开源工具包libsvm。使SVM算法更加普及。大家可以到下面的libsvm官网去了解相关的信息。 Libsvm官方网站- https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 其次,我在使用过程中发现,先生svm_scale文件中无法将经过规约的文件输出到本地txt文件中,只能在控制台重定向,而我并不想在程序运行中打开控制台进行较为繁琐的操作。 所以我改造了svm_scale文件,实现了文件的写入,在这里可以和大家分享一下。 改造后新增参
最新消息 Docker在上周的DockerCon技术大会上发布了1.12版核心产品Docker Engine,最大的新特性是Docker Swarm已经被整合到了Docker Engine里面而不再是一个单独的工具了,这样就可以更容易的把多个Docker主机组合成一整个规模更大可靠性更高的逻辑单元。Docker的掌舵者 Adrian Mouat相信这种新的集群模式可以大大增强Docker在相关领域的竞争力。 把Docker Swarm整合进Docker Engine是一个重大改进,但它也只是一个附加功能,
本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。 1. 环境 机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134 操作系统: CentOS 6.6 Java: 1.7 Hadoop: 2.6.0 请确保JDK已安装,使用 java -version 确认。 hosts配置 配置主机hosts文件: vim /etc/hosts 192.168.1.