Hadoop学习笔记
大数据之处理工具Hadoop
概念
Hadoop是一个能够对大量数据进行分布式处理的软件框架。够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序,但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。
特点
⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
Hadoop运行在linux平台上,为了在一天电脑上实现,我这里采取了在windows平台上装了VMware然后在VMware上装了ubuntu系统来替代linux系统;
三,在windows平台下安装
1,安装VMware
安装VMware很简单,所以不再说,等安装后就可以安装ubuntu了,
2,安装Ubuntu系统
安装完VMware之后打开之后就会看到下图
Ubuntu.iso可以从网上下载对应自己的系统位数32或者64位;
接下来开始安装ubuntu系统;
1>点击Create a New Virtual Machine---next出现下图
选择图片上所选择的单选框。其实是加载ubuntu.ios的路劲选择文件所在路径后把但选择看选择到I will install …上然后点击next出现下面的图片:
在选择框框中选择guest operating system为linux下面会自动换会为虚拟机中装的系统,这里是ubuntu系统;
Next---
下面的单选择是选择了:切分为多文件的虚拟磁盘;next--- finished就完成了一个虚拟机的创建;
但是还没有加载系统的额驱动所以这时启动会提示找不到系统,
所以要加载系统,
右击ubuntu—setting
Ok之后就可以了;双击绿色按钮就启动了,第一次回比较慢;
接下来就会根据虚拟驱动安装ubuntu系统出现界面
点击安装Ubuntu左边选择语言,一直选择默认继续安装就可以,安装中有个选择地区的选择到上海就可以,然后选择继续;最后悔提示输入用户名和密码。这个用户名和密码是以后登录的所以必须记住密码,还有这个的用户不是超级管理员。输入完成点击下一步,等待安装完新驱动后从新启动就算安装完了ubuntu系统。
3,安装ubuntu install Tools
为了把主机和虚拟之间的文件达到共享的功能;
点击install Tools会打开Tools所在安装包VmwareTool-...gar.gz;
1>巴这个复制复制到自己的目录下解压然后开始用命令安装。解析之后会看到vmware-tools-distrib文件夹。
打开命令窗口Ctrl+Alt+T
第一步进到文件下:cd /vmware-tools-distrib所在的全路径;
第二步输入 sduo ./ vmware-install.pl回车输入刚才的秘密;开始安装,
一直回车键有提示yes 什么的输入下酒可以了,一直回车就能安装完成了。
2>从左边的刚创建的虚拟机—srtting---Options—Shared Folders
从新启动主机就能实现主机和虚拟机之间的文件共享了,安装完毕。
4,安装jdk
Jdk安装linux版本的根据系统的位数选择jdk位数但是必须是linux版本的,
双击之后打开系统,要是之前安装的时间记住了密码就直接登录,否则就得输入密码登录,
双击打开后自己建自己的文件夹用来存放文件,
把下载好的jdk***.bin放在这里开始用命令安装,安装的时间一定要注意命令中空格。
Ctrl+Alt+T打开命令框
1> 进入jdk所在目录
cd /home/zhao/tools
2> 给文件授权
chmod u+x jdk-6u38-linux-x64.bin
3> 生成文件
sudo ./ chmod u+x jdk-6u38-linux-x64.bin 注sudo是最高权限,写文件的时间都得用。
会提示输入密码,这个密码就是安装的建的密码输入后回,然后一直回车就能完
4> 接下来需要配置jdk变量环境
5> 用打开命令框输入
sudo gedit /etc/profile 会提示输密码的,这是为了打开配置环境的文件,
6> 开始配置,可以把下面的直接粘贴到打开的配置文件的最后面,修改文件路径和jdk就行了,
export JAVA_HOME=/home/zhao/tools/jdk1.6.0_38
export JRE_HOME=/home/zhao/tools/jdk1.6.0_38/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
7> 使用sudo . /etc/profile生成有效文件
8> 用javac 检测是否配置成功
5.Hadoop单机安装
1>把下载好的hadoop存放到自己的文件夹下,然后开始配置hadoop环境
用命令sudo gedit /etc/profile打开配置文件在文件最后加上下面的配置,其实就是之前配置jdk的那个文件;
export HADOOP_HOME=/opt/hadoop-1.0.3
export PATH=$HADOOP_HOME/bin:$PATH
保存最后就可以了,
2>从新启动虚拟机到解压的文件下bin文件下找到start-all.sh文件双击启动,然后用命令jps查看系统进程,但是由于是单机版所以NameNode和JobTracker都没有启动所以看不到什么,可以查看HDFS系统
输入命令 hadoop fs –ls就可以看到
表示单机版安装成功;
6,伪分布是安装
伪分布即“单机版集群”
伪分布主要在单机版的基础上配置三个文件:core-site.xml,mapred-site.xml,hdfs-site.xml;
在配置之前需要实现ssh无密码登陆;实现无密码登陆的方式如下:
1> ssh配置
执行获得ssh服务的命令sudo apt-get install openssh-server
2> 通过root权限开始安装
sudo apt-get install openssh-server
3> 更新系统
sudo apt-get update
开始配置上面的三个文件,
core-site.xml:
授权命令: sudo chmod 755 /home/zhao/tools/hadoop-1.0.3/hadooptmp/hdfs/data;这个授权给了data文件夹。
第一次启动要格式化hadoop namenode –format;
安装之后用jps 测试看五个节点是否都启动了
用hadoop dfs –ls测试HDFS;
创建一个文件然后通过dfs命令能看到,我这里有三个服务是因为我创建了三个。
7,分布式安装
首先需要至少三个虚拟机(为了实现分布式集群)
创建是三个虚拟机ubuntu1(master),ubuntu2(slaves),ubuntu3(slaves),安装好jdk,共享工具。
开始安装:
1> 配置hosts文件:只给master配置master通通过配置的ip将实现master管理slaves,
配置ip在虚拟机上是每个虚拟机的ip。所以通过ifconfing可以获得每个虚拟机的ip。
Slaves中配置各个虚拟机的名字
2> 修改hosts文件
把三个对应的虚拟机ip和名字配置正确。
3> 配置ssh免密码连入
(1) 每个结点分别产生公私密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 注:这里还创建了一个.ssh文件夹的在home/user目录下。通过ls能看到,
以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:
id_dsa.pub是公钥,id_dsa是私钥,紧接着将公钥文件复制成authorized_keys文 件,这个步骤是必须的,过程如下:
Id_dsa.pub>>authorized_keys
其他的节点和这个节点一样做一遍;
(2) 让主结点(master)能通过SSH免密码登录两个子结点(slave)
为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样
当master就可以顺利安全地访问这两个slave结点了。操作过程如下:
剩下的节点同上一样操作;
4> 下来就开始测试
cd .ssh ssh Ubuntu1
表示安装成功;其它的节点一样测试;
文件夹权限.ssh 必须是700,里面的文件必须是600
可以通过浏览器公测这里不在说明;
四,Hadoop集群测试
利用hadoop-1.0.3-examples.jar统计单词数量:
1> 把写好的文件放大home根目录下,然后在HDFS中建文件夹input
hadoop fs -mkdir /user/zhao/input (/user/zhao其实是HDFS的目录)
2> 把本地home下的文件上传到HDSF下的input路径
hadoop fs -put /home/zhao/test.txt /user/zhao/input
/home/zhao/test.txt(是虚拟机中存放文件的本地路径)/user/zhao/input是目的路径
3> 可以用hadoop fs -ls /user/zhao/input/ 查看上传是否成功
也可以查看上传之后文件的内容: hadoop dfs -cat /user/zhao/input/test.txt
4> 运行hadoop-examples-1.0.3.jar开始统计单词
cd /home/zhao/tools/hadoop-1.0.3
hadoop jar hadoop-examples-1.0.3.jar wordcount /user/zhao/input/test.txt /user/zhao/output
计算完成;
5> hadoop dfs –text /user/zhao/output/part-r-00000
到这里hadoop三个节点的安装就结束测试就成功了。