在mac上搭建hadoop伪分布式
操作系统: 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 |
- 由于我将hadoop放在
/usr/local/
目录下,所以需要更改hadoop文件夹权限
sudo chown -R zxy:admin /usr/local/hadoop-2.7.7 |
2. 配置SSH
ssh-keygen -t rsa -P "" |
3. 伪分布式配置
core-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/core-site.xml
<configuration> |
-
fs.defaultFS HDFS 的NameNode地址
-
hadoop.tmp.dir hadoop 临时文件地址,自己指定
hdfs-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<configuration> |
- dfs.replication HDFS文件存储的副本个数,默认3。因为我们这只有一个节点,所以设置1.(单一节点至多存一份节点)
yarn-site.xml
修改 /usr/local/hadoop-2.7.7/etc/hadoop/yarn-site.xml
<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> |
- 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 |
- 开yarn
yarn-daemon.sh start resourcemanager |
- 开historyserver
mr-jobhistory-daemon.sh start historyserver |
- 可以用jps查看效果
jps |
- 测试
创建一个文件夹zxytest,里面随便放一个文件,上传到hdfs测试wordcount
hdfs dfs -put zxytest / |
- 关闭
mr-jobhistory-daemon.sh stop historyserver |
- 可视化地址
所有任务: http://localhost:8088/
DataNode: http://localhost:50070/
历史服务器: http://localhost:19888/
更新
由于新版可以在UI界面直接处理文件夹,所以我把版本升到3.2.1~
但是在网页界面访问数据使用的用户名,默认值是一个不真实存在的用户(dr.who),此用户权限很小,不能访问不同用户的数据,这保证了数据安全。为了方便,我选择修改 core-site.xml
,改为自己的用户名,这样就能直接增删改了~
<property> |