不可能放下该文件)来查找出文件中的重复行?
思路 1:
读出第一行,然后读出第二行,比较第一行是否和第二行重复,然后从内存中清除第
二行,再读入第三行与第一行比较,然后再清除第三行,当第一行与最后一行比较完后,
从第二行开始再与之后的行比较,类似于冒泡排序的思想。
思路 2:
将大文件拆分为小文件,读出一行数据,求 hash 码,把大文件文成 n 个小文件,那么
每一行的 hash 码对 n 取模,得出结果相同的行放入一个文件中。
Hadoop 的三大核心模块
分布式存储系统 HDFS(Hadoop Distributed File System),提供了高可靠性、高扩展性
和高吞吐率的数据存储服务;
分布式计算框架 MapReduce,具有易于编程、高容错性和高扩展性等优点;
分布式资源管理框架 YARN(Yet Another Resource Management),负责集群资源的管
理和调度。
Hadoop 的生态系统中包含多种技术:比如 Hive、Hbase、Spark 等。
[root@node01 software]# tar xf hadoop-2.6.5.tar.gz
[root@node01 software]# mv hadoop-2.6.5 /opt/sxt/
[root@node01 hadoop-2.6.5]# vi /etc/profile
export HADOOP_PREFIX=/opt/sxt/hadoop-2.6.5
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
[root@node01 hadoop-2.6.5]# . /etc/profile
[root@node01 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#生成了.ssh 目录
[root@node01 ~]# ll -a
drwx------ 2 root root 4096 7 月 4 12:53 .ssh
[root@node01 ~]# cd .ssh
[root@node01 .ssh]# ll
总用量 12
-rw------- 1 root root 672 7 月 4 12:53 id_dsa #私钥
-rw-r--r-- 1 root root 601 7 月 4 12:53 id_dsa.pub #公钥
-rw-r--r-- 1 root root 802 7 月 3 20:47 known_hosts
#想登陆哪台机器,就把公钥 copy 给哪台机器,登陆自身免密执行如下命令
[root@node01 .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[root@node01 hadoop]# cd /opt/sxt/hadoop-2.6.5/etc/hadoop/
#以下 3 个文件中加入 JAVA_HOME
[root@node01 hadoop]# vi hadoop-env.sh
[root@node01 hadoop]# vi mapred-env.sh
[root@node01 hadoop]# vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_67
[root@node01 hadoop]# vi core-site.xml
<configuration>
<!--设置 namenode 所在节点-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!--设置 hadoop 存放数据的临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/pseudo</value>
</property>
</configuration>
[root@node01 hadoop]# vi hdfs-site.xml
<configuration>
<!--设置副本数,不能超过节点数-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!—设置 secondaryNode 在哪个节点-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
</configuration>
[root@node01 hadoop]# vi slaves
node01
[root@node01 hadoop]# hdfs namenode –format
#成功信息:
Storage directory /var/sxt/hadoop/pseudo/dfs/name has been successfully formatted.
[root@node01 hadoop]# cd /var/sxt/hadoop/pseudo/dfs/name/current
[root@node01 current]# ll
总用量 16
-rw-r--r-- 1 root root 320 7 月 4 13:36 fsimage_0000000000000000000
-rw-r--r-- 1 root root 62 7 月 4 13:36 fsimage_0000000000000000000.md5
-rw-r--r-- 1 root root 2 7 月 4 13:36 seen_txid
-rw-r--r-- 1 root root 204 7 月 4 13:36 VERSION
[root@node01 current]# vi VERSION
#Tue Jul 04 13:36:11 CST 2017
namespaceID=160288852
clusterID=CID-e2d83b00-0c46-45b2-9f86-e824c42795e8 #集群的 ID
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1597373193-192.168.9.11-1499146571542
layoutVersion=-60
[root@node01 current]# start-dfs.sh
Starting namenodes on [node01]
node01: starting namenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-namenode-node01.out
node01: starting datanode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-datanode-node01.out
Starting secondary namenodes [node01]
node01: starting secondarynamenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-node01.out
[root@node01 current]# jps
3375 SecondaryNameNode
3241 DataNode
3481 Jps
3136 NameNode
[root@node01 current]# cd /var/sxt/hadoop/pseudo/dfs/data/current
[root@node01 current]# vi VERSION
#Tue Jul 04 13:42:12 CST 2017
storageID=DS-4fd6b46c-6567-4875-9dcf-17577873d372
#与 name 下的 VERSION 中的 clusterID 相同,否则 NN 与 DN 不会通信
clusterID=CID-e2d83b00-0c46-45b2-9f86-e824c42795e8
cTime=0
datanodeUuid=e18d8595-35b6-40b3-9dde-abc56f90c77b
storageType=DATA_NODE
layoutVersion=-56