1、配置ssh免密登录:
2、CentOS7安装JDK,配置$JAVA_HOME。
安装JDK1.8.0
yum install java-1.8.0-openjdk-devel.x86_64 -y
3、Apache Hadoop官网下载Hadoop2.7.6文件,Master服务器可以SSH免密登录到其它Slave服务器中:
wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
tar xzvf hadoop-2.7.6.tar.gz
注:新增用户安装Hadoop,否则后续启动时会提示无权访问的问题。
4、配置$HADOOP_HOME
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java
export HADOOP_HOME=/opt/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
5、查看Hadoop安装版本
hadoop version
6、配置core-site.xml
注:配置文件路径:hadoop-2.7.6/etc/hadoop/
<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1:9000/</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.6/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
</configuration>
7、配置hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.1.210:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value><!-- 主+子 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.6/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.6/hdfs/data</value>
</property>
</configuration>
8、配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9、配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value> <!-- 主节点名称,不要写IP,否则8088页面不显示节点信息 -->
</property>
</configuration>
注:没有配置yarn.resourcemanager.hostname选项,访问8088时看不到子节点。
以上操作只在主节点master上执行,然后格式化namenode,只格式化一次。命令如下:
hadoop namenode -format
系统自动在hdfs/name/下创建current目录,新建文件如下:
fsimage_0000000000000000000 fsimage_0000000000000000000.md5 seen_txid VERSION
至此,Hadoop主节点配置完成。
- NameNode地址默认为50070
- ResourceManager地址默认为8088
10、配置Hadoop子节点,复制hadoop-2.7.6.tar.gz文件到子节点与主节点同样目录解压,在解压的hadoop目录中创建tmp、hdfs/name、hdfs/data。
11、执行步骤4、5,复制主节点中的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves文件到子节点同样目录中。
12、在主节点启动Hadoop集群
启动
$HADOOP/sbin/start-dfs.sh
$HADOOP/sbin/start-yarn.sh
停止
$HADOOP/sbin/stop-dfs.sh
$HADOOP/sbin/stop-yarn.sh
后台进行
- SecondaryNameNode
- ResourceManager
- DataNode
- NameNode
- NodeManager
13、测试Hadoop集群
使用$HADOOP/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar,测试wordcount功能(统计字数)。
14、新建HDFS文件系统,用于计算的文件夹
输入数据
hdfs dfs -mkdir -p /data/input
输出结果
hdfs dfs -mkdir -p /data/output
15、上传本地文件到HDFS文件系统/data/input目录中
上传文件
hdfs dfs -put my_wordcount.txt /data/input
查看文件列表
hdfs dfs -ls /data/input
16、执行分布式计算
hadoop jar /opt/hadoop-2.7.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /data/input/my_wordcount.txt /data/output/my_wordcount
17、查看计算结果
查看计算结果目录
hdfs dfs -ls /data/output/my_wordcount/
查看结果内容
hdfs dfs -cat /data/output/my_wordcount/part-r-00000
18、下载计算结果
hdfs dfs -get /data/output/my_wordcount/part-r-00000 result.txt