hadoop集群搭建及易踩坑收录

 配置前先把域名映射配好哈 详情参考我的其他随笔(已对随笔分类)

下载好hdfs.tar.gz 后

在/home/ldy下

mkdir apps/   

tar -xzvf hdfs.tar.gz  -C  /home/ldy/apps/       #专门用来安装hdfs 和jdk的

修改环境变量:vim /etc/profile

在最后的fi上面添加

export HDP_HOME=/home/ldy/apps/hadoop-2.8.5/etc/hadoop    #路径因人而定

export PATH=$PATH:$HDP_HOME/sbin : $HDP_HOME/bin

hadoop-daemon.sh 等命令在sbin目录下(旧版的在bin下)   最好两个都配。jdk的配置也是一样的道理

当出现命令not found 时:source /etc/profile 即可

配置文件:

在/home/ldy/apps/hadoop-2.8.5/etc/hadoop下

vim hadoop-env.sh    #告诉它java_home即可

 

Vim core-site.xml

如果你只有一个namenode的话,得将fs.defaultFS改成fs.default.name

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://ubuntu-00:9000</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/hdpdata/hadoopdata</value>
</property>
</configuration>

 

Vim hdfs-site.xml

<configuration>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/hdpdata/hadoopdata/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/hdpdata/hadoopdata/data</value>
</property>

<property>
<name>dfs.http.address</name>
<value>ubuntu-00:50070</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>ubuntu-00:50090</value>
</property>

</configuration>

vim slaves

这里记录了datenode服务器的主机名,域名映射配好后,启动集群后各服务器就可以互相连通了

注:core-site.xml配置错误会导致 incorrect namenode addr

name标签的值不可以修改

以上目录不存在会自动创建

9000端口负责客户端与服务端的交互

50070端口是一个外部服务器,可以通过该端口在浏览器访问namenode

域名映射后value值可以写主机名,且所有服务器的core-site.xml的地址必须一致,确保使用同一个文件系统

建议大家先配好一个服务器然后直接复制粘贴文件到其他服务器,省得麻烦 

复制本地文件到其他服务器需要远程连接,开启ssh服务以及使用scp远程连接命令

注:需要连接的主机也要开通ssh以及安装scp

开启ssh:

运行 ps -e | grep ssh,查看是否有sshd进程

如果没有,说明server没启动,通过 /etc/init.d/ssh -start 启动server进程

如果提示ssh不存在 那么就是没安装server

安装server

1.sudo apt-get update

2.sudo apt-get install openssh-server

apt-get过程中可能出现:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it?

 

当出现这个报错时直接:

sudo rm /var/lib/dpkg/lock-frontend

sudo rm /var/lib/dpkg/lock

sudo rm /var/lib/apt/lists/lock

然后 apt-get update 

(scp属于ssh,开了ssh也就安装好了scp)

 

Scp :

scp -r  /home/ldy/apps/hadoop-2.8.5   ubuntu-01:/home/ldy/apps/

#将本地的hadoop文件复制到ubuntu-01主机的apps目录下

报错:   ssh连接The authenticity of host can't be established

修改/etc/ssh/ssh_config文件的配置

修改:(没有就在最后面添加)

StrictHostKeyChecking no

注:一般是禁止root用户登录的,切换到普通用户可正常使用

 当出现这个错误时:

Permisson denied ,please try again

出现这个错误是因为请求被拒绝,是ssh的权限问题,需要修改ssh权限,切换root, 直接vim /etc/ssh/sshd_config

将PermitRootLogin no 改为 PermitRootLogin yes

记得重启ssh:sudo service ssh restart

在namenode服务器上:

vim etc/hadoop/slaves  (加上所有服务器名) 

hadoop  namenode -format (一次就够了)

start-dfs.sh  (开启namenode和datanode服务)

使用这个命令每次都要输密码,这里可以设一个免密登录,在namenode服务器上设、

当namenode访问其他服务器时,就不用输入密码了

免密登录:

     ssh-keygen(一直回车就行)

     ssh-copy-id  服务器名(有多少个服务器执行多少次这个命令, 这里需要输入yes,不能一直回车)

注意:虚拟机重启后得重新执行 start-dfs.sh,namenode和datanode才启动(其本质是软件)

 

 这样就成功了

原文地址:https://www.cnblogs.com/ldy233/p/11206622.html