一、在Ubuntu下创建hadoop组和hadoop用户
,后续在涉及到hadoop操作时,我们使用该用户。
1、创建hadoop用户组
、创建hadoop用户
sudo adduser -ingroup hadoop hadoop
,输入回车即可。
如果不输入密码,回车后会重新提示输入密码,即密码不能为空。
最后确认信息是否正确,如果没问题,输入 Y,回车即可。
、为hadoop用户添加权限
输入:sudo gedit /etc/sudoers
回车,打开sudoers文件
给hadoop用户赋予和root用户同样的权限
二、用新增加的hadoop用户登录Ubuntu系统
三、安装ssh
sudo apt-get install openssh-server
安装完成后,启动服务
sudo /etc/init.d/ssh start
查看服务是否正确启动:ps -e | grep ssh
设置免密码登录,生成私钥和公钥
ssh-keygen -t rsa -P ""
此时会在/home/hadoop/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。
下面我们将公钥追加到authorized_keys中,它用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
登录ssh
ssh localhost
退出
exit
四、安装Java环境
1.首先搭建JAVA环境。
将下载的安装包解压到一个自己指定的目录。
tar -zxvf jdk-8u101-Linux-x64.tar.gz -C ~/software
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_101
export JRE_HOME=/home/hadoop/software/jdk1.8.0_101/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
source /etc/profile
,使修改生效。
然后可以验证Java是否生效,java -version
。
五、安装Scala环境
过程跟JAVA差不多。
就是修改profile有点区别:
export SCALA_HOME=/home/hadoop/software/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin
- 1
- 2
- 1
- 2
然后还是保存关闭后source一下,让它生效。
最后Scala -version
,看看版本。
安装hadoop2.7.3
、官网下载http://mirror.bit.edu.cn/apache/hadoop/common/
、安装
解压
sudo tar -zxvf hadoop-2.7.3.tar.gz
假如我们要把hadoop安装到/usr/local下
拷贝到/usr/local/下,文件夹为hadoop
sudo mv hadoop-2.4.0 /usr/local/hadoop
赋予用户对该文件夹的读写权限
sudo chmod 774 /usr/local/hadoop
~/software/hadoop-2.7.3/etc/hadoop
,在此目录中,我们需要配置几个文件。
- hadoop-env.sh,在里面设置JAVA_HOME。
# The java implementation to use.
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_101
- 1
- 2
- 1
- 2
- yarn-env.sh,在里面设置JAVA_HOME。
# some Java parameters
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_101
- 1
- 2
- 1
- 2
- slaves,在这个文件里面加入作为slave的IP地址或者对应的hosts映射名字。
slave1
slave2
- 1
- 2
- 1
- 2
- core-site.xml,右键编辑。注意到底下的目录,如果软件内没有tmp,则自己创建。由于markdown语法问题,以下<符号后边都有一个空格,请自行删除。
< configuration>
< property>
< name>fs.defaultFS</name>
< value>hdfs://master:9000/</value>
< /property>
< property>
< name>hadoop.tmp.dir</name>
< value>file:/home/hadoop/software/hadoop-2.7.3/tmp</value>
< /property>
< /configuration>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- hdfs-site.xml,右键编辑。注意到底下的目录,如果软件内没有/dfs/name以及/dfs/data,则自己创建。由于markdown语法问题,以下<符号后边都有一个空格,请自行删除。
< configuration>
< property>
< name>dfs.namenode.secondary.http-address</name>
< value>master:9001</value>
< /property>
< property>
< name>dfs.namenode.name.dir</name>
< value>file:/home/hadoop/software/hadoop-2.7.3/dfs/name</value>
< /property>
< property>
< name>dfs.datanode.data.dir</name>
< value>file:/home/hadoop/software/hadoop-2.7.3/dfs/data</value>
< /property>
< property>
< name>dfs.replication</name>
< value>3</value>
< /property>
< /configuration>
- mapred-site.xml,右键编辑。由于markdown语法问题,以下<符号后边都有一个空格,请自行删除。
< configuration>
< property>
< name>mapreduce.framework.name</name>
< value>yarn</value>
< /property>
< /configuration>
- 6
- yarn-site.xml,右键编辑。由于markdown语法问题,以下<符号后边都有一个空格,请自行删除。
< 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>master:8032</value>
< /property>
< property>
< name>yarn.resourcemanager.scheduler.address</name>
< value>master:8030</value>
< /property>
< property>
< name>yarn.resourcemanager.resource-tracker.address</name>
< value>master:8035</value>
< /property>
< property>
< name>yarn.resourcemanager.admin.address</name>
< value>master:8033</value>
< /property>
< property>
< name>yarn.resourcemanager.webapp.address</name>
< value>master:8088</value>
< /property>
< /configuration>
3 . 最后就可以将配置好的hadoop-2.7.3文件夹分发给所有slave了。
scp -r ~/software/hadoop-2.7.3 hadoop@slave1:~/software/
scp -r ~/software/hadoop-2.7.3 hadoop@slave2:~/software/
4 . 启动hadoop。cd到hadoop主目录。然后先格式化namenode,然后再启动。
bin/hadoop namenode -format
sbin/start-all.sh
5 . 用jps命令查看hadoop进程。
在master上应该有:
3407 SecondaryNameNode
3218 NameNode
3552 ResourceManager
3910 Jps
上应该有:
2072 NodeManager
2213 Jps
1962 DataNode
并且,在master节点,浏览器输入 master:8088 能够访问hadoop管理界面,并看到slaves的存在。
安装Spark
~/software/
目录。
2 . 进入到Spark配置目录,~/software/spark-2.0.0-bin-hadoop2.7/conf
,在此目录下,可以看到很多配置文件。但是很多文件都是以template结尾的,这是因为spark给我们提供的模板配置文件,我们可以拷贝一份,然后将.template
给去掉,变成真正的配置文件后再编辑。
- spark-env.sh,这个文件里可以配置各种spark的运行环境。我们配置几个基本的,可以根据自己机器的实际情况进行配置。添加一下代码到末尾。
export SCALA_HOME=/home/hadoop/software/scala-2.11.8
export JAVA_HOME=/home/hadoop/software/jdk1.8.0_101
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.3
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/hadoop/software/spark-2.0.0-bin-hadoop2.7
SPARK_DRIVER_MEMORY=512M
- slaves,在这个文件里把slaves的hosts里的映射名添加进去。
slave1
slave2
- 1
配置好的spark-2.0.0-bin-hadoop2.7文件夹分发给所有slave了。
scp -r ~/software/spark-2.0.0-bin-hadoop2.7 hadoop@slave1:~/software/
scp -r ~/software/spark-2.0.0-bin-hadoop2.7 hadoop@slave2:~/software/
sbin/start-all.sh
。
5 . 如果启动成功,那么用jps命令可以看到:
在master节点上有7805 Master
进程,
在slaves有3759 Worker
进程。
同样的,在master节点,浏览器输入 master:8080 能够访问spark管理界面,并看到slaves的存在。