一、软件下载
Hadoop-2.7.2稳定版 下载地址
jdk1.8 下载地址
FileZila(传文件到linux虚拟机里面) 下载地址
SecureCrt(linux模拟终端) 下载地址
二、环境配置
1.解压刚才下载的文件 命令分别为(在/home/app目录下)
tar -xvf Hadoop-2.7.2
tar -xvf jdk1.8
2.jdk环境配置
sudo vi /etc/profile;
export JAVA_HOME=/home/app/jdk1.8
export HADOOP_HOME=/home/app/Hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出:按ESC,输入 :wq!
环境生效source /etc/profile
如果以后环境失效的话 也可以使用该命令是环境生效
3.HADOOP环境配置
切换到Hadoop配置文件的路径下 cd /home/app/hadoop-2.7.2/ect/hadoop
需要配置的文件如下
hadoop-env.sh
sudo vi hadoop-env.sh ,找到export JAVA_HOME={JAVA_HOME} 修改为export JAVA_HOME=/home/app/jdk1.8
core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/app/hadoop-2.7.2/tmp</value>
</property>
hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml(目录下是 mapred-site.xml.template,重命名就行了 mvmapred-site.xml.templatemapred-site.xml)
<!-- 制定mr运行在yarn上面-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
三、环境验证及启动
jdk验证java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
hadoop文件系统的格式化
hadoop namenode -format
启动进程
start-all.sh
查看进程是否启动jps
3635 SecondaryNameNode
4039 NodeManager
3145 NameNode
4363 Jps
3820 ResourceManager
3359 DataNode启动成功
四、如果你们很幸运的话,应该就不会看到这一步的,所以这里是结合我遇到的问题解决你遇到的所有问题的
异常①
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: BigData: BigData: No address associated with hostname
翻译过来就是没有找到地址与主机名映射,以为我们之前配置文件的时候使用的是主机名而不是地址,所以需要配置下hosts
sudo vi /etc/hosts 配置如下
127.0.0.1 localhost
192.168.23.129 BigData(IP与主机映射)
异常②
16/11/18 19:27:09 WARN namenode.NameNode: Encountered exception during format:
java.io.IOException: Cannot create directory /home/app/hadoop-2.7.2/tmp/dfs/name/current
没有权限创建目录,因为如果你之前应该是在root权限下创建其父目录的,解决办法,修改文件目录的访问权限
sudo chmod 777 /home/app/hadoop-2.7.2 ,再次格式化,如果出现16/11/18 19:30:23 INFO util.ExitUtil: Exiting with status 0,则格式化成功,完美解决
异常③
如果出现启动Hadoop没有权限,则也可以使用上面的方法,修改hadoop主目录下的权限sudo chmod 777 /home/app/hadoop-2.7.2 或者 sudo chown 777/home/app/hadoop-2.7.2
异常④
java.io.IOException: Cannot remove current directory: /home/app/hadoop-2.7.2/tmp/dfs/name/current
这个异常是由于,你之前有可能使用root已经格式化一次了,文件目录是在root权限下创建的,你可以使用root权限强制删除该文件
sudo rm -rf /home/app/hadoop-2.7.2/tmp,sudo rm -rf /home/app/hadoop-2.7.2/log,或者使用上面的方式修改该目录的权限
异常⑤
每次切换用户或者重新打开一个窗口,环境失效的问题,
可以将 /etc/profile,配置的环境变量移到~/.bashrc里面。就可以了,重启一下或者使用source ~/.bashrc
五、实现无密码登录
进入到主目录下 cd ~ 使用ls -a,将会看到.ssh的隐藏文件夹,前提是你安装了ssh 安装方法,sudo apt-get install ssh
cd .ssh
ssh-keygen -t rsa (四个回车),生成公私秘钥
会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要登陆的机器上,因为在本阶段,你是在本地启动的,则把公钥拷贝到本地就行了,方法
在当前目录下(/home/yl): sudo touch authorized_keys(创建授权列表文件)
将公钥内容追加到该文件下 catid_rsa.pub>>authorized_keys
更改该文件的访问权限:sudo chmod 700authorized_keys
完成,再次启动hadoop进程就可以实现无密码登录了
注意:如果你是两台机器,你如果把公钥考到另外一台机器上,你就需要scpid_rsa.pubHadoop:/home/yl命令,将文件拷贝到另一台机器上
如果此时出现什么拒绝或权限不足的情况,多半是另一台机器上的用户不对该目录没有访问权限,使用chmod 777 /home/yl进行修改就行了
以上就是Linux上Hadoop从部署环境到启动的详解及其遇到的问题集合的全文介绍,希望对您学习和使用linux系统开发有所帮助.