linux虚拟机中Hadoop的伪分布安装(至少3台虚拟机)
(1)在/opt/目录下创建hadoopdata目录用于存放hadoop集群的数据,上传hadoop的压缩包,并解压到/opt/目录下。
(2)编辑hadoop-env.sh 配置自己jdk路径,如果JDK配置过JAVA_HOME 环境变量,此步可跳过。
(3)cd 进入目录 /opt/hadoop-2.7.2/etc/hadoop/
编辑core-site.xml文件。此处配置默认ip地址、端口、读取文件缓冲大小。 添加xml块:
<!--配置HDFS文件系统的命名空间-->
<property>
<name>fs.defaultFS</name>
<!--服务器主机名字与端口-->
<value>hdfs://theone:9000</value>
</property>
<!--HDFS读取文件的缓冲大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
(4)编辑hdfs-site.xml,配置副本数等。
<!--配置hdfs文件系统的副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定hdfs文件系统的元数据存放目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoopdata/dfs/name</value>
</property>
<!--指定hdfs文件系统的数据块存放目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoopdata/dfs/data</value>
</property>
<!--配置HDFS的web管理地址-->
<property>
<name>dfs.http.address</name>
<value>theone:50070</value>
</property>
<!--配置secondaryNamenode的web管理地址-->
<property>
<name>dfs.secondary.http.address</name>
<!--第二台服务器名字与端口-->
<value>thetwo:50090</value>
</property>
<!--配置是否打开web管理-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--指定hdfs文件系统权限是否开启-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(5)复制mapred-site.xml.template内容到一个新文件:
cp mapred-site.xml.template mapred-site.xml 编辑这个文件
<!--指定mapreduce运行的框架名-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<!--配置mapreduce的历史记录组件的内部通信地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>theone:10020</value>
</property>
<!--配置mapreduce的历史记录服务的web管理地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>theone:19888</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.job.ubertask.maxmaps</name>
<value>9</value>
</property>
<property>
<name>mapreduce.job.ubertask.maxreduces</name>
<value>1</value>
</property>
(6)编辑yarn-site.xml ,配置resourcemanager的相关信息
<!-- Site specific YARN configuration properties -->
<!--指定resourcemanager所启动服务的主机名/ip-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>theone</value>
</property>
<!--指定mapreduce的shuffle处理数据方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--配置resourcemanager内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>theone:8032</value>
</property>
<!--配置resourcemanager的scheduler组件的内部通信地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>theone:8030</value>
</property>
<!--配置resource-tracker组件的内部通信地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>theone:8031</value>
</property>
<!--配置resourcemanager的admin的内部通信地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>theone:8033</value>
</property>
<!--配置yarn的web管理地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>theone:8088</value>
</property>
<!--yarn的聚合日志是否开启-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--聚合日志报错hdfs上的时间-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<!--聚合日志的检查时间段-->
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>3600</value>
</property>
<!---->
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>10800</value>
</property>
<!--当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)-->
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/opt/hadoopdata/logs</value>
</property>
(7)编辑slaves, 将三台虚拟机的主机名添加进去:
(8)编辑虚拟机的/etc/hosts文件配置映射信息
(9)将配置好的Hadoop-2.7.6发送给其他服务器节点: scp -r /opt/hadoop-2.7.6 root@192.168.8.130 /opt/hadoop-2.7.6 发送时会提示输入第二台的root用户密码
(10)配置ssh秘钥实现免密登录: ssh-keygen -t rsa 然后加四个回车创建一个秘钥。
使用ssh-copy-id localhost 命令发送自己的钥匙给其他服务器实现免密登录。
(11)使用命令: sh start-all.sh 开启服务 通过web端 http://ip地址: 50070 访问查看。