Hadoop学习笔记: 安装配置Hadoop
安装前的一些环境配置:
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