之前每个虚拟机需要配好JDK和有hadoop
下面只有关于hadoop2.8.5的配置
前提
将一个虚拟机作为主节点,其他虚拟机作为从节点
#设置root的密码
sudo passwd root
#切换为root用户
su root
在root用户下运行此命令
#这里是给hadoop文件夹授予权限,如果没有这个权限后面格式化操作,就无法创建存储文件的目录,导致logs上写着文件夹不存在,导致namenode或者其他的进程无法启动,这个问题比较难找出来
chmod a+w /var/opt/hadoop-2.8.5
chmod a+x /var/opt/hadoop-2.8.5
这使用hadoop用户,而不是root,后面出什么问题大多数都是权限的问题。
sudo useradd -m hadoop -s /bin/bash #创建hadoop用户
设置hadoop用户密码
sudo passwd hadoop
为hadoop用户增加管理员权限
sudo adduser hadoop sudo
命令重启
sudo -s hadoop
shutdown -r now
由于ubantu没有安装vim和ssh
这里为ubantu安装
sudo apt-get update
更改主机名
sudo vim /etc/hosts
添加节点信息
192.168.140.204 master
192.168.140.205 slave1
192.168.140.206 slave2
选一个作为主节点,几个从节点,节点名字自己定义,重启生效
**
ssh免密码操作
**
获取密钥
ssh-keygen -t rsa
ssh-copy-id 加上节点的IP
更改为静态IP
sudo vim /etc/network/interfaces
信息自己填好就是了,每个虚拟机都要配置好
netmask可以保留,其他的随便改就是了
修改hosts文件
sudo vim /etc/hosts
把节点的信息加上去
配置HADOOP环境变量
sudo vim /etc/profile
JAVA_HOME=/var/opt/jdk1.8.0_221
HADOOP_HOME=/var/opt/hadoop-2.8.5
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
将上面信息也拷贝进去
gedit ~/.bashrc
scp /etc/profile slave1:/etc/
scp /etc/profile slave2:/etc/
#通过scp命令将profile文件分发到其他节点
进入hadoop的目录的etc目录
sudo vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9820</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/cjc/hadoop/full</value>
<description>A base for other temporary directories.</description>
</property>
sudo vim hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/opt/hadoop-2.8.5/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/opt/hadoop-2.8.5/hdfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
vim hadoop-env.sh
export HADOOP_IDENT_STRING=$USER
export JAVA_HOME=/var/opt/jdk1.8.0_221
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
通过scp命令分发到其他节点
scp hadoop-env.sh hdfs-site.xml core-site.xml slave1:/var/opt/hadoop-2.8.5/etc/hadoop/
scp hadoop-env.sh hdfs-site.xml core-site.xml slave2:/var/opt/hadoop-2.8.5/etc/hadoop/
填写从节点信息
在hadoop的etc的hadoop目录下运行此命令
sudo vim slaves
这里添加的是从节点的信息
格式化namenode操作
hdfs namenode -format
启动
start-dfs.sh
jps一下查看进程
看到有如下进程即为配置成功
在浏览器输入master:50070
即可访问WEB服务
但是需要在电脑配置好
进入目录
C:\Windows\System32\drivers\etc
修改hosts文件
在下面添加
如果发现有进程没有启动,进入hadoop目录的logs目录下,查看日志,将上面的错误复制,百度一下