- 环境和版本 Java1.8, centos6.5, Hadoop3.1.2
- 常用linux命令
端口查看: netstat -apn | grep 2289 kill -9 pid
关闭防火墙:service iptables stop (centos7有些不同)
永久关闭防火墙:chkconfig iptables off
两个命令同时运行,运行完成后查看防火墙关闭状态 : service iptables status
- 常用linux命令
- Java环境1.8安装
tar -zxvf java压缩文件
写入环境变量:
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行profile文件 source /etc/profile
- 免密码ssh设置
现在确认能否不输入口令就用ssh登录localhost:
$ ssh localhost
如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
etc/hadoop配置文件
- 配置hadoop-env.sh文件,该配置文件用于指定hadoop运行时jdk的路径:
vi hadoop-env.sh
export JAVA_HOME=自己的jdk安装目录
- 配置core-site.xml文件,该文件是用户自定义文件。用于配置hadoop的文件系统。
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycent.os:9000</value> (mycent.os指的是你自己配置的主机名,代表当前虚拟机)
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop_ cluster /tmp</value>
</property>
- 配置 hdsf-site.xml文件,配置在hdfs中,一份文件存几份,默认是3份,一台机器只能存一份。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
- 配置mapred-site.xml文件,map-reduce是hadoop中的一种计算模型,运行在yarn(资源调度系统)中。
mapred-site.xml
<property> <!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置yarn-site.xml文件,指定yarn的老大resourcemanager的地址(该地址是resourcemanager的主机地址,即主机名或该主机的ip地址)。
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mycent.os</value>
</property>
指定mapreduce执行shuffle时获取数据的方式
<property>
<name>yarn.nodemanager.aus-services</name>
<value>mapreduce_shuffle</value>
</property>
- 在hadoop的sbin目录中,分别在start-dsf.sh文件和stop-dsf.sh文件中的顶部加入:
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在hadoop的sbin目录中,分别在start-yarn.sh 文件和stop-yarn.sh文件中的顶部加入:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
hadoop环境变量配置:
export HADOOP_HOME=/opt/hadoop-3.1.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
初始化:
hdfs namenode -format
-
此时回到hadoop的sbin目录,执行./start-all.sh,此时所有进程将成功启动。可以使用jps查看进程,一共有以下6个进程。
最后在宿主机的浏览器中访问hadoop的hdfs,如访问成功,则说明伪分布式环境已搭建成功:
注意:
Hadoop2.X的版本中,访问hdfs的端口号是50070;
172.28.112.26:50070
Hadoop3.X的版本中,访问hdfs的端口号由50070修改成了9870;
172.28.112.26:9870