操作系统: macOS Mojave 10.14.5
JDK : 1.8
hadoop: 2.7.7
1. Java和Hadoop安装
下载和安装相信都没问题
注意的就是:
- 环境变量设置好,我是mac所以javahome是$(/usr/libexec/java_home);我是zsh所以修改.zshrc,修改完别忘了source。
#JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
#HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 由于我将hadoop放在
/usr/local/
目录下,所以需要更改hadoop文件夹权限
sudo chown -R zxy:admin /usr/local/hadoop-2.7.7
2. 配置SSH
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 测试
ssh localhost
3. 伪分布式配置
core-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.7/data/tmp</value>
</property>
</configuration>
-
fs.defaultFS HDFS 的NameNode地址
-
hadoop.tmp.dir hadoop 临时文件地址,自己指定
hdfs-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- dfs.replication HDFS文件存储的副本个数,默认3。因为我们这只有一个节点,所以设置1.(单一节点至多存一份副本)
yarn-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 开启聚合日志 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://localhost:19888/jobhistory/logs</value>
</property>
</configuration>
- arn.log-aggregation-enable 开启日志聚合
- yarn.resourcemanager.hostname yarn的ResourceManager地址
mapred-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
</configuration>
- mapreduce.framework.name 采用yarn管理MR
- mapreduce.jobhistory.address 历史服务器端口地址
- mapreduce.jobhistory.webapp.address 历史服务器web端地址
检查JAVA_HOME
hadoop-env.sh、mapred-env.sh、yarn-env.sh,在这三个文件检查是否添加JAVA_HOME路径,如下:
export JAVA_HOME=$JAVA_HOME
4. 使用
- 开HDFS
第一次使用要格式化(仅限第一次使用时,以后要格式化需删除log、data目录下的文件)
hadoop namenode -format
开启namenode、datanode
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
- 开yarn
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
- 开historyserver
mr-jobhistory-daemon.sh start historyserver
- 可以用jps查看效果
jps
35953 JobHistoryServer
32930
35682 NodeManager
35990 Jps
35559 DataNode
35624 ResourceManager
35502 NameNode
- 测试
创建一个文件夹zxytest,里面随便放一个文件,上传到hdfs测试wordcount
hdfs dfs -put zxytest /
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /zxytest /zxyout
- 关闭
mr-jobhistory-daemon.sh stop historyserver
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanager
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
- 可视化地址
所有任务: http://localhost:8088/
DataNode: http://localhost:50070/
历史服务器: http://localhost:19888/