java大数据之Hadoop开发环境
AVA和大数据是什么关系
大数据框架的编写支持很多开发语言,但是Java在大数据开发方面有很大的优势,目前流行的大数据Hadoop框架,很多部分都是用开源的Java语言编写,因此Java在大数据方面有很大优势。
在大数据的中,也许别的你可能不在意,但是Hadoop想必你是注意到了的吧,大数据中不得不学的重要内容。Hadoop 的创始人 Doug Cutting 曾说过:“ Java 在开发者的生产率和运行效率之间取得很好的权衡。开发者可以使用广泛存在的高质量类库,切身受益于这种简洁、功能强大、类型安全的语言。
换言之:没有 Hadoop 就不存在大数据,没有 Java 就没有 Hadoop。
好吧,反正我是信了,动手搭环境撸一把!
前期准备
操作系统
hadoop目前对linux操作系统支持是最好的,可以部署2000个节点的服务器集群;在hadoop2.2以后,开始支持windows操作系统,但是兼容性没有linux好。因此,建议在MAC OS或者linux(CentOS或者Unbuntu)操作系统上安装。
安装java
hadoop2.6以前的版本,需要jdk1.6以上的版本;从hadoop2.7开始,则需要jdk1.7以上的版本。
我推荐使用jdk1.8,稳定可靠。
对于linux操作系统用户
下载jdk-8u161-linux-x64.tar.gz压缩包文件,进行解压。
tar zxvf jdk-8u161-linux-x64.tar.gz -C /opt
配置环境变量
编辑环境变量文件,添加如下代码
$ vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
对于MacOS操作系统用户
直接安装jdk-8u161-macosx-x64.dmg文件
还是配置环境变量
编辑环境变量文件,添加如下代码
$ vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
检查java是否安装成功
$ java -version
输入上面的命令后,会输出java的基本信息
安装Hadoop
hadoop的安装方式有三种,本地模式、伪分布模式和完全分布模式。三种模式安装步骤有少许区别,本文介绍伪分布模式,也是开发环境最常用的方式。
通过官方网站下载hadoop版本,建议安装2.6版本,此版本相对更稳定,也是使用最为广泛的版本。
解压hadoop-2.6.0.tar.gz压缩包
$ tar zxvf hadoop-2.6.0.tar.gz -C /opt
配置环境变量
$vim /etc/profile
export HADOOP_HOME=/opt/hadoop-2.6.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
hadoop配置文件
/opt/hadoop-2.6.0/hadoop-env.sh:
export JAVA_HOME=使用你上面配置的java_home路径
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
/opt/hadoop-2.6.0/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.6.0/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<!--垃圾保存一天-->
</property>
/opt/hadoop-2.6.0/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
/opt/hadoop-2.6.0/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
/opt/hadoop-2.6.0/yarn-site.xml
<configuration>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://localhost:19888/jobhistory/job/</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 设置HDFS可以使用硬盘的百分比,对于硬盘小的人很重要 -->
<name>
yarn.nodemanager.disk-health-
checker.max-disk-utilization-per-disk-percentage
</name>
<value>99.0</value>
</property>
</configuration>
SSH免密码登录
检查一下,是否可以对本地进行免密码登录
$ ssh localhost
如果你在ssh本地时,需要输入密码,那么按以下步骤,配置免密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
格式化hdfs目录
$ hdfs namenode -format
该命令执行后,只会格式化你的/opt/hadoop-2.6.0/tmp目录
启动HDFS
$ start-dfs.sh
启动hdfs后,会生成日志文件,在$HADOOP_HOME/logs目录下
如果启动成功,你可以通过浏览器打开http://localhost:50070/,查看hdfs的相关信息
如果你想停止hdfs,请输入以下命令
$ stop-dfs.sh
启动yarn
$ start-yarn.sh
启动yarn后,会生成日志文件,在$HADOOP_HOME/logs目录下
如果启动成功,你可以通过浏览器打开http://localhost:8088/,查看yarn的相关信息
如果你想停止yarn,请输入以下命令
$ stop-yarn.sh
启动JobHistory
$ mr-jobhistory-daemon.sh start historyserver
启动JobHistory后,会生成日志文件,在$HADOOP_HOME/logs目录下
如果启动成功,你可以通过浏览器打开http://localhost:19888/,查看jobhistory的相关信息
如果你想停止JobHistory,请输入以下命令
$ mr-jobhistory-daemon.sh stop historyserver
测试hadoop
成功安装完hadoop后,我们可以通过一些命令来感受一下hadoop
创建目录
$ hdfs dfs -mkdir /tmp/input
上传本地文件到hdfs $ hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /tmp/input
使用MapReduce来计算我们刚才上传文件的以dfs开头的单词个数
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /tmp/input /tmp/output 'dfs[a-z.]+'
查看MapReduce的结果
可以把hdfs上的结果文件下载到本地后查看
$ hdfs dfs -get /tmp/output output $ cat output/*
也可以通过hdfs查看命令直接查看
$ hdfs dfs -cat /tmp/output/part-r-00000
通过查询http://localhost:8088/,你会发现刚才执行MapReduce任务的历史记录
终于好了,enjoy~!