文章分为四篇,1 是安装 Hadoop, 2 MapReduce日志分析样例,3 安装Hive,4 JDBC连接Hive查询数据.
第一篇 Hadoop安装
Hadoop 安装,网上的例子很多,本人也是根据网上的步骤一步一步的执行,安装完成后,运行WordCount.jar时发现,从hadoop官网下的是32位,没有编译好的64的,于是想自己编译下64位的,本人费尽周折,在公司以及在家的电脑上折腾了好久,编译无法通过,主要的原因是下载所需的jar包的过程中超时,于是网上搜索了编译后的64位的hadoop.
http://download.csdn.net/detail/tianhuimin/874736
这位分享的是能用的,但不是2.7.1,是2.7.0
接下来是枯燥的安装过程...
下面的内容是大部分是转载的,因为大部分配置都差不多,转自 http://www.open-open.com/lib/view/open1435761287778.html
总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs、mapreduce等主从关系。
1、环境,两台CentOS6.5,64位,在每台的hosts文件中绑定:
master 10.68.128.215 slave1 10.68.128.212
2、SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys
(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
(2)输入命令:
ssh-keygen -t rsa
生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys ssh root@10.68.128.212 cat ~/.ssh/id_rsa.pub>> authorized_keys
(4)把master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
(5)完成,ssh root@10.68.128.212就不需要输入密码了
3、安装JDK,Hadoop2.7需要JDK7,由于我的CentOS是最小化安装,所以没有OpenJDK,直接解压下载的JDK并配置变量即可
(1)下载“jdk-7u79-linux-x64.gz”,放到/usr/local/java/ 目录下
(2)解压,输入命令,tar -zxvf jdk-7u79-linux-x64.gz
(3)编辑/etc/profile
export JAVA_HOME=/usr/local/java/jdk1.7.0_79 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
(4)使配置生效,输入命令
source /etc/profile
(5)输入命令
java -version显示
[root@master hadoop]# java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02,mixed mode)
就OK了
4、安装Hadoop2.7,只在master服务器解压,再复制到slave服务器
(1)下载“hadoop-2.7.0.tar.gz”,放到/home/hadoop目录下
(2)解压,输入命令
tar -xzvf hadoop-2.7.0.tar.gz
(3)在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name
5、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://10.68.128.215:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property> <!-- JDBC 连接自定义验证 Hive使用的配置 --> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> </configuration>
6、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>10.68.128.215:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
7、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>10.68.128.215:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>10.68.128.215:19888</value> </property> </configuration>
8、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration> <property> <name>yarn.app.mapreduce.am.resource.mb</name> <value>1228</value> </property> <property> <name>yarn.app.mapreduce.am.command-opts</name> <value>-Xmx983m</value> </property> <property> <name>mapreduce.map.memory.mb</name> <value>1228</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>1228</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx983m</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx983m</value> </property> <property> <name>mapreduce.job.tracker</name> <value>hdfs://10.68.128.215:9001</value> <final>true</final> </property> <property> <name>mapreduce.jobhistory.address</name> <value>10.68.128.215:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>10.68.128.215:19888</value> </property> </configuration>
9、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了,
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
10、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
master slave1
11、将配置好的Hadoop复制到节点对应位置上,通过scp传送,
scp -r /home/hadoop 10.68.128.212:/home/
12、在master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.0目录
(1)初始化,输入命令,bin/hdfs namenode -format
(2)全部启动
sbin/start-all.sh
也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
如果正常,大概是以下信息
[root@master sbin]# ./start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [master] master: starting namenode,logging to /home/hadoop/hadoop-2.7.0/logs/hadoop-root-namenode-master.out master: starting datanode,logging to /home/hadoop/hadoop-2.7.0/logs/hadoop-root-datanode-master.out slave1: starting datanode,logging to /home/hadoop/hadoop-2.7.0/logs/hadoop-root-datanode-slave1.out Starting secondary namenodes [master] master: starting secondarynamenode,logging to /home/hadoop/hadoop-2.7.0/logs/hadoop-root-secondarynamenode-master.out starting yarn daemons starting resourcemanager,logging to /home/hadoop/hadoop-2.7.0/logs/yarn-root-resourcemanager-master.out slave1: starting nodemanager,logging to /home/hadoop/hadoop-2.7.0/logs/yarn-root-nodemanager-slave1.out master: starting nodemanager,logging to /home/hadoop/hadoop-2.7.0/logs/yarn-root-nodemanager-master.out
(3)停止的话,输入命令,sbin/stop-all.sh
(4)输入命令,jps,可以看到相关信息
13、Web访问,要先开放端口或者直接关闭防火墙
(1)输入命令,service iptables stop
(2)浏览器打开http://10.68.128.215:8088/
(3)浏览器打开http://10.68.128.215:50070/
OK,Hadoop 安装好了. 下一篇,MapReduce示例 :)