Hadoop学习笔记: 安装配置Hadoop

时间:2022-06-27 09:16:55

安装前的一些环境配置:

1. 给用户添加sudo权限,输入su - 进入root账号,然后输入visudo,进入编辑模式,找到这一行:"root ALL=(ALL) ALL"在下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出

2. 将JDK压缩包解压到某一目录下tar -zxvf jdk-8u71-linux-x64.gz,并且配置JAVA_HOME以及HADOOP_HOME参数。用文本编辑器打开/etc/profile, 在profile文件末尾加入: 

export JAVA_HOME=/usr/local/jdk1.8.0_72
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

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

3. 准备两台虚拟机,配置/etc/hosts,一台为hadoop001作为namenode以及datanode,一台hadoop002作为datanode。

配置SSH 参考 http://www.cnblogs.com/yangyquin/p/5021070.html

在namenode上执行ssh-keygen -t rsa -P ""然后一直回车即可
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

然后将公钥scp到datanode上。

 

具体安装hadoop步骤:

1. 解压hadoop文件到某一目录下 tar -zxvf hadoop-2.7.2.tar.gz,修改解压后的目录中的文件夹etc/hadoop下的配置文件

(1) 将JDK路径添加到hadoop-env.sh中

export JAVA_HOME=/usr/local/jdk1.8.0_72

(2) 修改mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

(3) 修改core-site.xml

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop001:9001</value>
  </property>
</configuration>

(4) 修改hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop-2.7.2/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop-2.7.2/dfs/data</value>
  </property>
</configuration>

(5) 修改yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop001</value>
</property>
</configuration>

(6) 把每个节点添加到slaves文件中

 

2. 在hadoop001上格式化namenode

hadoop namenode -format

3. 在hadoop001上输入以下命令启动namenode,datanode,resourcemanager

./hadoop-daemon.sh start namenode
./hadoop-daemons.sh start datanode
./start-yarn.sh

4. 在浏览器中访问hadoop001:50070查看HDFS情况,访问hadoop001:8088查看Yarn运行情况。

配置中遇到的问题:

在启动datanode时发现,在hadoop002上能看到datanode的进程,但是在hadoop001上输入hdfs dfsadmin -report只能看到一个livenode,原因是由于hadoop001上的防火墙问题,关闭防火墙后问题解决。

/etc/init.d/iptables stop #start 开启 #restart 重启

centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可: 

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

如果你要改用iptables的话,需要安装iptables服务: 

sudo yum install iptables-services 
sudo systemctl enable iptables
sudo systemctl enable ip6tables 
sudo systemctl start iptables
sudo systemctl start ip6tables