目录
开始之前:
- 三个虚拟机节点(Node):
创建三个Ubuntu节点。 它们将在本指南中称为node-master,node1和node2。 除非另有说明,否则请从node-master运行本指南中的步骤。 - 安装Java
每台机器已经安装好Java程序。 - 创建hadoop账号
确保每个Node使用相同的用户名,本例使用“hadoop”作为示例。 - node-master可以免密码登录node1和node2
以下步骤使用每个节点的示例IP。 根据您的配置调整每个示例:
node-master:192.168.99.178
node1:192.168.99.179
node2:192.168.99.180
安装Hadoop:
上传hadoop-2.9.2.tar.gz到node-master,然后执行
tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 /usr/local
结果如下:
设定环境变量
编辑文件 ~/.bash_profile
export HADOOP_HOME=/usr/local/hadoop-2.9.2/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
确认安装 hadoop version
Hadoop 配置文件:
配置 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-master:9000</value>
</property>
</configuration>
配置 hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/nn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/dn</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
配置 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置 yarn-site.xml
<configuration>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置slaves
node1
node2
配置hadoop-env.sh
将行
export JAVA_HOME=${JAVA_HOME}
更改为
export JAVA_HOME=/usr/local/jdk1.8.0_211/
创建Name Node和Data Node的相关目录
在三台Node上依次执行
mdkir -p ~/data/dn
mkdir -p ~/data/nn
内存分配:
内存默认值不适合RAM少于8GB的节点。以下例子2GB RAM节点的示例配置。
2GB节点的示例配置
yarn-site.xml
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1536</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>1536</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>128</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
mapred-site.xml
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>256</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>256</value>
</property>
复制Hadoop:
将Hadoop拷贝到node1和node2
拷贝环境变量
scp .bash_profile hadoop@node2:/home/hadoop
在node1和node2上建立数据目录
mkdir -p data/nn
mkdir -p data/dn
格式化HDFS
hdfs namenode -format
启动HDFS
node-master上运行 start-dfs.sh
使用jps检查各个节点
node-master
node1
node2
运行Yarn
node-master 运行 start-yarn.sh
node-master jps
node1 jps
node2 jps
检查运行结果:
HDFS:
执行以下命令
hdfs dfsadmin -report
UI界面
打开http://node-master:50070Yarn
yarn node -list
UI界面
http://node-master:8088/cluster
测试Hadoop程序:
yarn jar /usr/local/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount "/usr/*" output
http://node-master:8088/cluster 查看Map Reduce运行结果。