Hadoop——伪分布搭建
这里记录一次Hadoop伪分布搭建步骤,系统软件版本如下:操作系统:Centos7JDK:1.8Hadoop:2.71、使用1台linux虚拟机,设置IP地址和主机名,使得虚拟机和主机互通(1)编辑/etc/sysconfig/network-scripts/ifcfg-ens32文件,修改IP地址这里的DNS可以设置8.8.8.8,我这里是内网,只能设置这个才行。(2)编辑/e...
这里记录一次Hadoop伪分布搭建步骤,系统软件版本如下:
操作系统:Centos7
JDK:1.8
Hadoop:2.7
1、使用1台linux虚拟机,设置IP地址和主机名,使得虚拟机和主机互通
(1)编辑/etc/sysconfig/network-scripts/ifcfg-ens32文件,修改IP地址
这里的DNS可以设置8.8.8.8,我这里是内网,只能设置这个才行。
(2)编辑/etc/sysconfig/network和/etc/hostname文件,修改主机名为chenjinyu
(3)编辑/etc/hosts文件,配置名字解析
(4)检查虚拟机能够使用名字ping通
2、配置ssh免密码登录,使用ssh可以免密码登录本机
(1)安装openssh-clients,使用命令生成密钥对
#ssh-keygen -t rsa
(2)把公钥复制到authorized_keys文件(这个文件没有,执行下面这个命令会自动创建该文件)
# cat id_rsa.pub >> authorized_keys
(3)使用ssh免密码登录localhost进行测试
# ssh localhost
3、安装jdk,配置环境变量
(1)下载jdk,解压到jdk安装目录/usr/java/jdk1.8
(2)编辑/etc/profile文件,设置环境变量
export JAVA_HOME=/usr/java/jdk1.8
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
(3)使用# source /etc/profile命令执行刷新脚本
(4)使用# java -version 检查java环境
# java -version
4、安装hadoop集群(伪分布)
1、安装hadoop,编辑配置文件
(1)建立hadoop工作目录/var/hadoop
# mkdir /var/hadoop/tmp
# mkdir /var/hadoop/var
# mkdir -p /var/hadoop/dfs/name
# mkdir -p /var/hadoop/dfs/data
(2)下载hadoop软件并上传到master虚拟机,并解压到/usr/hadoop2.7
# tar -xvzf hadoop-2.7.7.tar.gz
(3)修改环境变量配置文件/etc/profile,添加如下内容,并使其生效
export HADOOP_HOME=/usr/hadoop2.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONFIG_DIR=$HADOOP_HOME/etc/hadoop
(4)编辑/usr/hadoop2.7/etc/hadoop下的配置文件
1)hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8
export JAVA_HOME=/usr/java/jdk1.8
export JAVA_HOME=/usr/java/jdk1.8
4)core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://chenjinyu:9000</value>
</property>
</configuration>
5)hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6)yarn-site.xml
<configuration>
<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>chenjinyu:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>chenjinyu:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>chenjinyu:8031</value>
</property>
</configuration>
7)mapred-site.xml (需要拷贝 mapred-site.xml.template 模板)
# cp mapred-site.xml.template mapred-site.xml
以下内容在mapred-site.xml中添加
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>chenjinyu:10020</value>
</property>
</configuration>
8)slaves
chenjinyu
注:以上所有配置文件中的“chenjinyu”需要设定为自己的hostname,如果你前面跟我设置的一样,这里不用修改
2、执行hdfs初始化
# hadoop namenode -format
出现以下内容,证明成功
4、启动Hadoop
(1)使用脚本启动hadoop
# start-all.sh
(2)使用jps命令检查hadoop是否启动
# jps
如果出现以下6个进程证明启动成功:
(3)使用浏览器访问master的相关端口,如果都能打开,说明启动应该是没什么问题了。记得关闭Linux防火墙或者开放相应端口,否则无法访问。
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
50070:hdfs文件管理
8088:ResourceManager
8042:NodeManager
如果上面三个页面均能显示,那么恭喜你,你搭建也许成功了,可以进入下面的测试了。
4、使用hadoop集群运行自带Demo:wordcount
(1)查看hdfs根目录
# hdfs dfs -ls /
在这里我遇到了一个问题,执行上面命令之后显示一个“hadoop command…”具体是啥忘了,后来去logs目录下查看日志,显示“java.io.EOFException”异常,然后我重启了hadoop一次,就没有这个问题了,至今没有再碰到过,祝你好运。
(2)在根目录建立input目录
# hdfs dfs -mkdir /input
(3)上传文件到input
# hdfs dfs -put /usr/hadoop2.7/LICENSE.txt /input
(4)进入Hadoop根目录下面的自带Demo目录:
# cd /usr/hadoop2.7/share/hadoop/mapreduce
(5)运行程序
# hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /input/LICENSE.txt /output
//hadoop命令 jar(我要运行jar包) 指定jar包路径 执行哪一个main函数 需要输入的文件在哪里 把结果输出到哪里 (我是上一条命令的解释)
(6)查看wordcount程序输出结果
# hdfs dfs -ls /output
# hdfs dfs -cat /output/part-r-00000
恭喜你,伪分布搭建完成,并且进行了一次案例测试。
这就是大数据的经典案例——词频统计,每一个单词出现次数的小Demo。
更多推荐
所有评论(0)