标签:打开 没有 hosts dfs pad ping 子节点 日常 虚拟机
Hadoop的搭建分为三种形式:单机模式、伪分布模式、完全分布模式,只要掌握了完全分布模式,也就是集群模式的搭建,剩下的两种模式自然而然就会用了,一般前两种模式一般用在开发或测试环境下,Hadoop最大的优势就是分布式集群计算,所以在生产环境下都是搭建的最后一种模式:完全分布模式。
须知:
关于Hadoop集群环境软件的选择,无非就是围绕这个几个软件产品去选择:OS操作系统,Hadoop版本,JDK版本,Hive版本、MySQL版本等。
提前规划出四台服务器用来搭建Hadoop集群,然后分别为其分配了机器名称、IP,IP需要设置为统一网段,可根据使用的情况,进行动态调整的。
另外说明:搭建了两台Ubuntu的服务器来单独安装MySQLServer,搭建了一个主从模式,Ubuntu是一个界面友好的操作系统,这里和Hadoop集群分离的目的是因为Mysql数据库是比较占内存资源的,所以我们单独机器来安装,当然,MySQL并不是Hadoop集群所需要的,两者没有必然的关系,这里搭建它的目的就为了后续安装Hive来分析数据应用的,并且我们可以在这个机器里进行开发调试,当然Window平台也可以,毕竟我们使用Windows平台是最熟练的。(hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。)
安装前需明了:
mkdir /usr/java
, chown hadoop:hadoop /usr/java/
, ll /usr
vim /etc/profile
# set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
cp -r jdk1.8.0_121 /usr/java/
java -version
--/usr目录下,创建hadoop目录
mkdir /usr/hadoop
--拷贝解压后的hadoop安装包
cp -r hadoop-2.6.4 /usr/hadoop
--赋权给Hadoop用户
chown hadoop:hadoop /usr/hadoop/
--查看确认
ll /usr/
cd /usr/hadoop/hadoop-2.6.4/
vim etc/hadoop/core-site.xml
xxxxxxxxxx
<configuration>
<!– HDFS file path –>
<!– HDFS默认的连接地址 –>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.50:9000</value>
</property>
<!– 流文件的配置大小,默认是4K太小了,这里将这个值改的大 –>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!–生成临时结果的配置路径,需要创建目录tmp–>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/hadoop-2.6.4/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
</configuration>
创建目录mkdir tmp
配置第二个文件vim etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.1.50:9001</value>
</property>
?
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/hadoop-2.6.4/dfs/name</value>
</property>
?
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/hadoop-2.6.4/dfs/data</value>
</property>
?
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
?
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
文件解释:
创建目录:mkdir dfs
mkdir dfs/name
mkdir dfs/data
配置第三个文件:cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
因为在这里Hadoop已经提供了一个模板,直复制创建,然后修改此文件:vim etc/hadoop/mapred-site.xml
xxxxxxxxxx
<!– 第一个就是制定当前Hadoop的并行运行计算架构,这里为yarn,第二个就是Job运行的历史记录Server,第三个就是历史运行记录的Web服务器。 –>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.1.50:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.1.50:19888</value>
</property>
</configuration>
配置第四个文件:vim etc/hadoop/yarn-site.xml
<!–后续的调优会一直围绕这个文件进行–>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.50:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.50:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.50:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.50:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.50:8088</value>
</property>
配置Hadoop的jdk路径,不指定是不能运行的,hadoop-env.sh 和 yarn-env.sh 在开头添加如下java环境变量:export JAVA_HOME=/usr/java/jdk1.8.0_73
vim etc/hadoop/hadoop-env.sh
vim etc/hadoop/yarn-env.sh
因为所有Hadoop用户都有执行权限,所以:
chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/
bin/hadoop namenode -format
运行结果: sbin/start-dfs.sh
然后查看jps进程: bin/hadoop dfsadmin -report
sbin/start-yarn.sh
上一部分是单节点的安装,工作已经完成了一半,下面进行的是完全分布式的环境搭建。
为了减少配置时间,我直接对上一节点进行克隆
节点基本信息:
总共需要5台服务器来使用,四台用来搭建Hadoop集群使用,另外一台(可选)作为MySQL等外围管理Hadoop集群来使用。在开发的时候一般也是直接通过连接外围的这台机器来管理Hadoop整个集群
工作大概流程:
vim /etc/sysconfig/network
vim /etc/hosts
vim /etc/ssh/sshd_config
/sbin/service sshd restart
ssh localhost
这个时候会让你输入密码,是因为没有生成密钥,下面进行设置 ssh-keygen -t rsa -P ‘‘
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/
复制的公钥文件存在默认的路径“/home/hadoop/.ssh”scp ~/.ssh/id_rsa.pub hadoop@192.168.1.51:~/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
SSH <远程IP && 域名>
在master机器上登录slave01机器上实验下,看是否还需要进行密码输入ssh slave01.hadoop
从Master机器上面无密码的登录到Slave01机器上面,那么说明刚才的配置生效了。 vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves
将各个Slave的IP或者机器名写入 vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml
bin/hadoop namenode -format
start-dfs.sh
start-yarn.sh
通过浏览器来查看整个集群的Hadoop集群状态,地址为:http://192.168.1.50:8088/ 标签:打开 没有 hosts dfs pad ping 子节点 日常 虚拟机
原文地址:http://www.cnblogs.com/jichui/p/7137804.html