Hadoop 集群安装
准备有2台主机, 登陆到2台(或者多台)服务器 修改 /etc/hosts,内容如下
多台服务器,可用 salt 相关命令批管理。
- 192.168.33.33 namenode
- 192.168.33.10 datanode
创建 Hadoop 用户组
groupadd hadoop
useradd -g hadoop hadoop
配置 namenode 免密登陆 datanode
ssh-keygen -t rsa
一路回车,生成公钥- 把
.ssh/id_rsa.pub
的内容写入到 datanode 的~/.ssh/.ssh/authorized_keys
- 修改 datanode 目录权限
chmod 600 .ssh chmod 700 .ssh/.ssh/authorized_keys
如果不成功,就是
/etc/ssh/sshd_config
的某些配置不正确
在 namenode/datanode 分别安装 java 环境
yum install java java-devel
安装 hadoop-2.9.0
hadoop 的安装为绿色安装。规划安装目录为 /hadoop-2.9.0
- 下载
wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz
修改配置文件 /hadoop-2.9.0/etc/hadoop/
- slaves
添加 datanode, 每行一行,本例中: datanode
- core-site.xml
1 | <configuration> |
- hdfs-site.xml
1 | <configuration> |
- mapred-site.xml 首先要
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
1 | <configuration> |
- yarn-site.xml
1 | <configuration> |
- hadoop-env.sh
1 | export JAVA_HOME=/usr/lib/jvm/java-openjdk |
把 namenode 的 hadoop 软件发送到各个datanode
1 | tar -zcf ./hadoop-2.9.0.tar.gz ./hadoop-2.9.0 |
设置 JAVA_HOME
1 | #set java environment |
格式化文件系统
hdfs namenode -format
启动
1 | start-dfs.sh |
成功后通过 jps 命令可以在 namenode 看到
1 | NameNode、 |
在 datanode 通过 jps 可以看到
1 | DataNode |
参考:
QA
开启分布式后,运行 job 会感觉慢?
因为自己的机器内存不足,所以开发测试情况下,建议用单机模式。
如何让 system.out.println() 打印到控制台?
默认是可以打印出的,如果没有打印出,应该是之前配置过 mapred-site.xml。 把里面的配置删掉或者注释掉,就可以打印到控制台了。