Hadoop环境搭建
|字数总计:1.4k|阅读时长:6分钟|阅读量:|
配置虚拟机环境
建立四台虚拟机,配置Hadoop的分布式集群。并且配置静态ip地址如下,最终实现master能够直接与三个节点ssh无密码联通。
| 主机名 |
ip地址 |
| master |
192.168.166.100 |
| node1 |
192.168.166.101 |
| node2 |
192.168.166.102 |
| node3 |
192.168.166.103 |
安装VMware虚拟机平台
略
新建虚拟机
略
安装CentOS-7系统
略
安装Java环境
略
克隆虚拟机
略
配置静态ip与hosts文件
略
配置ssh免密登陆
使用 ssh-keygen -t rsa 生成一对RSA公私钥,将公钥放在目标登录的服务器上,私钥放在本地。当ssh客户端发出请求,请求使用基于密钥的安全验证,服务器将先寻找公钥,并与传递过来的公钥做比较,若一致,则服务器使用公钥加密一个challenge并返回客户端,客户端通过私钥解密challenge并发送到服务器即可完成安全验证。
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
ssh-copy-id -i ~/.ssh/id_rsa.pub node3
Hadoop集群安装
(Master)上传解压Hadoop
tar -zxf hadoop-3.1.4.tar.gz -C /opt

如图,hadoop已解压到/opt目录下
(Master)配置configuration
后续所有配置文件均在如下目录
/opt/hadoop-3.1.4/etc/hadoop
vim编辑hadoop-env.sh文件如下

该文件无需配置,原因如下

core-site.xml
1 2 3 4 5 6 7 8 9 10 11 12
| <configuration> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> </property> </configuration>
|
hdfs-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <configuration> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/hadoop/namenode</value> </property> <property> <name>dfs.datanode.name.dir</name> <value>/data/hadoop/datanode</value> </property> </configuration>
|
mapred-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.1.4</value> </property> <property> <name>mapreduce.application.classpath</name> <value>/opt/hadoop-3.1.4/share/hadoop/mapreduce/*:/opt/hadoop-3.1.4/share/hadoop/mapreduce/lib/*</value> </property> </configuration>
|
yarn-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
|
workers
(Master)拷贝安装包到其他节点
scp -r /opt/hadoop-3.1.4/ node1:/opt/
scp -r /opt/hadoop-3.1.4/ node2:/opt/
scp -r /opt/hadoop-3.1.4/ node3:/opt/
(Slave)创建数据存储目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| mkdir -p /data/hadoop/tmp mkdir -p /data/hadoop/namenode
ssh node1 "mkdir -p /data/hadoop/tmp" ssh node1 "mkdir -p /data/hadoop/namenode"
ssh node2 "mkdir -p /data/hadoop/tmp" ssh node2 "mkdir -p /data/hadoop/namenode"
ssh node3 "mkdir -p /data/hadoop/tmp" ssh node3 "mkdir -p /data/hadoop/namenode"
ssh node1 "ls /data/hadoop" ssh node2 "ls /data/hadoop" ssh node3 "ls /data/hadoop"
|
(Master)HDFS格式化
到 /opt/hadoop-3.1.4/bin目录执行hdfs格式化命令
1 2
| cd /opt/hadoop-3.1.4/bin/ ./hdfs namenode -format my_hdfs
|
其中my_hdfs为自己指定的名称
Hadoop集群启动与关闭
为了方便使用hadoop的相关命令,故把hadoop安装目录的bin与sbin添加到PATH环境变量中。
添加如下内容到文件/etc/profile
1 2 3
| export HADOOP_HOME=/opt/hadoop-3.1.4 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
|
Hadoop集群启动
在Master节点: $HADOOP_HOME/sbin/start-dfs.sh ,启动HDFS
在Master节点:$HADOOP_HOME/sbin/start-yarn.sh, 启动YARN。
在Master节点:$HADOOP_HOME/bin/mapred --daemon start historyserver,启动日志服务。
如果添加过bin与sbin环境变量,可以直接
start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
分别启动HDFS,YARN,日志服务。
Hadoop集群关闭
stop-dfs.sh
stop-yarn.sh
mapred --daemon stop historyserver
Hadoop集群启动报错

编辑如下文件
/opt/hadoop-3.1.4/etc/hadoop/hadoop-env.sh
插入如下语句
1 2 3 4 5
| export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
|
查看节点上的服务
jps是一条java提供的命令,用于监控当前启动的java进程。
如下图分别为master与node3上执行jps命令监控到的服务


关闭虚拟机防火墙
分别在master, node1, node2, node3中永久关闭防火墙
systemctl disable firewalld.service
在宿主机浏览器中访问
hdfs监控
http://192.168.166.100:50070/
其中url的主机地址为master节点的ip地址,端口号为hdfs-site.xml中配置的端口
yarn 任务管理器监控
http://192.168.166.100:8088/