本文主要是介绍自搭建Hadoop环境全记录 单机+伪分布 (ubuntu-16.04 64-bit , Hadoop2.8.2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
搭建Hadoop环境,网上详细的教程很多,但还是缺少交代关键的步骤(因为机器环境、版本差异;有些环境变量作者的机器之前就设置好了,故新手往往会被卡住)。我也是同时对照看几份教程,还是遇到了很多问题,所以自己也整理了一下,适合新手参考。
Linux安装
★硬件环境:Macbook Pro
CPU:Intel Core i7
RAM:16GB 2133 MHzLPDDR3
★虚拟机:Parallels Desktop 12.2.0
★Linux版本:ubuntu-16.04 64-bit
★关于Linux需要提前知道的
●Shell(命令解析器)
●sudo命令(管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。需要密码)
●输入法切换:shift切换中英;Ubuntu自带中文输入法Sunpinyin
●复制ctrl+shift+c 粘贴ctrl+shift+v
★Hadoop安装方式有:单机模式、伪分布式模式、分布式模式
★Hadoop安装配置大致步骤:
1、创建Hadoop用户
2、SSH登录权限设置
3、安装Java环境
4、单机安装配置
5、伪分布式安装配置
★Hadoop安装配置具体步骤:
一、创建hadoop用户(密码:hadoop)
其中:
sudo useradd –m hadoop –s /bin/bash(创建 hadoop 用户,并使用 /bin/bash 作为 shell)
sudo passwd hadoop(设置密码)
sudo adduser hadoop sudo(增加管理员权限)
创建后请将系统切换至hadoop用户。
二、SSH登录权限设置
●什么是SSH
SSH(Secure Shell),是建立在应用层和传输层基础上的安全协议。专为远程登录会话和其他网络服务提供安全性。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。由客户端和服务端的软件组成,服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求,客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文 件传输)等其他的应用程序。
●为什么要配置SSH
Hadoop名称节点(NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。Hadoop并没有提供SSH输入密码登录的形式,为了能够顺利登录每台机器,远程管理Hadoop节点以及Hadoop节点间的安全共享访问,需要将所有机器配置为名称节点可以无密码登录它们。
●配置方式
配置方式是创建一个认证文件,然后用public key实现免密码的登录连接。
*更新apt(后面会用apt安装一些软件)
sudo apt-get update
*安装vim编辑器,方便后面的配置文件修改。
sudo apt-get install vim
校验是否装有SSHClint 和 SSH server
rpm –qa | grep ssh
若未安装,需要安装
sudo apt-get install openssh-server
先用sshlocalhost测试,提示需要密码登陆
退出登陆
cd ~/.ssh/(先执行一次sshlocalhost就会生成该目录)
ssh-keygen -t rsa(之后要敲几次回车)
cat ./id_rsa.pub >> ./authorized_keys(加入授权)
再用sshlocalhost测试,可以无密码登陆了。
三、安装Java环境
1、新建目录/usr/local/java
将jdk1.8文件夹拷至新目录下
(也可以将tar.gz拷过去再解压)
2、配置环境变量:
使用vim编辑器在 ~/.bashrc 中编辑环境变量
vim ~/.bashrc
export JAVA_HOME=/usr/local/java/jdk1.8
保存退出(按ESC,输入:wq)
执行 source ~/.bashrc
验证echo $JAVA_HOME
验证jdk版本 $JAVA_HOMG/bin/java –version 或 java-version
四、安装Hadoop2单机安装配置
1、将解压后的hadoop拷贝至/usr/local下
sudo cp -r ~/hadoop/hadoop /usr/local
2、修改文件权限
sudo chown -R hadoop ./hadoop
3、为Hadoop配置环境变量
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin
4、修改/etc/<hadoop>/<conf>/hadoop-env.sh,更改这里面JAVA_HOME的位置。用cat浏览或用sudo vim hadoop-env.sh命令直接编辑(编辑只读文件一定要加sudo打开)
在这里将默认的JAVA_HOME改为自己的实际地址。
修改后再测试hadoop version
如图,已可以成功查看hadoop版本号。
附:/.bashrc.sh中环境变量的最终版
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_HOME=/usr/local/hadoop
export PATH=/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=/usr/local/hadoop/hadoop/etc/hadoop:/opt/hadoop/share/hadoop/common/*:/usr/local/hadoop/hadoop/share/hadoop/hdfs:/usr/local/hadoop/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/hadoop/share/hadoop/yarn/lib/*:/usr/local/hadoop/hadoop/share/hadoop/yarn/*:/opt/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/contrib/capacity-scheduler/*.jar
export CLASSPATH=$HADOOP_CLASSPATH
(很多教程这里export的时候使用了自引用(如export PATH=$PATH:…………)这样的后果貌似是如果多次执行这句话,就会在PATH中生成很多重复的路径,所以我最终去掉了这种引用,看的舒心用的放心..)
五、伪分布式安装配置
Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。在我的配置中,位于/usr/local/hadoop/etc/hadoop/ 。
● conf/hadoop-env.sh:Hadoop环境变量设置
●conf/core-site.xml:主要完成NameNode的IP和端口设置
●conf/hdfs-site.xml:主要完成HDFS的数据块副本等参数设置
● conf/mapred-site.xml:主要完成JobTracker IP和端口设置
● conf/masters:完成master节点IP设置
● conf/slaves:完成Slaves节点IP设置
伪分布式安装配置步骤:
1、修改配置文件 core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase forother temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
2、修改配置文件hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
3、初始化HDFS文件系统
执行指令(Hadoop/bin下)Hadoop namenode –format
其中看到了Exitingwith status 0,表示初始化已经成功。
4、启动所有进程start-all.sh
使用jps查看所有的java进程
此时,可以再浏览器中输入http://localhost:50070 查看Hadoop信息
这篇关于自搭建Hadoop环境全记录 单机+伪分布 (ubuntu-16.04 64-bit , Hadoop2.8.2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!