安装环境

  vmvare 11

  centos 6.5

wKiom1V-6D7AzhFFAABZ6HXYQmw272.jpg

安装开始:

一   安装jdk

  将下载的  .bin格式的JDK传输到Linux  家目录下的  Hadoop 文件夹,将hadoop安装包也放到这个文件夹

wKioL1V-6iHB29C6AAJ5iA4EKYk965.jpg

wKiom1V-6HXQRSQYAAKhFgH5-kM921.jpg

wKioL1V-6iLiGFLZAAPz-cWvs64462.jpg

进入JDK安装目录建立一个软连接

[root@CentOS-6 java]# ln -s jdk1.6.0_27 java

wKiom1V-6LSB2xi4AADS56e5lvE678.jpg




[root@CentOS-6 java]# cd 

进入家目录

编辑  .bashrc


wKiom1V-6PuihigTAAB04jldr1k491.jpg


将hadoop目录解压到/usr/目录

让环境变量生效

wKioL1V-6qji8WwhAAAuFQ0t0pI579.jpg


二  设置ssh等效性

配置ssh等效性


免密码ssh设置 --不然每启动一次就需要输入一次密码
现在确认能否不输入口令就用ssh登录localhost: 
# ssh localhost 
如果不输入口令就无法用ssh登陆localhost,执行下面的命令: 

[root@CentOS-6 ~]# ssh-keygen -t rsa

wKiom1V-6TfCb8M5AAGrDX275ok350.jpg


[root@CentOS-6 ~]# cd .ssh/
[root@CentOS-6 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts

wKiom1V-6XLBgkZiAABFoudKIJU190.jpg

[root@CentOS-6 .ssh]# cat id_rsa.pub >authorized_keys
[root@CentOS-6 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@CentOS-6 .ssh]# 

wKiom1V-6aKRk3BRAAB3nN9GYcU168.jpg

三 安装hadoop软件

将hadoop压缩包解压到 /usr/目录下

wKiom1V-6hyzLiH0AAAy60m1Wfc039.jpg

建立一个软连接

wKioL1V-69nh9FtxAAI0Ps6Py9o669.jpg



编辑hadoop配置文件

进入

wKiom1V-6jvTWO3OAAAluU0THFg914.jpg


编辑三个文件core-site.xml 、hdfs-site.xml和mapred-site.xml 

 1)编辑 core-site.xml 在<configuration> </configuration>之间增加
 <property> 
 <name>fs.default.name</name> 
 <value>hdfs://localhost:9000</value> 
 </property> 
 <property> 
 <name>hadoop.tmp.dir</name> 
 <value>/tmp/hadoop/hadoop-${user.name}</value> 
 </property> 
 2)编辑hdfs-site.xml 在<configuration> </configuration>之间增加
 <property> 
 <name>dfs.replication</name> 
 <value>1</value> 
 </property> 
 3)编辑mapred-site.xml 在<configuration> </configuration>之间增加
 <property> 
 <name>mapred.job.tracker</name> 
 <value>localhost:9001</value> 
 </property>

wKioL1V-7D-ws9FQAAEFCMbrzKI084.jpg

wKiom1V-6pLh15RmAADc9gn019E441.jpg

wKioL1V-7D-xka03AADwe7e3YLo801.jpg


进入hadoop安装目录

wKiom1V-6tGzuJPrAAA3i0fyaF4027.jpg

格式化分布式文件系统

格式化名称节点:建立一系列结构,存放HDFS元数据

wKioL1V-7LTCbrqBAAApZypHdsc817.jpg

[root@CentOS-6 bin]#  ./hadoop namenode -format

wKioL1V-7N-C_JRsAAYSuODgm08368.jpg

启动hadoop

[root@CentOS-6 bin]# ./start-all.sh

wKiom1V-62OTCoiXAAHV68KOesw060.jpg


检测守护进程启动情况

[root@CentOS-6 bin]# jps
3884 NameNode
4180 JobTracker
4111 SecondaryNameNode
4441 Jps
[root@CentOS-6 bin]# 


wKiom1V-66Li-rP0AABalrjsDkY026.jpg


启动过程出现错误 DataNode 没有启动成功

查看日志

wKioL1V-7ZXRfF9EAAL4tbTFHZA159.jpg

wKiom1V-6-mjp2osAAcRWKN-s6I070.jpg

从日志中可以看出 java.net.UnknownHostException 异常

java.net.UnknownHostException: CentOS-6.5: CentOS-6.5

        at java.net.InetAddress.getLocalHost(InetAddress.java:1360)

        at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.getHostname(MetricsSystemImpl.java:481)

        at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSystem(MetricsSystemImpl.java:412)

        at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:408)

        at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:152)

        at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:133)

        at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:40)

        at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1650)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1669)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1795)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1812)

Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是CentOS-6.5

,然后在/etc/hosts文件中进行映射的时候,没有找到

查看一下/etc/sysconfig/network文件: 保存的是hostname 也就是主机名 。

看看主机名是什么,然后修改 /etc/hosts文件,修改成主机名。

wKioL1V-7cLzcOoOAABhSKpWk78814.jpg

修改后的hosts文件

wKiom1V-7FKwhx_bAABvr8cNqfs247.jpg

重启网络

[root@CentOS-6 ~]# /etc/rc.d/init.d/network restart  

重新格式化HDFS

wKiom1V-7ILjIr_pAAXKaV6eTDw990.jpg

wKioL1V-7i-zFjL9AAFwBaP3eHQ203.jpg

启动集群

wKioL1V-7nLQX3SyAAHSWa-sbZk808.jpg




开启成功

wKiom1V-7MWjdrnQAABkW639qNg608.jpg

进入虚拟机,打开浏览器,输入

http://192.168.141.2:50070

会看到节点存储信息

wKiom1V-7Qni-ZecAALROBLsev8779.jpg

wKioL1V-7raggUM1AAHKvYTXvHY200.jpg



到此安装结束









简单测试

[root@CentOS-6 ~]# hadoop fs -ls
ls: Cannot access .: No such file or directory.
[root@CentOS-6 ~]# ls
anaconda-ks.cfg  hbase-0.94.16-security  install.log.syslog  模板  文档  桌面
Hadoop           installer               workspace           视频  下载
Hbase            install.log             公共的              图片  音乐
[root@CentOS-6 ~]# mkdir input
[root@CentOS-6 ~]# cd input/
[root@CentOS-6 input]# ls
[root@CentOS-6 input]# echo "hello world">test2.txt
[root@CentOS-6 input]# echo "hello hadoop">test1.txt
[root@CentOS-6 input]# ls
test1.txt  test2.txt
[root@CentOS-6 input]# hadoop fs -mkdir  input
[root@CentOS-6 input]# hadoop fs -ls
Found 1 items
drwxr-xr-x   - root supergroup          0 2015-04-19 17:15 /user/root/input
[root@CentOS-6 input]# hadoop fs -put test1.txt input
[root@CentOS-6 input]# hadoop fs -put test2.txt input
[root@CentOS-6 input]# hadoop fs -ls
Found 1 items
drwxr-xr-x   - root supergroup          0 2015-04-19 17:16 /user/root/input
[root@CentOS-6 input]# 

wKiom1V-7TnDH5klAAK09YHDqgo778.jpg


测试mapreduce

[root@CentOS-6 ~]# cd /usr/hadoop

[root@CentOS-6 hadoop]# hadoop jar hadoop-examples-1.2.1.jar wordcount input output
15/04/19 17:22:19 INFO input.FileInputFormat: Total input paths to process : 2
15/04/19 17:22:19 INFO util.NativeCodeLoader: Loaded the native-hadoop library
15/04/19 17:22:19 WARN snappy.LoadSnappy: Snappy native library not loaded
15/04/19 17:22:20 INFO mapred.JobClient: Running job: job_201504191711_0001
15/04/19 17:22:21 INFO mapred.JobClient:  map 0% reduce 0%
15/04/19 17:22:57 INFO mapred.JobClient:  map 50% reduce 0%
15/04/19 17:22:58 INFO mapred.JobClient:  map 100% reduce 0%
15/04/19 17:23:09 INFO mapred.JobClient:  map 100% reduce 100%
15/04/19 17:23:10 INFO mapred.JobClient: Job complete: job_201504191711_0001
15/04/19 17:23:10 INFO mapred.JobClient: Counters: 29
15/04/19 17:23:10 INFO mapred.JobClient:   Job Counters 
15/04/19 17:23:10 INFO mapred.JobClient:     Launched reduce tasks=1
15/04/19 17:23:10 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=63538
15/04/19 17:23:10 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0
15/04/19 17:23:10 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0
15/04/19 17:23:10 INFO mapred.JobClient:     Launched map tasks=2
15/04/19 17:23:10 INFO mapred.JobClient:     Data-local map tasks=2
15/04/19 17:23:10 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=11731
15/04/19 17:23:10 INFO mapred.JobClient:   File Output Format Counters 
15/04/19 17:23:10 INFO mapred.JobClient:     Bytes Written=25
15/04/19 17:23:10 INFO mapred.JobClient:   FileSystemCounters
15/04/19 17:23:10 INFO mapred.JobClient:     FILE_BYTES_READ=55
15/04/19 17:23:10 INFO mapred.JobClient:     HDFS_BYTES_READ=249
15/04/19 17:23:10 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=169962
15/04/19 17:23:10 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=25
15/04/19 17:23:10 INFO mapred.JobClient:   File Input Format Counters 
15/04/19 17:23:10 INFO mapred.JobClient:     Bytes Read=25
15/04/19 17:23:10 INFO mapred.JobClient:   Map-Reduce Framework
15/04/19 17:23:10 INFO mapred.JobClient:     Map output materialized bytes=61
15/04/19 17:23:10 INFO mapred.JobClient:     Map input records=2
15/04/19 17:23:10 INFO mapred.JobClient:     Reduce shuffle bytes=61
15/04/19 17:23:10 INFO mapred.JobClient:     Spilled Records=8
15/04/19 17:23:10 INFO mapred.JobClient:     Map output bytes=41
15/04/19 17:23:10 INFO mapred.JobClient:     CPU time spent (ms)=48340
15/04/19 17:23:10 INFO mapred.JobClient:     Total committed heap usage (bytes)=292167680
15/04/19 17:23:10 INFO mapred.JobClient:     Combine input records=4
15/04/19 17:23:10 INFO mapred.JobClient:     SPLIT_RAW_BYTES=224
15/04/19 17:23:10 INFO mapred.JobClient:     Reduce input records=4
15/04/19 17:23:10 INFO mapred.JobClient:     Reduce input groups=3
15/04/19 17:23:10 INFO mapred.JobClient:     Combine output records=4
15/04/19 17:23:10 INFO mapred.JobClient:     Physical memory (bytes) snapshot=324190208
15/04/19 17:23:10 INFO mapred.JobClient:     Reduce output records=3
15/04/19 17:23:10 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=1133568000
15/04/19 17:23:10 INFO mapred.JobClient:     Map output records=4
[root@CentOS-6 hadoop]# 

[root@CentOS-6 hadoop]# hadoop fs -ls
Found 2 items
drwxr-xr-x   - root supergroup          0 2015-04-19 17:16 /user/root/input
drwxr-xr-x   - root supergroup          0 2015-04-19 17:23 /user/root/output


[root@CentOS-6 hadoop]# hadoop fs -ls output
Found 3 items
-rw-r--r--   1 root supergroup          0 2015-04-19 17:23 /user/root/output/_SUCCESS
drwxr-xr-x   - root supergroup          0 2015-04-19 17:22 /user/root/output/_logs
-rw-r--r--   1 root supergroup         25 2015-04-19 17:23 /user/root/output/part-r-00000

[root@CentOS-6 hadoop]# hadoop fs -cat output/part-r-00000
hadoop 1
hello 2
world 1
[root@CentOS-6 hadoop]# 

 

运行结果

wKioL1V-7yez9iHBAABfB1DibfY685.jpg

数据其实就在 slave1 和 slave2 我们制定的位置

[hadoop@master conf]$ vim hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>


<name>dfs.data.dir</name>
<value>/data/hadoop</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

[root@CentOS-6 conf]# hadoop fs
Usage: java FsShell
           [-ls <path>]
           [-lsr <path>]
           [-du <path>]
           [-dus <path>]
           [-count[-q] <path>]
           [-mv <src> <dst>]
           [-cp <src> <dst>]
           [-rm [-skipTrash] <path>]
           [-rmr [-skipTrash] <path>]
           [-expunge]
           [-put <localsrc> ... <dst>]
           [-copyFromLocal <localsrc> ... <dst>]
           [-moveFromLocal <localsrc> ... <dst>]
           [-get [-ignoreCrc] [-crc] <src> <localdst>]
           [-getmerge <src> <localdst> [addnl]]
           [-cat <src>]
           [-text <src>]
           [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
           [-moveToLocal [-crc] <src> <localdst>]
           [-mkdir <path>]
           [-setrep [-R] [-w] <rep> <path/file>]
           [-touchz <path>]
           [-test -[ezd] <path>]
           [-stat [format] <path>]
           [-tail [-f] <file>]
           [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
           [-chown [-R] [OWNER][:[GROUP]] PATH...]
           [-chgrp [-R] GROUP PATH...]
           [-help [cmd]]

Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|jobtracker:port>    specify a job tracker
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.

The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]

[root@CentOS-6 conf]# 

[root@CentOS-6 conf]# hadoop dfsadmin
Usage: java DFSAdmin
           [-report]
           [-safemode enter | leave | get | wait]
           [-saveNamespace]
           [-refreshNodes]
           [-finalizeUpgrade]
           [-upgradeProgress status | details | force]
           [-metasave filename]
           [-refreshServiceAcl]
           [-refreshUserToGroupsMappings]
           [-refreshSuperUserGroupsConfiguration]
           [-setQuota <quota> <dirname>...<dirname>]
           [-clrQuota <dirname>...<dirname>]
           [-setSpaceQuota <quota> <dirname>...<dirname>]
           [-clrSpaceQuota <dirname>...<dirname>]
           [-setBalancerBandwidth <bandwidth in bytes per second>]
           [-help [cmd]]

Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|jobtracker:port>    specify a job tracker
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.

The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]

[root@CentOS-6 conf]# 

[root@CentOS-6 ~]# hadoop dfsadmin -report
Configured Capacity: 18536591360 (17.26 GB)
Present Capacity: 11065761792 (10.31 GB)
DFS Remaining: 11065618432 (10.31 GB)
DFS Used: 143360 (140 KB)
DFS Used%: 0%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 1 (1 total, 0 dead)

Name: 127.0.0.1:50010
Decommission Status : Normal
Configured Capacity: 18536591360 (17.26 GB)
DFS Used: 143360 (140 KB)
Non DFS Used: 7470829568 (6.96 GB)
DFS Remaining: 11065618432(10.31 GB)
DFS Used%: 0%
DFS Remaining%: 59.7%
Last contact: Sun Apr 19 17:37:09 CST 2015


[root@CentOS-6 ~]# 

wKiom1V-7buwCRzOAAH3C9EjK68045.jpg

可以使用帮助

刷新命令


[root@CentOS-6 ~]# hadoop dfsadmin -help refreshNodes

wKioL1V-75PRfQFtAAGblZx0xic284.jpg

归档命令 将多个小文件合并一个大文件
[hadoop@master ~]$ hadoop archive -archiveName files.har -p /user/hadoop/input
/user/hadoop
这里名字必须叫做 files.har
[hadoop@master ~]$ hadoop fs -cat /user/hadoop/files.har/part-0
hello hadoop
hello world

使得负载均衡

[root@CentOS-6 ~]# start-balancer.sh 
starting balancer, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-root-balancer-CentOS-6.5.out
[root@CentOS-6 ~]#