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数据