一. 安装JDK,配置环境JAVA环境变量
exportJAVA_HOME=/home/jdk1.6.0_27
exportJRE_HOME=/home/jdk1.6.0_27/jre
exportANT_HOME=/home/apache-ant-1.8.2
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
二. 安装Hadoop-1.0.3
- 1. 下载hadoop文件,地址为:http://hadoop.apache.org/coases.html,下载完成后解压hadoop-1.0.3.tar.gz
sudotar -xzf hadoop-1.0.3.tar.gz
- 2. 配置Hadoop环境变量
exportHADOOP_INSTALL=/home/hadoop-1.0.3
exportPATH=$PATH:$HADOOP_INSTALL/bin
- 3. 查看hadoop版本
输入 hadoop version命令后输入下图,则安装hadoop成功
- 4. 修改配置文件
- a) 解压hadoop-1.0.3/hadoop-core-1.0.3.jar
- b) 去解压后的hadoop-core-1.0.3文件夹下,复制文件core-default.xml,hdfs-default.xml,mapred-default.xml三个文件到hadoop-1.0.3/conf/下,删除hadoop-1.0.3/conf/文件夹下的core-site.xml,hdfs-site.xml,mapred-site.xml,将复制过来的三个文件的文件名中的default修改为site
- c) 在hadoop-1.0.3文件夹同级创建文件夹hadoop,打开core-site.xml文件,修改属性节点下的name节点为hadoop.tmp.dir对应的value节点,修改为/home/${user.name}/hadoop/hadoop-${user.name}这样hadoop生成的文件会放入这个文件夹下.修改name节点为fs.default.name对应的value节点,修改为hdfs://localhost:9000/
打开mapred-site.xml文件,修改property节点下name为mapred.job.tracker对应的的value, 改为:localhost:9001
三. 安装ssh
- 1. 执行命令安装ssh:sudo apt-get install ssh
- 2. 基于空口令创建一个新SSH密钥,以启用无密码登陆
- a) ssh-keygen-t rsa -P ‘‘ -f ~/.ssh/id_rsa
b) cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
- 3. 测试
sshlocalhost
输入yes
再次输入ssh localhost
成功之后,就不需要密钥
四. 格式化HDFS文件系统
输入指令:
hadoopnamenode –format
五. 启动和终止守护进程
启动和终止HDFS和MapReduce守护进程,键入如下指令
启动start-all.sh(start-dfs.sh,start-mapred.sh)
出错了,JAVA_HOME is not set
需要修改文件,打开hadoop-1.0.3/conf/hadoop-env.sh
将红线以内部分注释解开,修改为本机JAVA_HOME
再次执行启动命令start-all.sh
停止stop-all.sh(stop-dfs.sh,stop-mapred.sh)
到此,hadoop就已经安装完成了
六. Hadoop文件系统
- 1. 查看hadoop所有块文件
执行命令:
hadoopfsck / -files –blocks
此结果显示,hadoop文件系统中,还没有文件可以显示
- 2. 将文件复制到hadoop文件系统中
- a) 在hadoop文件系统中创建文件夹,执行命令:
hadoopfs –mkdir docs
- b) 复制本地文件到hadoop文件系统中执行命令:
hadoopfs -copyFromLocal docs/test.txt \
hdfs://localhost/user/docs/test.txt
- c) 复制hadoop文件系统中的文件回本地,并检查是否一致
复制:hadoop fs -copyToLocal docs/test.txt docs/test.txt.bat
检查:md5 docs/test.txt docs/text.txt.bat
检查结果若显示两个md5加密值相同,则文件内容相同。
- d) 查看HDFS文件列表
执行命令:
hadoopfs –ls
e) 再次查看文件系统文件块
执行命令:
hadoopfsck / -files –blocks
此处为文件备份数量,可以调整,打开hadoop-1.0.3/conf/hdfs-site.xml文件,
此处修改文件备份数量
七. 安装zookeeper
- 1. 准备
zookeeper-3.4.3.tar.gz
下载地址:
http://apache.etoak.com/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz
- 2. 安装zookeeper
执行命令:tar zookeeper-3.4.3.tar.gz解压安装文件
- 3. 环境变量
执行sudo vim /etc/profile
打开后加入
exportZOOKEEPER_HOME=/home/zookeeper-3.4.3
exportPATH=$PATH:$ZOOKEEPER_HOME/bin
执行命令 source /etc/profile 让环境变量生效
- 4. 配置zookeeper
打开zookeeper /conf/coo.cfg
###以下是文件内容
#zookeeper基本时间单元(毫秒)
tickTime=2000
#zookeeper存储持久数据的本地文件系统位置
dataDir=/home/xxx/zookeeper
#zookeeper用户监听客户端连接的端口
clientPort=2181
###文件内容结束
保存文件后切换到 zookeeper/bin/目录下
执行./zkServer.sh start
执行./zkServer.sh status ,
echostat | nc –q 1 localhost,
echostat | nc localhost 2181 查看状态
执行 echo ruok | nc localhost 2181
执行结果为 imok 是I am ok的意思表示安装并启动成功
关闭zookeeper
./zkServer.shstop
八. 安装hbase
- 1. 准备
hbase-0.92.1.tar.gz
下载地址:
http://labs.mop.com/apache-mirror/hbase/hbase-0.92.1/hbase-0.92.1.tar.gz
- 2. 安装hbase
执行命令 tar hbase-0.92.1.tar.gz解压安装文件
- 3. 环境变量
执行sudo vim /etc/profile
打开后加入
exportHBASE_HOME=/home/hbase-0.92.1
exportPATH=$PATH:$HBASE_HOME/bin
执行命令 source /etc/profile 让环境变量生效
- 4. 配置hbase
- a) 打开hbase/conf/hbase-env.sh 加入如下内容
export JAVA_HOME=/home/jdk1.6.0_26
export HBASE_MANAGERS_ZK=false
export HBASE_HOME=/home/hbase-0.92.1
export HADOOP_INSTALL=/home/hadoop-1.0.3
修改HBASE_OPTS为:exportHBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
- b) 打开hbase/conf/hbase-site.xml加入如下内容
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>localhost:60000</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
<description>Theport master should bind to.</description>
</property>
</configuration>
打开regionservers文件放入localhost
先把hadoop启动起来 执行start-all.sh
转入hbase/bin/目录下
执行./start-hbase.sh 脚本,启动hbase
启动成功后执行hbase shell进去shell模式下
执行create ‘test’, ‘data’创建表。执行结果如下:
执行list查询表,执行结果如下:
这样我们就安装成功了
九. Eclipse结合MapReduce
- 1. 准备
Eclipse IDE version=3.7
org.apache.hadoop.eclipse.merit_1.1.0.jar
将org.apache.hadoop.eclipse.merit_1.1.0.jar复制到eclipse安装目录的Plugin目录下
启动hadoop,start-all.sh
启动eclipse
- 2. 配置MapReduce
点击菜单栏的WindowàpreferencesàHadoopMap/Reduce
配置hadoop目录
- 3. 打开MapReduce视图
打开IDE的WindowàShowViewàOther
打开Map/Reduce Locations
在视图中创建一个新的Hadoop Location
将Map/Reduce Master(Job Tracker的IP和端口)中的配置,Host和Port修改为配置文件hadoop-1.0.3/conf/mapred-site.xml中的mapred.job.tracker属性的值
选中DFS Master(Name Node的IP和端口),配置其中Host和Port,修改为配置文件hadoop-1.0.3/conf/core-site.xml中的fs.default.name属性的值
username默认的就行了,
点击finish
项目栏出现树状菜单,标识设置成功
这样就可以在eclipse中使用hadoop的文件系统了
- 4. 创建Map/Reduce项目
FileàNewàOther
输入Map/Reduce Projectànext
输入项目名称àfinish
创建成功
创建Mapper和Reduce类,
Mapper的创建:
选中项目中的包,右键àNewàOther
输入MapperàNext
输入类名àfinish,该类自动继承
org.apache.hadoop.mapred.MapReduceBase这个类
Reduce的创建和Mapper是一样的
最后导入WordCount这个类此类位置
从hadoop自带的$HADOOP_HOME/src/examples/org/apache/hadoopexamples/WordCount.java
将此文件copy到刚创建的MapReduce项目中
- 5. 运行WordCount
点击项目右键àRun AsàRun on Hadoop
输入WordCountà点击OK
选中刚刚配置的Map/Reduce Location点击finish
控制台输出
这个表示缺少两个参数
点击RunConfigurations,选中Arguments
编写两个参数,一个输入文件所在目录,一个输出文件所在目录,输出文件所在目录项目会自动帮我们创建,输入文件目录需要我们自己手动创建.
首先在local创建一个文件夹,再创建两个或两个以上文件
- a) mkdirinput
- b) cdinput
- c) touchfile1
- d) touchfile2
- e) 打开文件1 vim file1,输入”Hello World”, 打开文件2 vim file2
输入”Hello Hadoop”
- f) cd ..
- g) 将input文件夹下的文件放入hadoop文件系统中hadoop fs –put input input
- h) 在Arguments中的Program arguments中输入两个参数,一个输入文件夹,一个输出文件夹,/user/input /user/output,输出文件夹项目会帮我们创建
- i) 再次运行项目
这样证明项目正常运行了
- j) 刷新eclipse中的文件系统目录
- k) 双击part-r-00000
这样表示input文件夹下的所有文件包含内容信息