Hadoop伪分布式安装配置
2018-05-19 本文已影响0人
御林君
1、配置主机名
vim /etc/sysconfig/network
<!-- 修改如下 -->
HOSTNAME=CH0
<!-- 更改主机名需要重启后才能永久生效 -->
<!-- 如果不想重启,可以执行,这种方式是临时的 -->
hostname CH0
2、配置hosts文件
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
192.168.6.20 CH0
3、配置免密码登录
ssh-keygen
<!-- 然后一直回车 -->
<!-- 生成节点的公钥,私钥,生成的文件会自动放在/root/.ssh目录下 -->
ssh-copy-id root@CH1
<!-- 生成的秘钥发送给CH1,可以实现CH1免密码登录到CH0 -->
4、下载hadoop
http://hadoop.apache.org/releases.html#Download
说明:source为源码,binary为安装包。
5、上传到linux服务器中,并解压到相应位置
[root@CH0 ~]# cd soft/
[root@CH0 soft]# ls
hadoop-2.7.1.tar.gz
[root@CH0 ~]# mkdir -p /usr/lib/hadoop
[root@CH0 ~]# tar -zxvf hadoop-2.7.1.tar.gz -C /usr/lib/hadoop
6、配置hadoop-env.sh
[root@CH0 soft]# cd /usr/lib/hadoop/hadoop-2.7.1/etc/hadoop/
[root@CH0 hadoop]# vim hadoop-env.sh
--配置JAVA_HOME--
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
--配置HADOOP--
export HADOOP_CONF_DIR=/usr/lib/hadoop/hadoop-2.7.1/etc/hadoop
--配置文件生效--
[root@CH0 hadoop]# source hadoop-env.sh
7、配置core-site.xml
[root@CH0 hadoop]# vim core-site.xml
<configuration>
<!-- 用来指定hdfs的老大,namenode的地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://CH0:9000</value>
</property>
<!-- 用来指定hadoop运行时产生文件的存放位置 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/hadoop/hadoop-2.7.1/tmp</value>
</property>
</configuration>
8、配置hdfs-site.xml
[root@CH0 hadoop]# vim hdfs-site.xml
<!-- 指定hdfs保存数据副本的数量 -->
<!-- 如果是伪分布模式,此值为1 -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 设置hdfs的操作权限,false表示任何用户都可以操作 -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
9、修改mapred-site.xml
-
这个文件初始时是没有的,有的是模板文件
-
所以需要拷贝一份,并重命名为mapred-site.xml
-
执行:
[root@CH0 hadoop]# cp mapred-site.xml.template mapred-site.xml <configuration> <!-- 指定mapreduce运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <!-- yarn是资源协调工具 --> <value>yarn</value> </property> </configuration>
10、修改yarn-site.xml
[root@CH0 hadoop]# vim yarn-site.xml
<configuration>
<!-- 指定yarn的老大,resourcemanager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- CH0是主机名 -->
<value>CH0</value>
</property>
<!-- Site specific YARN configuration properties -->
<!-- nodemanager获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
11、配置slaves文件
[root@CH0 hadoop]# vim slaves
<!-- 伪分布式只有一台机器,所以配置一个就可以 -->
CH0
12、创建hadoop的tmp文件
[root@CH0 hadoop]# cd ../../
[root@CH0 hadoop-2.7.1]# mkdir tmp
13、配置hadoop的环境变量
[root@CH0 hadoop-2.7.1]# vim /etc/profile
#java env
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
HADOOP_HOME=/usr/lib/hadoop/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
[root@CH0 hadoop-2.7.1]# source /etc/profile
14、格式化namenode
-
执行:
[root@CH0 hadoop-2.7.1]# hadoop namenode -format
-
当出现:successfully,证明格式化成功
2018-05-19 03:58:06,692 INFO common.Storage: Storage directory /usr/lib/hadoop/hadoop-2.7.1/tmp/dfs/name has been successfully formatted.
-
如果不好使,重启Linux
15、启动hadoop
[root@CH0 hadoop-2.7.1]# cd sbin/
[root@CH0 sbin]# sh start-dfs.sh
16、测试hadoop是否启动
<!-- 若出现如下端口,说明启动正常 -->
[root@CH0 sbin]# jps
1648 NameNode
1766 DataNode
2027 Jps
1918 SecondaryNameNode
17、jps启动后,50070页面无法访问解决
整个环境下JDK正常,hadoop配置文件正常,各个守护进程正常启动,防火墙已关闭,但是启动后无法从浏览器中访问50070、50030端口,显示无法访问
[root@CH0 sbin]# jps
1648 NameNode
1766 DataNode
2027 Jps
1918 SecondaryNameNode
原因:namenode初始化默认端口失效,需要手动修改配置文件设置默认端口
1、在hdfs-site.xml 添加如下:
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
2、然后重新格式化namenode,启动hadoop。最终访问正常
0.0.0.0是本地对应的地址,具体情况视ip更换
50070 - Hadoop DFS 状态