hadoop安装(包含hive)

2 篇文章 0 订阅
1 篇文章 0 订阅

VMworkstation下载地址 (64位)http://rj.baidu.com/soft/detail/13808.html?ald
附上永久密钥 5A02H-AU243-TZJ49-GTC7K-3C61N

附上本次安装中所有需要用到的文件,请提前下载
https://pan.baidu.com/s/1zdoGZjuvwQMZJzwQtCyfSQ

下文里执行的命令 cd 其实就是进入到 如图红框的目录下(当前lionel账户的home目录)
这里写图片描述

hadoop平台安装

1新建虚拟机(因为hadoop需要运行在至少两台机器上,由于是自学,可以用VM虚拟出两台虚拟机,在其上运行hadoop。如果有足够的物理机,按照下文也一样的搭建平台)

安装好VM12以后按图中设置新建虚拟机
未做特殊说明的,按照图中的设置直接下一步即可。

这里写图片描述

这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述

虚拟机的位置自己选择,名字自己选择

这里写图片描述

这里写图片描述

由于是笔记本这里建议是1G,如果自己机器配置可以的话,可以考虑2G

这里写图片描述

使用网络桥接模式

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

点击自定义硬件

这里写图片描述

如果有软盘则删除软盘

这里写图片描述

浏览找到下载好的上面分享文件里的CentOS-6.7-x86_64-bin-DVD1光盘映像,然后关闭窗口

这里写图片描述

单击完成

这里写图片描述

开启虚拟机

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
这里写图片描述

名字按照自己选的填,进入网络编辑

这里写图片描述

这里写图片描述

选择网卡开机自动连接,其他设置不用更改

这里写图片描述

关闭窗口

这里写图片描述

继续next

这里写图片描述

选择上海时区

这里写图片描述

创建一个root账号

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

开始安装

这里写图片描述

重启

这里写图片描述

点击forward

这里写图片描述

这里写图片描述

创建自己的独立账号,然后forward。我创建的账号名称是lionel,自选,所以下面的路径,home都是lionel

这里写图片描述

设置时间

这里写图片描述

这里写图片描述

这里写图片描述

2安装VMtools,方便环境的搭建(后面会把物理机上的文件直接拖拽到虚拟机上)
这一步需要root权限才能执行,执行 su
然后输入你的root账号的密码

这里写图片描述

[root@master ~]# mkdir /home/lionel/VMtools

然后会弹出一个窗口,解压里面的vmtools压缩包,到你指定的目录,我在/home/lionel下新建了一个目录
VMtools 目录,路径如图。(右键,解压到,Extract to)

这里写图片描述

这里写图片描述

打开一个终端进入解压文件的目录下
我这里是输入命令

cd /home/lionel/VMtools


然后

 cd vmware-tools-distrib


执行安装文件

 ./vmware-install.pl

一路回车,安装完后再输入 reboot 重启一下虚拟机就可以了,新装的vmtools可能有点卡顿,重启后需要等一会才可以与物理机分享文件。

这里写图片描述

3卸载系统自带JDK,安装较为稳定的sun jdk
(这一步需要root权限,才能执行)

执行 su 输入密码

执行 rpm -qa|grep jdk 查看jdk版本信息

执行

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

卸载系统自带的jdk
(rpm -e –nodeps 你的jdk名称)

然后再次执行 rpm -qa|grep jdk 查看是否卸载完成,如果为输出任何信息,表示卸载完成

这里写图片描述
安装sum jdk
从上文中的分享文件里,下载jdk-7u71-linux-x64.gz,并放到虚拟机桌面上

新建目录存放jdk(你也可以选择别的目录,不过以后的环境配置也要改成相应的路径) mkdir /usr/java

把桌面上的jdk移动到新建的java目录下

mv /home/lionel/Desktop/jdk-7u71-linux-x64.gz /usr/java


进入目录

cd /usr/java


解压缩

 tar -xvf /usr/java/jdk-7u71-linux-x64.gz


配置环境变量

gedit /home/lionel/.bash_profile

把下面两行代码追加到文件末尾

export JAVA_HOME=/usr/java/jdk1.7.0_71/ 
export PATH=$JAVA_HOME/bin:$PATH 

(上文里,你的jdk解压到那个文件路径就是哪里所以这里是 JAVA_HOME=/usr/java/jdk1.7.0_71/
执行 source /home/lionel/.bash_profile 使文件立即生效

执行 java -version 出现如下信息,即为安装成功
这里写图片描述

4克隆两台slave节点
关闭虚拟机,开始克隆,按照图中设置,直接下一步即可
这里写图片描述
这里写图片描述
这里写图片描述

虚拟机名称,和存放位置都由自己选
这里写图片描述
然后按照上述办法再克隆一个,节点个数可以自己选,配置方法都一样

5配置hosts
这一步需要root权限才可以[lionel@master Desktop]$ su 输入密码

更改主机名
执行

[root@master ~]# gedit /etc/sysconfig/network

文本内容如下

NETWORKING=yes #启动网络
HOSTNAME=master #主机名

把主机名改为master(名字也可自己定,但后面的hosts文件配置也需要相对应)

使主机名生效执行

[root@master ~]# hostname master

(hostname + 你的主机名)
验证

[root@master ~]# hostname

如果出现你的主机名即 master 为正确

以上操作同样在另外两台从节点上执行,主机名改为slave1和slave2
。。。。。。。。。。。。。。。。。。。。。。。。
关闭防火墙(三台机器的防火墙都要关闭)

[root@master lionel]# setup

会出现下图中的内容:
这里写图片描述
光标移动选择“Firewall configuration”选项,回车进入选项
如果该项前面有“*”标,则按一下空格键关闭防火墙,如下图所示,然后光标移动选择“OK”保存修改内容
这里写图片描述
回车选yes
这里写图片描述
光标移动退出
这里写图片描述

。。。。。。。。。。。。。。。。。。。。。。。。
配置hosts
执行 ifconfig查看虚拟机IP地址(三台机器都要看)
这里写图片描述

执行

[root@master ~]# gedit /etc/hosts

在文本中加入你查看到的主机的IP地址和对应的主机名,我这里如下
192.168.31.138 master
192.168.31.139 slave1
192.168.31.140 slave2
(三台机器的hosts都要加入上述内容)

验证是否配置成功
在每台机器上分别ping另外两台的IP地址,和主机名

[root@master lionel]# ping slave1

如果出现以下情况则为成功
这里写图片描述
(传送4,5个包之后 ctrl+c 可停止传送)

6 .SSH实现master无密码登陆slave节点
(先执行 cd)
命令如下

生成密钥,一路回车

[lionel@master ~]$ ssh-keygen -t rsa 


查看生成的密钥文件
这里写图片描述

复制公钥文件

[lionel@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

这里写图片描述

修改 authorized__keys 的权限

[lionel@master .ssh]$ chmod 600 ~/.ssh/authorized_keys


把公钥authorized_keys复制到两个slave节点上去

 scp ~/.ssh/authorized_keys lionel@slave1:~/
 scp ~/.ssh/authorized_keys lionel@slave2:~/

出现以下内容则为复制成功,否则查看一下防火墙是否关闭,hosts文件是否配置正确
这里写图片描述
。。。。。。。。。。。。。。。。。。。。。。。。。
slave1节点(以下操作在slave2节点上同样执行一遍)

执行 cd
生成密钥(一路回车)

[lionel@slave1 ~]$ ssh-keygen -t rsa 


把master复制过来的公钥放到 .ssh目录下

[lionel@slave1 ~]$ mv authorized_keys ~/.ssh/ 


进入 .ssh目录并修改权限

lionel@slave1 ~]$ cd .ssh
[lionel@slave1 ~]$ chmod 600 authorized_keys

。。。。。。。。。。。。。。。。。。。。。。。
验证ssh无密码登录
在master节点上ssh登陆两个slave节点

[lionel@master ~]$ ssh slave1
[lionel@master ~]$ ssh slave2

这里写图片描述

7安装hadoop,并配置相关环境变量(配置环境变量的文本格式必须要严格对照,用tab键制表,且统一用 gedit编辑器)
把从共享文件里的 hadoop-2.5.2.tar.gz 直接拖拽到master节点的桌面上
打开一个终端
把它复制到home目录下
这里写图片描述

[lionel@master Desktop]$ mv hadoop-2.5.2.tar.gz ~/


执行cd 进入home目录
解压缩

[lionel@master ~]$ tar -xvf ~/hadoop-2.5.2.tar.gz

这里写图片描述

进入解压出来的目录下

[lionel@master ~]$ cd hadoop-2.5.2


配置环境变量hadoop-env.sh

[lionel@master hadoop-2.5.2]$ gedit /home/lionel/hadoop-2.5.2/etc/hadoop/hadoop-env.sh

在文件的靠前的部分找到下面的一行代码:

export JAVA_HOME=${JAVA_HOME}

将这行代码修改为下面的代码:

export JAVA_HOME=/usr/java/jdk1.7.0_71/ 

(即你的java jdk安装目录)
然后保存文件。
这里写图片描述

配置环境变量yarn-env.sh
环境变量文件中,只需要配置JDK的路径。

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-env.sh 

在文件的靠前的部分找到下面的一行代码:

export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 

将这行代码修改为下面的代码(如果前面有#号将#号去掉):

export JAVA_HOME=/usr/java/jdk1.7.0_71/ 

然后保存文件。
这里写图片描述

配置核心组件core-site.xml

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/core-site.xml 

用下面的代码替换core-site.xml中的内容:
(其中格式一定要和图片中的格式一样,用tab键控制格式,如果格式不同系统是无法正常读取文件内容的(第二个name和value对中的 /home/lionel/hadoopdata 是用来存放hadoop执行数据的路径,稍后会在 lionel账户的 home目录下新建一个 hadoopdata目录)

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
    <property> 
        <name>fs.defaultFS</name> 
        <value>hdfs://master:9000</value> 
    </property> 
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>/home/lionel/hadoopdata</value> 
    </property> 
</configuration> 

这里写图片描述

配置文件系统hdfs-site.xml

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/hdfs-site.xml 

用下面的内容替换hdfs-site.xml中的内容
格式一定要严格和图片中的一致,tab换行
其中

<value>2</value>

代表的是slave节点的个数

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
    <property> 
        <name>dfs.replication</name> 
        <value>2</value> 
    </property> 
</configuration>

这里写图片描述

配置文件系统yarn-site.xml

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-site.xml 

用下面的代码替换yarn-site.xml中的内容

<?xml version="1.0"?> 
<configuration> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>master:18040</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>master:18030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master:18025</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.admin.address</name> 
        <value>master:18141</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.webapp.address</name> 
        <value>master:18088</value> 
    </property>
</configuration>


配置计算框架mapred-site.xml

复制mapred-site.xml.template文件

[lionel@master hadoop-2.5.2]$ cp ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml

编辑mapred-site.xml 文件

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml

用下面的内容替换文本中的内容

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> 
    </property> 
</configuration>


在master节点配置slaves文件

[lionel@master hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/slaves 

用下面的代码替换slaves中的内容

slave1
slave2

即所有从节点的主机名

将配置好的hadoop复制到从两个节点

命令如下

[lionel@master hadoop-2.5.2]$ cd 

[lionel@master ~]$ scp -r hadoop-2.5.2 lionel@slave1:~/ 

[lionel@master ~]$ scp -r hadoop-2.5.2 lionel@slave2:~/ 

如果远程复制不成功,要检查是否关闭了防火墙,和hosts配置是否正确,ssh设置成功


配置Hadoop启动的系统环境变量

此操作需要在三个虚拟机上都进行

[lionel@master hadoop-2.5.2]$ cd 
[lionel@master ~]$ gedit ~/.bash_profile 

将下面的代码追加到.bash_profile末尾:

#HADOOP 
export HADOOP_HOME=/home/lionel/hadoop-2.5.2 
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 

然后执行命令使其立即生效

[lionel@master ~]$ source ~/.bash_profile


创建hadoop数据存放目录(在三个节点上都需要创建此目录)

[lionel@master ~]$ mkdir /home/lionel/hadoopdata


启动Hadoop集群

格式化文件系统
格式化命令如下,该操作需要在master节点上执行:

[lionel@master Desktop]$cd
[lionel@master ~]$ hdfs namenode -format 

(如果出现command not find则需要重启一下三台节点,注意,整个hadoop集群只格式化这一次,以后每次启动集群,不要再格式化了)

启动hadoop集群

[lionel@master ~]$ cd ~/hadoop-2.5.2 
[lionel@master hadoop-2.5.2]$ sbin/start-all.sh 

由于是首次启动如果提示 (yes/no)时输入yes
以后每次启动只需要 执行 start-all.sh
停止集群 stop-all.sh, 每次关机前要记着停止集群

8检验集群是否搭建成功

四种方法验证

三个节点分别输入jps
master
这里写图片描述
slave1
这里写图片描述
slave2
这里写图片描述


Web UI查看集群是否成功启动
在master节点上启动 Firefox浏览器,url中输入
http://master:50070/
界面如下图
这里写图片描述
这里写图片描述


Web UI查看集群是否成功启动
在master节点上启动 Firefox浏览器,url中输入
http://master:18088/
如何下图相符则为成功
这里写图片描述


执行jar包检查集群是否安装成功

[lionel@master ~]$ cd hadoop-2.5.2

[lionel@master hadoop-2.5.2]$ hadoop jar ~/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10

和下图相符既为成功

这里写图片描述

安装Hive

1安装mysql
这一步需要root权限
执行 su 输入密码


查看本机mysql版本

[root@master Desktop]$ rpm -qa|grep mysql


安装mysql服务,命令如下

[root@master ~]# cd

[root@master ~]# yum install -y mysql-server mysql mysql-devel

这里写图片描述


查看本机mysql版本

[root@master ~]$ rpm -qa|grep mysql

如下图,则安装成功
这里写图片描述


重启mysqld服务

[root@master ~]# service mysqld restart

这里写图片描述


以 root 用户登录 mysql ,(注意这里的 root 是数据库的 root 用户,不是系统的 root 用 户)。默认情况下 数据库的root用户没有密码,可通过以下方式登陆

[root@master ~]# mysql -uroot

然后创建 hadoop 用户:

mysql>grant all on *.* to hadoop@'%' identified by 'hadoop'; 
mysql>grant all on *.* to hadoop@'localhost' identified by 'hadoop';
mysql>grant all on *.* to hadoop@'master' identified by 'hadoop';
mysql>flush privileges;

这里写图片描述


创建数据库

mysql> create database hive_13;

退出

mysql> quit;


将数据库设为开机启动

[root@master ~]# sudo chkconfig mysqld on

2安装,部署hive
把下载好的 apache-hive-0.13.1-bin.tar.gz 压缩包拖拽到 lionel账户的home目录下

这里写图片描述

解压缩,命令如下

打开一个终端

[lionel@master Desktop]$ cd

[lionel@master ~]$ tar -zxvf ~/apache-hive-0.13.1-bin.tar.gz


进入hive安装目录的配置目录,并配置相关文件。命令如下

[lionel@master ~]$ cd /home/lionel/apache-hive-0.13.1-bin/conf

用gedit文本编辑器新建hive-site.xml文件

[lionel@master conf]$ gedit ~/apache-hive-0.13.1-bin/conf/hive-site.xml

并把下面代码复制到文件中

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
        <name>hive.metastore.local</name> 
        <value>true</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionURL</name> 
        <value>jdbc:mysql://master:3306/hive_13?characterEncoding=UTF-8</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionDriverName</name> 
        <value>com.mysql.jdbc.Driver</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionUserName</name> 
        <value>hadoop</value> 
    </property> 
    <property> 
        <name>javax.jdo.option.ConnectionPassword</name> 
        <value>hadoop</value> 
    </property> 
</configuration>

严格对照格式

这里写图片描述


需要mysql-connector-java-5.1.27.tar.gz压缩包

在home目录下新建 mysql目录

[lionel@master ~]$ mkdir ~/mysql

把下载好的mysql-connector-java-5.1.27.tar.gz压缩包,直接从物理机上拖拽到 mysql目录下
这里写图片描述


解压缩

[lionel@master ~]$ cd ~/mysql

[lionel@master mysql]$ tar -zxvf ~/mysql/mysql-connector-java-5.1.27.tar.gz


把解压出来的mysql 的 java-connector复制到hive的依赖库中

[lionel@master ~]$ cp ~/mysql/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar ~/apache-hive-0.13.1-bin/lib/


配置环境变量

[lionel@master ~]$ vi ~/.bash_profile
export HIVE_HOME=$PWD/apache-hive-0.13.1-bin 
export PATH=$PATH:$HIVE_HOME/bin

HIVE_HOM E=$PWD/apache-hive-0.13.1-bin
即HIVE的路径,你需要填入你安装(解压)的hive的目录


使配置文件立即生效

[lionel@master ~]$ source ~/.bash_profile


启动hive
进入hive安装(解压)主目录

[lionel@master ~]$ cd ~/apache-hive-0.13.1-bin

启动hive

[lionel@master apache-hive-0.13.1-bin]$ bin/hive

与下图相同既为成功

这里写图片描述

。。。。。。。。。。。。。。。。。。。。。。。。。

最后如果有兴趣的同学,本博客,还会陆续发表相应的 基于hadoop的hive和ecplise教学,附上500M和2G数据

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值