hadoop2.7.3 搭建

一、Java环境搭建

1.1、下载JDK(操作系统为ubuntu16.04 ,这里使用1.8.0_101版本,jdk-8u101-linux-x64.tar.gz)

  下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.2、解压jdk文件至/usr/lib/jvm目录

sudo tar zxvf jdk-8u101-linux-x64.tar.gz -C /usr/lib/jvm 

 1.3、设置环境变量

  打开profile文件

sudo vim /etc/profile

  插入java环境配置节

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101
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后如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_101/bin"
CLASSPATH="/usr/lib/jvm/jdk1.8.0_101/lib"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_101"

  配置生效

source /etc/environment

 1.4、告诉ubuntu系统,我们使用的sun的JDK,而非OpenJDK

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_101/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_101/bin/javac 300
sudo update-alternatives --config java

  最后一步没有显示有多个jdk ,则配置到此结束。如果有显示则如下:

sudo update-alternatives --config java
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择    路径                                       优先级  状态------------------------------------------------------------* 0      
/usr/lib/jvm/java-6-openjdk/jre/bin/java   1061   自动模式  1      
/usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式 2 /usr/lib/jvm/jdk1.8.0_05/bin/java 300 手动模式要维持当前值[*]请按回车键,或者键入选择的编号:?

  想用那个输那个号码,如上所示,这样就设置好了要使用的java了。 

1.5、验证java环境是否配置成功

java -version

   显示如下信息,配置成功。

abc@ubuntu:/usr/local/hadoop$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

、安装SSH

sudo apt-get install openssh-server

  启动ssh

sudo /etc/init.d/ssh start

   查看ssh服务是否启动,如果有显示相关ssh字样则表示成功

ps -ef|grep ssh
root       913     1  0 09:11 ?        00:00:00 /usr/sbin/sshd -D
abc       8197  3837  0 14:57 pts/6    00:00:00 grep --color=auto 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

  如图设置成功。

   

  修改网卡

  注释掉127.0.1.1 ubuntu,添加新的映射127.0.0.1 ubuntu。这里必须修改,否则后面会遇到连接拒绝等问题。

abc@ubuntu:~$ sudo vim /etc/hosts

   

三、安装hadoop

3.1、下载hadoop-2.7.3.tar.gz,解压到/usr/local (单机模式搭建)

sudo tar zxvf hadoop-2.7.3.tar.gz -C /usr/local

   给/usr/local/hadoop设置访问权限

 sudo chmod 777 /usr/local/hadoop

 3.2、配置.bashrc文件

sudo vim ~/.bashrc

 该命令会打开该文件的编辑窗口,在文件末尾追加下面内容,然后保存,关闭编辑窗口。

#HADOOP VARIABLES START

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101

export HADOOP_INSTALL=/usr/local/hadoop

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

 3.3、hadoop配置 (伪分布模式搭建)

配置hadoop-env.sh

sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101
export HADOOP=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin

 配置yarn-env.sh

sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101

 配置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/abc/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>

3.4、常用命令

  格式化namenode

hdfs namenode -format

  启动集群 

start-dfs.sh

 这时候单节点伪分布就已经安装成功了,输入下面:http://localhost:50070/

输入 http://localhost:8088/

 四、wordcount案例运行

  查看hdfs底下包含的文件目录

hadoop dfs -ls /

  hdfs创建一个文件目录

hdfs dfs -mkdir /input

 其他常用命令

    hadoop fs -mkdir /tmp/input              在HDFS上新建文件夹
    hadoop fs -put input1.txt /tmp/input  把本地文件input1.txt传到HDFS的/tmp/input目录下
    hadoop fs -get  input1.txt /tmp/input/input1.txt  把HDFS文件拉到本地
    hadoop fs -ls /tmp/output                  列出HDFS的某目录
    hadoop fs -cat /tmp/ouput/output1.txt  查看HDFS上的文件
    hadoop fs -rmr /home/less/hadoop/tmp/output  删除HDFS上的目录
    hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况
    hadoop dfsadmin -safemode leave  离开安全模式
    hadoop dfsadmin -safemode enter  进入安全模式

   新建input文件夹,上传readme.txt至input,执行命令

abc@ubuntu:/usr/local/hadoop$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /tmp/input /output1

 

执行成功后output1 目录底下会生成两个文件 _SUCCESS 成功标志的文件,里面没有内容。 一个是 part-r-00000 ,通过hadoop fs -cat /output1/part-r-00000进行查看执行的结果。

原文地址:https://www.cnblogs.com/tatungzhang/p/5993138.html