简单描述如何安装配置一个apache开源版hadoop,只描述即可,无需列出完整步骤,能列出步骤更好:
==================================================================================
1 ) 安装JDK并配置环境变量(/etc/profile)
2) 关闭防火墙
3) 配置hosts文件,方便hadoop通过主机名访问(/etc/hosts)
4) 设置ssh免密码登录
5) 解压缩hadoop安装包,并配置环境变量
6) 修改配置文件( $HADOOP_HOME/conf )
hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml
7) 格式化hdfs文件系统 (hadoop namenode -format)
8) 启动hadoop ( $HADOOP_HOME/bin/start-all.sh )
9) 使用jps查看进程
备注:本篇仅供参考,很长时间没有安装过原生的hadoop,2.x版本安装很简单,换到3.x版本出了些小问题,但是区别不大,注意下就行
环境:
CentOS6.6
JDK:8u141
Zookeeper:3.4.6
Hadoop:3.1.1
安装之前需要配置好JAVA_HOME,关闭防火墙,配置节点之间的免密登录;
一、下载、上传、解压hadoop(略)
二、修改配置文件
cd hadoop-3.1.1/etc/hadoop/
#修改以下几个配置文件
core-site.xml
hadoop-env.sh
hdfs-site.xml
mapred-env.sh
yarn-env.sh
yarn-site.xml
#core-site.xml 配置文件的修改
#指定hdfs的namenode地址
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node04:9000</value>
</property>
</configuration>
#hadoop-env.sh 配置文件的修改
export JAVA_HOME=/usr/local/apps/jdk1.8.0_141
export HADOOP_HOME=/usr/local/apps/hadoop-3.1.1
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
#hdfs-site.xml 配置文件的修改
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/data/hdp/name/</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/data/hdp/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node05:50090</value>
</property>
三、拷贝修改的配置文件到其他节点
[root@node04 hadoop]# scp -r * node05:$PWD
[root@node04 hadoop]# scp -r * node06:$PWD
四、配置hadoop的环境变量
export JAVA_HOME=/usr/local/apps/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_HOME=/usr/local/apps/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#保存复制到其他节点,source一下
五、初始化hadoop元数据目录
hadoop namenode -format
创建一个全新的元数据存储目录
生成记录元数据的文件fsimage
生成集群的相关标识:如:集群id——clusterID
六、启动集群
start-dfs.sh
七、启动异常
Starting namenodes on [node05]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [node05]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-08-13 18:45:29,752 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在hadoop2.x版本安装时没有出现这个,按照报错的提示这是用户权限问题导致,另外,在之前的版本中 etc/hadoop中有slaves文件用来配置datanode这些非master节点,但在新的版本中去掉了这个文件,多了workes文件,操作方法都一样,都是在文件里面添加上需要启动的datanode节点,上面的异常解决办法:
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
八、重新启动即可