网上很多博客都是坑犊子,先说下我搭建时候的环境
ubuntu 16.0.4
hadoop 版本 : hadoop-2.7.3
jdk版本:jdk1.8.0_144
jdk和hadoop都安装在/usr目录下 如图
一,准备工作
第一步:先敲命令
sudo chmod 777 hadoop-2.7.3
把hadoop目录设置任何人可以读写执行权限,防止生出任何幺蛾子
第二步:配置jdk环境变量,如果之前已经配过了 那就跳过这一步骤
解压jdk文件至/usr/lib/jvm目录
1 |
|
1.3、设置环境变量
打开profile文件
sudo vim /etc/profile
插入java环境配置
export JAVA_HOME=/usr/jdk1.8.0_14
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
打开environment 文件
sudo vim /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games“
配置生效
在 environment中修改PATH,追加JDK路径,添加CLASSPATH与JAVA_HOME后如下:
source /etc/environment
1.4、告诉ubuntu系统,我们使用的sun的JDK,而非OpenJDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_144/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_144/bin/javac 300
sudo update-alternatives --config java
1.5、验证java环境是否配置成功 最后一步没有显示有多个jdk ,则配置到此结束。如果有显示则如下:
sudo update-alternatives --config java
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态------------------------------------------------------------* 0
/usr/lib/jvm/java-8-openjdk/jre/bin/java 1061 自动模式 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式 2 /usr/lib/jvm/jdk1.8.0_144/bin/java 300
手动模式要维持当前值[*]请按回车键,或者键入选择的编号:?
想用那个输那个号码,如上所示,这样就设置好了要使用的java了。
显示如下信息,配置成功。
二、安装SSH
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
查看ssh服务是否启动,如果有显示相关ssh字样则表示成功 启动ssh
设置免密码登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ export HADOOP\_PREFIX=/usr/local/hadoop
ssh localhost
出现如图所示的界面 表示已经OK
三、安装hadoop
下载hadoop-2.7.3.tar.gz,解压到/usr (单机模式搭建)
给/usr/local/hadoop设置访问权限
sudo chmod 777 /usr/local/hadoop
配置.bashrc文件
sudo vim ~/.bashrc
该命令会打开该文件的编辑窗口,在文件末尾追加下面内容,然后保存,关闭编辑窗口。
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
export HADOOP_INSTALL=/usr/hadoop-2.7.3
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
执行下面命令,使添加的环境变量生效:
source ~/.bashrc
hadoop配置 (伪分布模式搭建)
配置hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/jdk1.8.0_144
export HADOOP=/usr/hadoop-2.7.3
export PATH=$PATH:/usr/hadoop-2.7.3/bin
配置yarn-env.sh
sudo vim /usr/hadoop-2.7.3/etc/hadoop/yarn-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/jdk1.8.0_144
配置core-site.xml,在home目录地下创建 /home/abc/hadoop_tmp目录
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chenjun/hadoop_tmp</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>127.0.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>127.0.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>127.0.0.1:8031</value>
</property>
</configuration>
搞定了一切之后:
格式化namenode
先给/home/chenjun/hadoop_tmp目录添加无敌权限:
sudo chmod 777 hadoop_tmp/
hdfs namenode -format
启动hadoop
执行命令
start-all.sh
Hadoop搭建到此结束,接下来是验证是否搭建成功
使用jps命令验证
出现以下结果,表明启动成功
界面访问
http://localhost:50070 (HDFS管理界面)
http://localhost:8088 (MR管理界面)
这时候单节点伪分布就已经安装成功了,输入下面:http://localhost:50070/
输入 http://localhost:8088/