8. Hadoop 在ubuntu 系统中的安装
8.1 伪分布式安装
8.1.1 设置无密码登陆
1、Ubuntu默认安装了SSH client,还需要安装SSH server。
sudoapt-get install openssh-server
2、集群、单节点模式都需要用到SSH无密码登陆,首先设置SSH无密码登陆本机。
输入命令
sshlocalhost
会有如下提示(SSH首次登陆提示),输入yes。
然后按提示输入密码****,这样就登陆到本机了。但这样的登陆是需要密码的,需要配置成无密码登陆。
先退出刚才的ssh,然后生成ssh证书:
exit # 退出 ssh localhost
cd~/.ssh # 如果没有该目录,先执行一次ssh localhost
ssh-keygen-t rsa # 一直按回车就可以
cpid_rsa.pub authorized_keys
此时再用ssh localhost命令,就可以直接登陆了,如下图所示。
8.1.2 安装java 环境
1、去官网下载jdk最新版本
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、创建安装目录
mkdirsoftware
解压文件到software文件夹
tarzxvf Downloads/jdk-*u*-linux-x64.tar.gz –C software/
cdsoftware
mvjdk* jdk
3、修改环境变量
sudogedit /etc/profile
4、添加如下变量
exportJAVA_HOME=/home/chase/software/jdk
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:
${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
exportPATH=${JAVA_HOME}/bin:$PATH
source/etc/profile
5、配置默认jdk
sudoupdate-alternatives --install /usr/bin/java java /home/chase/software/jdk /bin/java300
sudoupdate-alternatives --install /usr/bin/javac javac /home/chase/software/jdk /bin/javac300
sudoupdate-alternatives --install /usr/bin/jar jar /home/chase/software/jdk /bin/jar300
sudoupdate-alternatives --install /usr/bin/javah javah /home/chase/software/jdk /bin/javah300
sudoupdate-alternatives --install /usr/bin/javap javap /home/chase/software/jdk /bin/javap300
然后执行
sudoupdate-alternatives --config java
6、测试:
java–version
如果现实当前版本号则安装完
8.1.3 安装hadoop
1、下载
http://www.apache.org/dyn/closer.cgi/hadoop/common/
2、解压
sudo tar–zxvf ~/Downloads/hadoop-*.tar.gz -C /software/hadoop
3、Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的Java进程来运行,节点即是NameNode也是DataNode。需要修改3个配置文件etc/hadoop/core-site.xml、etc/hadoop/hdfs-site.xml和etc/hadoop/yarn-site.xml。Hadoop的配置文件是xml格式,声明property的name和value。
修改配置文件etc/hadoop/core-site.xml,将
<configuration>
</configuration>
修改为下面配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value> /home/chase/software/hadoop/tmp</value>
<description>Abase for other temporarydirectories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改配置文件etc/hadoop/hdfs-site.xml为
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/chase/software/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/chase/software/hadoop/dfs/data</value>
</property>
</configuration>
修改配置文件/etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARNconfiguration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
关于配置的一点说明:上面只要配置 fs.defaultFS 和 dfs.replication 就可以运行,不过有个说法是如没有配置 hadoop.tmp.dir 参数,此时 Hadoop 默认的使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在每次重启后都会被干掉,必须重新执行 format 才行(未验证),所以伪分布式配置中最好还是设置一下。此外也需要显式指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则下一步可能会出错。
4、 配置完成后,首先在相应目录创建上述文件夹
mkdir tmp
mkdir dfs/data
mkdir dfs/name
5、 然后初始化文件系统 HDFS:
bin/hdfsnamenode -format
成功的话,最后的提示如下,Exitting with status 0 表示成功,Exitting with status 1: 则是出错。若出错,可试着加上 sudo, 既 sudo bin/hdfs namenode -format 试试看。
6、 为了以后方便在环境变量中配置hadoop home
exportHADOOP_HOME=/home/chase/software/Hadoop
exportPATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
7、 验证是否安装成功
start-dfs.sh
start-yarn.sh
如果报JAVA_HOME is not set and could not be found修改/etc/hadoop/hadoop-env.sh 中设置JAVA_HOME为绝对路径。
Eclipse
从官网上下载eclipse linux版,
直接解压出来即可,进入eclipse目录直接运行eclips即可,如果不能运行,则在eclipse的目录下建立jdk的软链接,cd到eclipse文件夹下,创建jre文件夹
cd eclipse
mkdir jre
cd jre
sudo ln -s {JAVA_HOME}/bin
进入plugins目录将拷贝到里面。
打开eclipse会多出DFS Locations,点击Perferences
选择hadoop的安装路径。
在show view中点击othe… 选择Map/Reduce Locations
点击右键New Hadoop locations,
把DFS Master里的Port改成hadoop配置的端口号9000。
选择Runnable JARfile
选择WordCount,再选择一个输出路径
hadoop fs -mkdir /input
hadoop fs -put file.txt /input/
hadoop fs -ls /input
Hadoop jar WordCount.jar /input /output