新学期开始了,在学校的日子开始倒计时~~~有点矫情了。
寒假在广州呆了一个月,没做什么,出去转了一圈,依然不知道找工作的事水有多深。期间看了一篇博文,感触良多。此前虽然钻研过不少技术,但是说白了就是CURD,没意思,没技术含量。早就打算坐下来看看Hadoop,但是一直没有找到合适的资料,昨天终于搜集到一份比较完整的,就此开始Hadoop的学习~~共勉!!
学习视频下载地址
PS:学习Hadoop之前需要对Linux有基本的了解,参考之前的一篇文章
使用到的软件 VMWare9.0 centOS6.4 X64 Hadoop1.2.1 JDK1.7 X64
虚拟机的安装不再赘述,JDK的安装请参考《》一文。
软件安装规则
/opt 父目录
/opt/modules 存放软件的安装目录
/opt/softwares 存放软件包(tar、bin、zip)
/opt/tools 存放工具目录(eclipse)
/opt/data 存放一些测试数据
/home/hadoop 存放工具盒测试数据目录
安装Hadoop
1.解压 tar -zxvf hadoop-1.2.1.tar.gz
2.移动软件到安装目录 mv hadoop-1.2.1 /opt/modules/
3.配置环境变量,编辑/etc/profile文件,添加如下内容
##HADOOP
export HADOOP_HOME=/opt/modules/hadoop-1.2.1
export PATH=$PATH:/opt/modules/hadoop-1.2.1/bin
以root用户登录,执行 source /etc/profile 使配置生效
4.测试 hadoop
5.配置Hadoop中JDK的安装目录
在/opt/modules/hadoop-1.2.1/conf/hadoop-env.sh中设置
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25
6.测试MapReduce程序
①在/opt/data目录下新建input目录
②复制hadoop目录下conf目录下的xml文件到/opt/data/input
cp /opt/modules/hadoop-1.2.1/conf/*.xml /opt/data/input/
③在hadoop目录下执行以下命令
hadoop jar hadoop-examples-1.2.1.jar grep /opt/data/input/ /opt/data/output 'dfs[a-z.]+'
执行完成之后会在data目录下生成output文件夹
程序功能:在xml文件中找出所有以dfs开头的单词
Apache Hadoop 伪分布模式安装
①关闭防火墙和禁用SELnux
#service iptables status 查看防火墙状态
#service iptables stop 关闭防火墙
#vim /etc/sysconfig/selinux 设置SELINUX=disabled
②设置静态IP地址
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 (也可以手动设置)
测试中的配置为IP:192.168.110.130 网关:192.168.110.2 子网掩码:255.255.255.0
③修改Hostname
#hostname hadoop-master
#vi /etc/sysconfig/network 修改配置文件,永久生效
④IP与Hostname绑定
#vi /etc/hosts
在hosts文件中加入192.168.110.130 hadoop-master.dragon.org hadoop-master
⑤设置SSH自动登录--所有守护进程彼此通过SSH协议进行通信
$ssh-keygen -t rsa
用命令ls -al查看文件列表,生成.ssh文件,默认权限为700
进入.ssh文件夹,已生成公钥和私钥
将公钥复制一份到当前目录,文件名改为authorized_keys
$cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
authorized_keys文件的权限为644
密钥信息存储在known_hosts文件中。
⑥安装JDK
$./jdk-6u24-linux-i586.bin
more /etc/profile 查看Java和Hadoop的配置
source /etc/profile 使配置生效
在Windows中使用UltraEdit登录FTP服务器修改配置文件
在/opt/modules/hadoop-1.2.1/conf/core-site.xml文件中做如下配置
fs.default.name hdfs://hadoop-master.dragon.org:9000 hadoop.tmp.dir /opt/data/tmp
需要手动创建/opt/data/tmp目录
在/opt/modules/hadoop-1.2.1/conf/hdfs-site.xml文件中做如下配置
dfs.replication 1 dfs.permissions false
在/opt/modules/hadoop-1.2.1/conf/mapred-site.xml文件中做如下配置
mapred.job.tracker hadoop-master.dragon.org:9001
在/opt/modules/hadoop-1.2.1/conf/slaves文件中做如下配置。将localhost改为如下。
DataNodes(块存储) TaskTrackers(任务执行)通常在同一台机器上,用slaves文件配置。
hadoop-master.dragon.org
指定Secondary NameNode(辅助元数据服务器)在masters文件中配置
hadoop-master.dradon.org
-------------------------------------------------------------------
进入到/opt/modules/hadoop-1.2.1/bin目录下,使用 ./hadoop查看命令选项。
运行格式化命令 ./hadoop namenode -format
启动dfs,命令 start-dfs.sh
使用jps命令查看Java进程
NameNode DataNode SecondaryNameNode 都已启动
在浏览器中测试http://192.168.110.130:50070/dfshealth.jsp
接下来启动 start-mapred.sh
通过jps命令查看Java进程
JobTracker TaskTracker均已启动。
通过
关闭
stop-mapred.sh
stop-dfs.sh
通过jps查看关闭情况。
还可以通过start-all.sh来启动,通过stop-all.sh来关闭。
启动顺序:NameNode DataNode SecondaryNameNode JobTracker TaskTracker
停止顺序:JobTracker TaskTrackerNameNode DataNode SecondaryNameNode
还可以按照以上顺序分别启动或者停止每个进程。
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
hadoop-daemon.sh start jobtracker
hadoop-daemon.sh start tasktracker
至此,Hadoop安装成功~~
日志文件,两种格式: .log .out 日志文件存储目录可在conf/hadoop-enc.sh文件中配置。
.log 日志文件,在conf/log4j.properties文件中配置,采用日常滚动文件后缀策略来命名日志文件,内容比较全。
.out 日志文件,记录标准输出和标准错误,内容比较少。默认情况,系统保留最新的5个日志文件。
hadoop-root-datanode-hadoop-master.log
① ② ③ ④ ⑤
①框架的名称
②启动守护进程的用户名
③守护进程的名称
④运行守护进程的名称
⑤日志的格式,log和out
三大基础配置文件:
①core-site.xml 配置Hadoop Common Project 相关的属性配置,Hadoop1.x框架基础属性的配置
②hdfs-site.xml 配置HDFS Project 文件系统相关的属性
③mapred-site.xml 配置MapReduce 框架相关的属性
配置文件
①masters 主节点,并不是配置Hadoop中的主节点的相关信息,配置HDFS辅助接点的信息
②slaves从节点,配置Hadoop1.x中的HDFS和MapReduce框架的从节点信息
Hadoop1.x 五大服务(守护进程)
NameNode DataNode SecondaryNameNode JobTracker TaskTracker