unbunt搭建hadoop2.7.6完全分布式集群

 完全分布式集群搭建

这是第一大部分

Hadoop官方地址:http://hadoop.apache.org/

安装配置jdk1.8

进入jdk目录
whj@whj:~$ vim /etc/profile

  1 # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
  2 # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
  3 export JAVA_HOME=/home/whj/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
  4 export HADOOP_HOME=~/hadoop-2.7.6
  5  export HADOOP_INSTALL=$HADOOP_HOME
  6  export HADOOP_MAPRED_HOME=$HADOOP_HOME
  7  export HADOOP_COMMON_HOME=$HADOOP_HOME
  8  export HADOOP_HDFS_HOME=$HADOOP_HOME
  9  export YARN_HOME=$HADOOP_HOME
 10  export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 11  export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
 12 if [ "${PS1-}" ]; then
 14   if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
 15     # The file bash.bashrc already sets the default PS1.
 16     # PS1='\h:\w\$ '
 17     if [ -f /etc/bash.bashrc ]; then
 18       . /etc/bash.bashrc
 19     fi
 20   else
 21     if [ "`id -u`" -eq 0 ]; then
 22       PS1='# '



3设置ssh免秘钥(一会写)

四安装hadoop

tar zxvf hadoop-2.7.6.tar.gz -C /home/whj
 

这是第二大部分 配置hadoop

2.1 修改core-site.xml

 
 18 
 19 
 20 
 21      
 22      fs.defaultFS
 23          hdfs://whj:9000
 24      
 25         
 26         dfs.datanode.data.dir
 27         /home/whj/hadoop-2.7.6/tmp/
 28         
 29      
 30      hadoop.tmp.dir
 31      /home/whj/hadoop-2.7.6/tmp
 32      
 33 
core-site.xml                                                 33,1          底端


2.2 修改hadoop-env.sh

94 export HADOOP_PID_DIR=${HADOOP_PID_DIR}
 95 export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
 96 
 97 # A string representing this instance of hadoop. $USER by default.
 98 export HADOOP_IDENT_STRING=$USER
 99 export JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
100 export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB    _NATIVE_DIR"
hadoop-env.sh                                                 100,1         底端


2.3 修改hdfs-site.xml

17 
 18 
 19 
 20     
 21         dfs.replication
 22         1
 23     
 24 
 25     
 26         dfs.namenode.secondary.http-address
 27         whj:50090
 28     
 29 

2.4修改slaves

 1 whj@whj

2.5 修改mapred-env.sh

19 export JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171

unbunt搭建hadoop2.7.6完全分布式集群_第1张图片

两个之间加

2.6 修改mapred-site.xml


  1 
  2 
  3     
  4      mapreduce.framework.name
  5      yarn
  6     
  7 

2.7 修改yarn-env.sh

17 export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
 18 
 19 # resolve links - $0 may be a softlink
 20 export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
 21 
 22 # some Java parameters
 23 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
 24 if [ "$JAVA_HOME" != "" ]; then
 25   #echo "run java in $JAVA_HOME"
 26   JAVA_HOME=~/jdk/jdk-8u171-linux-x64/jdk1.8.0_171

2.8 修改yarn-site.xml


 20      
 21         yarn.nodemanager.aux-services
 22         mapreduce_shuffle
 23      
 24 
 25      
 26         yarn.resourcemanager.hostname
 27         node22
 28      
 29 
 30 

 

2.9分发hadoop到节点

(没动)

2.10 配置环境变量

sudo vim /etc/profile

 3 export JAVA_HOME=/home/whj/jdk/jdk-8u171-linux-x64/jdk1.8.0_171
  4 export HADOOP_HOME=~/hadoop-2.7.6
  5  export HADOOP_INSTALL=$HADOOP_HOME
  6  export HADOOP_MAPRED_HOME=$HADOOP_HOME

7  export HADOOP_COMMON_HOME=$HADOOP_HOME
  8  export HADOOP_HDFS_HOME=$HADOOP_HOME
  9  export YARN_HOME=$HADOOP_HOME
 10  export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 11  export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

//进入hadoop安装目录
cd $HADOOP_HOME
//初始化namenode
hdfs namenode -format
//启动hdfs
sbin/start-dfs.sh 
//启动yarn
sbin/start-yarn.sh

7 export HADOOP_COMMON_HOME=$HADOOP_HOME 8 export HADOOP_HDFS_HOME=$HADOOP_HOME 9 export YARN_HOME=$HADOOP_HOME 10 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 11 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 12

这是头部

 37 export  HADOOP_HOME=~/hadoop-2.7.6
 38 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

这是尾部 解决后期报错

source /etc/profile

刷新变量

这是第三大部分 运行hadoop

//进入hadoop安装目录
cd $HADOOP_HOME
//初始化namenode
hdfs namenode -format
//启动hdfs
sbin/start-dfs.sh 
//启动yarn
sbin/start-yarn.sh

里面能sudo就sudo该yes就yes

unbunt搭建hadoop2.7.6完全分布式集群_第2张图片

这个界面就ojbk

出现很多比如ava.lang.IllegalArgumentException: URI has an authority component这样的一会再说解决办法,之前提到的警告就是这里会出现的,之前做好这边就没有了,因为原因什么格式,可以百度

这是第四大部分 解决问题

netstat -ant | grep 50070 查看有没有这个进程

sudo ufw disable  关闭防火墙
sudo chmod 777 /etc/hosts  先修改一下host权限,因为你需要改一下

unbunt搭建hadoop2.7.6完全分布式集群_第3张图片

我的host

jps
9584 Jps
4182 DataNode
9129 NodeManager
8253 NameNode
出现这些就对了 

w1

在执行name node格式化(hdfs namenode -format)的时候,出现了以下无法启动NameNode的错误,研究了很久,,终于知道原因是core-site的文件配置中 tmp 的目录路径写错了,没有tmp就在目录下创建,新版已经没有tmp了

w2

启动Hadoop报错:slave1: datanode running as process 2477. Stop it first.
解决方法:
   进程已经在运行中了,在bin模流下执行 $./stop-all.sh
   然后再执行  $./start-all.sh

w3

java.lang.IllegalArgumentException: URI has an authority component
at java.io.File.(File.java:423)at org.apache.hadoop.hdfs.server.namenode.NNStorage.getStorageDirectory(NNStorage.java:329)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:276)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:247)at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:985)at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429)at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
出现这个错误


unbunt搭建hadoop2.7.6完全分布式集群_第4张图片

仿照这个,是因为你的/

当然如果你是完全分布式一定要去掉file,伪分布式可以这样

还有最好使用绝对路径

w4

3.1安装后会一直提示错误“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ”

export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

把相同配置添加到hadoop-env.sh文件末尾。


w5

hadoop Live Nodes :0
 对于这些网上的说法已经很多了,主要包括:
1 关闭safemode模式,输入如下命令:
bin/hadoop dfsadmin -safemode leave
2 检查存储空间是否足够,输入如下命令:
df -hl
3 重新格式化hdfs,按照如下步骤
a) 删除master和所有slave上的 hadoop目录下的logs文件,并重新建立
b) 删除master和所有slave上的hdfs存储目录,即conf/core-site.xml配置文件中  hadoop.tmp.dir属性对应的value所指向的目录,并重新建立
4 检查防火墙是否关闭,输入下面命令查看状态:
service iptables status
输入下面命令关闭防火墙
service iptables stop
5 重新检查配置文件
不过上述方法都用过了,依然没有解决问题,下面一点是如何解决了该问题的操作。
检查每台机器上的/etc/hosts文件,将没有用或不清楚作何用的ip:name对删除,最后只留下了
[root@hadoop1 hadoop]# cat /etc/hosts
127.0.0.1   localhost
192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2


第五大部分 结论

unbunt搭建hadoop2.7.6完全分布式集群_第5张图片

感悟:环境很好搭建,但是出错原因也会很多,希望大佬多提提建议

你可能感兴趣的:(大数据的点点滴滴)