前言
先说一下当前环境:Ubuntu18.04 jdk1.8 Hadoop选用-2.6.0-cdh5.15.1 用户名:supershuai-VirtualBox
Hadoop的下载地址:http://archive.cloudera.com/cdh5/cdh/5/ hoodp-native下载对应的版本http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.*.0.tar
在安装Hadoop之前,首先要安装好Java环境,配置好全局变量,这里说一下我的所有环境变量都是在/etc/profile中配置的,如果你是使用的其它版本linux则在其它版本环境变量文件中进行配置(如centos7中的~/.bash_profile文件)。
其次你要做的是确保ssh服务能够正常启动,并进一步设置ssh的免密登录,主要是为了解决每次启动Hadoop时频繁的输入密码验证的操作。ssh免密操作:
执行:ssh-keygen -t rsa
执行:cd ~/.ssh
执行:ll 对文件夹内容进行查看,此时会发现私钥与公钥文件,接下来就是把公钥写入 authorized_keys文件中
执行:cat id_rda_pub >> authorized_keys
执行:sudo chmod 600 authorized_keys
设置以后可以使用 ssh localhost 查看下是否已经可以免密远程连接
Hadoop安装与设置
首先将下载的压缩包使用tar命令进行解压到本地安装目录,目录自行设定。
配置hadoop—env.sh文件(安装目录下的/etc/hadoop下):
vi hadoop-env.sh
加入:
export JAVA_HOME=你的jdk目录
配置core-site.xml文件
vi etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://supershuai-VirtualBox:8020</value>
</property>
</configuration>
修改成你的机器名:8020
配置hdfs-site.xml文件
vi etc/hadoop/hdfs-site.xm
(目前环境是单台机器所以设置一个副本,到用的集群后再改 )
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置 /tem 启动后清除问题 hdfs-site.xml:( /opt/tmp是新建的放置文件的目录)
vi etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/tmp</value>
</property>
</configuration>
配置slaves
vi slaves
修改为机器名
最后添加系统变量:
vi etc/profile
export JAVA_HOME=Java目录
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export HADOOP_HOME=Hadoop目录
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
配置后source下profile 文件:source etc/profile
启动与常见问题
第一次启动首先格式化文件
执行 : hdfs namenode -format
在sbin目录下的
执行 : ./start-dfs.sh
1.仍然需要输入密码的问题
chown supershuai: /home/hadoop/.ssh (supershuai是我的用户名名)
chown supershuai: /home/hadoop/.ssh/*
chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/*
2.Unable to load native-hadoop library for your platform… using builtin-java classes where applicable的问题
将native文件解压到Hadoop目录下的lib文件以及lib文件下的native文件
执行: tar -xvf hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib/native
执行: tar -xvf hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib
配置到环境变量
vim /etc/profile
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
3.ssh在Hadoop中的连接被拒绝问题
ssh/sshd_config文件配置
辑配置文件,允许以 root 用户通过 ssh 登录:sudo vi /etc/ssh/sshd_config
找到:PermitRootLogin prohibit-password禁用
添加:PermitRootLogin yes
4.jps启动后只有jps进程
这时建议要去查看logs下的.log文档,根据具体的问题进行解决。包括删除tmp目录下的文件并且重新执行 hdfs namenode -format命令
当然以上的所有文件要在普通用户的管理和创建下进行,不然会因为权限问题导致很多错误。
5.防火墙问题
关闭防火墙: sudo ufw disable
开启防火墙: sudo ufw enable
开放某一个 PORT 8080: sudo ufw allow 8080
删除一个已经开启的 PORT 8080: sudo ufw delete allow 8080
查看防火墙状态: sudo ufw status