hadoop分布式快速搭建
1.配置主节点与从节点的ssh互信;
【其中在主从节点主机的/etc/hosts文件中需绑定主机名ip间的映射关系;
如,192.168.1.113 node0
192.168.1.108 node1
192.168.1.190 node2
】
2.配置各节点jdk环境;
3,修改${HADOOP_HOME}/conf/hadoop-env.xml,core-site.xml,hdfs-site.xml,mapred-site.xml;如下
修改core-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>hadoop.tmp.dir</name>
<value>/root/app/hadoop/hadooptmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://node0:9000</value>
</property>
</configuration>
修改hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Put site-specific property overriders in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>node0:9001</value>
</property>
</configuration>
上面是主节点配置,拷贝主节点hadoop主目录到从节点即可
4.在主节点格式化namenode文件系统;
hadoop namenode -format
启动hadoop即可;
状态查看
案例测试,
单词统计,
hadoop fs -ls
touch file01 file02
echo hello hadoop file01
echo hadoop hi
hadoop fs -put ./* input
切换到${HADOOP_HOME}下执行
hadoop jar hadoop-xample.jar wordcount input output
hadoop fs -ls output
注意点;
hadoop分布式系统2个重要的目录结构,一个是namenode上名字空间的存放,一个是datanode数据块存放,还有其他的文件存放,这些文件的存放都是基于hadoop.tmp.dir存储的.
namenode的名字空间存放位置
${hadoop.tmp.dir}/dfs/name
datanode数据块的存放位置
${hadoop.tmp.dir}/dfs/data
hadoop.tmp.dir目录可以不存在,hadoop系统会自动生成,
core-site.xml 文件fs.default.name设置namenode位于哪个机器上,
格式hdfs://node0:90000
mapred-site.xml文件mapred.job.tracker指定jobtracker位于那台机器上.
6大进程;
namenode,datanode,jobtracker,tasktracker,secondarynamenode,jps;
问题warning:$HADOOP_HOME is deprecated
解决,编辑/etc/profile
添加export HADOOP_HOME_WARN_SUPPRESS=TRUE